cURL
Private Payments API
MCP
Stateless Streamable HTTP MCP endpoint.
Implementation details:
- Each
POST /mcprequest creates a freshMcpServer, handles the JSON-RPC exchange, then closes it. - The transport runs with
sessionIdGenerator: undefinedandenableJsonResponse: true, so this server does not issue or requiremcp-session-idheaders. GET /mcpreturns the info document andGET /.well-known/mcp.jsonreturns the discovery document.- Clients can use
Accept: application/jsonwithContent-Type: application/json.
Typical flow:
initializenotifications/initializedtools/listortools/call
Initialize request example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": {
"name": "curl-example",
"version": "1.0.0"
}
}
}
Initialize response example:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2025-11-25",
"capabilities": {
"tools": {
"listChanged": true
}
},
"serverInfo": {
"name": "spl-private-payments-api",
"version": "0.1.0"
}
}
}
Tool call request example:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "spl.deposit",
"arguments": {
"owner": "3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE",
"amount": 1,
"initIfMissing": true,
"initAtasIfMissing": true,
"initVaultIfMissing": true,
"idempotent": true
}
}
}
POST
cURL

