> ## Documentation Index
> Fetch the complete documentation index at: https://mcp.docs.relayfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transport: Streamable HTTP with JSON responses

> Relay MCP uses a single POST /mcp endpoint over Streamable HTTP with JSON responses only. No SSE, no sessions, and no resumability. Every request is self-contained.

Relay MCP exposes read-only financial data through one public endpoint over Streamable HTTP. The server is stateless, so every request must be complete and carry its own headers. There are no server-side sessions, no Server-Sent Events, and no stream resumability.

## Transport properties

| Property | Value |
| - | - |
| Endpoint | `https://mcp.relayfi.com/mcp` |
| Public paths | `/mcp` and `/.well-known` only |
| Supported method | `POST /mcp` |
| Response format | JSON only |
| Capabilities | `tools` only |
| Supported JSON-RPC methods | `initialize`, `ping`, `tools/list`, `tools/call` |
| Sessions | None (stateless) |
| SSE streaming | Not supported |
| Resumability | Not supported |

## Disallowed methods

`GET /mcp` and `DELETE /mcp` return HTTP `405 Method Not Allowed` with an `Allow: POST` header and this JSON-RPC error body:

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": null,
  "error": {
    "code": -32000,
    "message": "Method not allowed."
  }
}
```

## Stateless requests

The server retains nothing between requests. Even after a successful `initialize`, the negotiated parameters are not remembered. Every request must include its own `Authorization` header and full JSON-RPC envelope.

## Common tool arguments

Every tool shares a small set of arguments:

| Argument | Applies to | Description |
| - | - | - |
| `intent` | Every tool (required) | 1 to 500 characters describing what the user asked for and why this call serves it. |
| `organizationId` | Every tool except `list_organizations` (required) | Stable organization ID from `list_organizations`. Never pass an organization name. |
| `cursor` | List tools (optional) | Opaque cursor from the previous page. See [Pagination](https://mcp.docs.relayfi.com/concepts/results.md#pagination). |
| `pageSize` | List tools (optional) | Results per page, 1 to 100. Defaults to 50. |

### Writing a good `intent`

Describe the user's request and how this specific call serves it, for example `"User asked how much we spent on software in July; listing card debits for July."` Calls without a valid `intent` are rejected, and the server's `initialize` instructions remind agents to always supply it.

Relay records `intent` with each tool call for auditing. Keep it short and factual, and never include credentials, full account or card numbers, or other sensitive personal data.

## Example: tools/list

`tools/list` returns only the tools your token's scopes allow. See [Scopes and tool access](https://mcp.docs.relayfi.com/concepts/authentication.md#scopes-and-tool-access).

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}
```

```json Response theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "list_organizations",
        "description": "List organizations the token can access",
        "inputSchema": { ... },
        "outputSchema": { ... }
      }
    ]
  }
}
```

## Example: tools/call

```json Request theme={null}
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "list_organizations",
    "arguments": {
      "intent": "User asked for their recent transactions; resolving which organization to query."
    }
  }
}
```

```json Response theme={null}
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"object\":\"organization\",\"id\":\"org_1\",\"name\":\"Acme Inc\"}"
      }
    ],
    "structuredContent": {
      "object": "organization",
      "id": "org_1",
      "name": "Acme Inc"
    }
  }
}
```

> [card] [Authentication](https://mcp.docs.relayfi.com/concepts/authentication.md)
>
> Learn how to obtain and send audience-bound OAuth tokens.

> [card] [Result conventions](https://mcp.docs.relayfi.com/concepts/results.md)
>
> Understand dual-channel results, pagination, and money.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.