2025-11-25
protocol revision. Clients must send JSON-RPC messages with POST and include both
application/json and text/event-stream in Accept.
Authorization
The endpoint is an OAuth-protected resource. A client must obtain an access token for the canonical resource URI and send it as a bearer token:https://app.firstsales.io. Its public
OAuth metadata and endpoints are:
S256). If
the user is not signed in, FirstSales sends them through the normal login flow
first. The consent flow then shows every organization and accessible workspace;
the user must explicitly choose the workspace boundary before approving access.
The resulting token carries only those tenant grants.
The token must satisfy the configured issuer, audience/resource, expiry, and scope and
must carry the delegated capability required by the requested tool. Dashboard session
cookies and Developer API keys are not accepted by product MCP.
Release status
The endpoint is release-gated. Until the product OAuth/delegation authority is configured and a capability is explicitly closed/released for MCP, requests fail closed or expose no tools. OAuth registration and tenant consent do not by themselves release an API action. This prevents a partially configured server from becoming an unauthenticated data or action surface.Production activation checklist
The backend starts this route disabled unless all of these deployment values are present and valid:closed or released for MCP in the canonical capability ledger, have a
manifest-bound tenant/delegation grant, and have an explicit first-party handler
binding. Until all three conditions hold, tools/list remains empty.
Protocol behavior
initialize,ping,tools/list,resources/list, andprompts/listuse JSON-RPC.- Notifications return
202 Acceptedwithout a response body. - Invalid
Origin, protocol, media type, or authorization values fail closed. - Tool execution errors are returned as MCP tool results with
isError: trueso an agent can recover without treating a business error as a transport failure.