Proposed API · Integration design preview. No public API endpoint is live.
Skip to content

Connect a customer tool

Bring a small HTTPS API for the business capability your agent needs. The pilot supports reviewed read operations and human-approved writes. It does not execute financial transactions.

Example: ticket follow-up

Your product authenticates its support user and owns tickets. The agent reads ticket T-104, drafts a follow-up note, and proposes adding it. Your approval screen displays the exact ticket and note. Only after a human approval does Mystro dispatch the write; your endpoint still checks the user's current access.

  1. Deploy a public HTTPS endpoint with read and write handlers plus operation reconciliation. Localhost endpoints are not accepted by hosted cells.
  2. Register a customer_https connection with connections:write. Registration is pending_review, not immediately executable.
  3. After operator review, create an agent revision referencing returned immutable tool IDs. Agent configuration requires agents:write.
  4. Create a user/workspace and bounded actor session through your trusted backend. Start a conversation/run for that user.
  5. Receive run.requires_action, render the exact approval details, and submit the user's decision through your approval integration.
  6. Receive completion, retrieve the result, and inspect usage.
json
{
  "name":"Ticket operations",
  "type":"customer_https",
  "owner":{"type":"tenant"},
  "base_url":"https://tools.example.invalid",
  "authentication":{"type":"mystro_signed_request"},
  "operations":[
    {"name":"read_ticket","effect":"read","path":"/tickets/read",
     "input_schema":{"type":"object","properties":{"ticket_id":{"type":"string"}},"required":["ticket_id"],"additionalProperties":false},
     "output_schema":{"type":"object","properties":{"title":{"type":"string"}},"required":["title"],"additionalProperties":false}},
    {"name":"add_note","effect":"write","path":"/tickets/notes","reconciliation_path":"/operations/{operation_id}",
     "input_schema":{"type":"object","properties":{"ticket_id":{"type":"string"},"note":{"type":"string"}},"required":["ticket_id","note"],"additionalProperties":false},
     "output_schema":{"type":"object","properties":{"note_id":{"type":"string"}},"required":["note_id"],"additionalProperties":false}}
  ]
}

Verify the invocation

Validate the EdDSA/Ed25519 signed JWT against the trusted published JWKS, a configured issuer and exact audience, expiry, tenant/environment, actor, operation ID, input digest, and current cell generation. Validate the invocation body against the registered schema. A matching signature never replaces business authorization. Reject redirects and attempts to use unregistered operations.

Mystro rejects private, link-local, metadata-service destinations and DNS rebinding. Do not hide a private proxy behind a public endpoint to bypass the review boundary.

Make writes reconcilable

In one database transaction, insert a unique operation ID, perform the business write, and store the outcome. A repeated ID returns its prior outcome without performing the write again. Use the same operation ID across every delivery and recovery attempt.

Your reconciliation endpoint returns { "operation_id": "op_example", "status": "succeeded", "output": { "note_id": "note_example" } }, or failed, pending, or not_found. After an ambiguous timeout, Mystro reconciles rather than replaying the write. Never report success before the business transaction commits.

Your product. Powered by agents.