Appearance
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.
- Deploy a public HTTPS endpoint with read and write handlers plus operation reconciliation. Localhost endpoints are not accepted by hosted cells.
- Register a
customer_httpsconnection withconnections:write. Registration ispending_review, not immediately executable. - After operator review, create an agent revision referencing returned immutable tool IDs. Agent configuration requires
agents:write. - Create a user/workspace and bounded actor session through your trusted backend. Start a conversation/run for that user.
- Receive
run.requires_action, render the exact approval details, and submit the user's decision through your approval integration. - 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.