MCP

sfp server API reference for MCP: 4 endpoints.

GET/sfp/api/mcp/tools

Returns all registered MCP tools with their schemas.

Authentication — OAuth 2.1 (recommended): add the MCP URL with no credentials; the client discovers the authorization server from the 401 challenge, signs you in via the browser, and every tool call runs with YOUR user permissions.

{  "mcpServers": {    "sfp": {      "type": "http",      "url": "https://your-server.com/sfp/api/mcp"    }  }}

Equivalent: claude mcp add --transport http sfp https://your-server.com/sfp/api/mcp

Authentication — application token (headless/CI): pass an application token as a bearer header. Tokens scoped sfp:read cannot invoke write actions.

{  "mcpServers": {    "sfp": {      "type": "http",      "url": "https://your-server.com/sfp/api/mcp",      "headers": {        "Authorization": "Bearer <your-application-token>"      }    }  }}

Testing with MCP Inspector:

npx @modelcontextprotocol/inspector --transport streamable-http --url http://localhost:3478/sfp/api/mcp

Complete the OAuth flow in the opened browser, or enter an application token in the "Bearer Token" field.

Response Body

curl -X GET "https://example.com/sfp/api/mcp/tools"
Empty
POST/sfp/api/mcp

Handles MCP protocol requests via Streamable HTTP transport. Send JSON-RPC messages to invoke tools, list resources, or interact with the MCP server. Requires bearer token authentication. See https://modelcontextprotocol.io/docs/concepts/transports#streamable-http

Response Body

curl -X POST "https://example.com/sfp/api/mcp"
Empty
GET/sfp/api/mcp

Receives responses and notifications via Streamable HTTP transport. Part of the bidirectional MCP communication flow. Requires bearer token authentication.

Response Body

curl -X GET "https://example.com/sfp/api/mcp"
Empty
DELETE/sfp/api/mcp

Terminates an active MCP session and cleans up server-side resources. Requires bearer token authentication.

Response Body

curl -X DELETE "https://example.com/sfp/api/mcp"
Empty