28ec35e, and a ChatGPT profile describing what ChatGPT supports today. Both are labelled Draft in the app.
Events tab (Inspect)
Select a server and open Events:- Capability. Shows whether the server declares top-level
capabilities.events, which handshake said so, and the raw capabilities it sent. - Profile. Draft allows poll, push and webhook. ChatGPT allows webhook only, the one mode ChatGPT uses.
- Event types. Each type’s delivery modes, with its input and payload schemas.
- Subscribe. A form built from the event’s
inputSchema, and a delivery mode.- In the hosted app, webhooks deliver to MCPJam’s public inbox at
hooks.mcpjam.com. Every subscription gets its own callback URL and signing secret, and the secret is never shown or logged. - In the local app, webhooks can use a plain-http development receiver on the inspector’s own port. It is labelled as a non-conformant development override.
- In the hosted app, webhooks deliver to MCPJam’s public inbox at
- Subscriptions. State, refresh deadline, cursor, delivery status, conflicts and errors, with pause, resume, remove and rotate-secret actions.
- Live feed. Every accepted delivery, whatever mode it came through. Simulated events carry a
simulationbadge and never trigger live runs. - Rejected deliveries. The reason (bad signature, stale timestamp, unknown slot) and metadata only, never bodies.
- Simulate. Inject an event to test your triggers without the real server.
Triggers tab (Explore)
A trigger pairs a subscription with a standing instruction (“when someone comments on this doc, reply”). When an event arrives, MCPJam runs an agent turn unattended with the tools of the environment you chose.- Approval policy. Read-only tools only (the default) lets the agent call only tools the server marks
readOnlyHint. Allow writes also runs tools that change data, and still denies any tool that would need a person to approve it, because nobody is watching. - Limits. Each trigger has a rate limit (runs per hour) and a daily spending cap, checked before a run starts.
- Who can change a trigger. A trigger’s runs use the credentials of the person who created the subscription, so only that person can add or edit its triggers, turn them on, or simulate its events. A project admin can turn a trigger off or delete it.
- Untrusted events. The event is passed to the model as untrusted data, and the instruction is the only thing it follows.
- Parked runs. If a tool call’s outcome is unknown, for example because the runner stopped mid-call, the run is parked rather than retried. MCPJam never repeats a write it can’t confirm.
- Run history. Shows each event, the turn it caused, and the tool calls.
Triggers run on MCPJam’s hosted runner. A server that only runs on your
machine can’t be reached while the local app is closed.

