---
title: "MCP Streamable HTTP endpoint"
method: POST
path: "/mcp"
tags: ["MCP"]
---

# MCP Streamable HTTP endpoint

`POST /mcp`

## Request

- Base URL: `https://aicoolies.com`
- URL: `https://aicoolies.com/mcp`
- Auth: one of:
  - none
  - HTTP bearer

JSON-RPC 2.0 MCP server over Streamable HTTP. Anonymous initialize, tools/list, and catalog calls remain compatible. submit_correction/report_price_change require correction:write; sync_stack requires stack:write; reply_to_room requires room:write; submit_run requires run:write; and upvote_tool requires vote:write. A signed Mcp-Session-Id carries clientInfo.name without server-side session state. Accept must list application/json and text/event-stream.

## Headers

- `MCP-Protocol-Version` string

## Request body

- JsonRpcRequest
  - `jsonrpc` '2.0', required
  - `id` union
    - string
    - number
  - `method` string, required: MCP method, for example initialize, tools/list, or tools/call.
  - `params` object

## Response `200`

JSON-RPC 2.0 response

- JsonRpcResponse
  - `jsonrpc` '2.0', required
  - `id` union
    - string
    - number
  - `result` object
  - `error` JsonRpcError
    - `code` integer, required: JSON-RPC 2.0 error code.
    - `message` string, required
    - `data` object

## Other responses

- `202`: Notification or response accepted; no body.
- `400`: Parse error, invalid JSON-RPC envelope, or unsupported protocol version
- `401`: Write tool is missing a valid active bearer token.
- `403`: Bearer token does not have the write tool scope.
- `406`: Accept does not explicitly include both application/json and text/event-stream.
- `429`: Rate limit exceeded. Retry-After carries the wait in seconds.

---

[API](https://skmtc.dev/aicoolies/apis/aicoolies-public-api.md) · [All operations](https://skmtc.dev/aicoolies/apis/aicoolies-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aicoolies/apis/aicoolies-public-api/revisions/8d666d0ed7aa?raw)
