MCP servers are increasingly deployed as regular HTTP services using the Streamable HTTP transport, and many are built on the same frameworks HttpArena already ranks (Express, Fastify, Hono, FastAPI, ASP.NET, …).
None of the current profiles captures what an MCP request actually costs:
- JSON-RPC 2.0 dispatch: routing by
method inside the body, id echoing, spec-defined error codes. The JSON profile serializes a payload but never dispatches on it.
- Session state: an
Mcp-Session-Id header is validated on every request.
- SSE framing on POST responses:
text/event-stream responses carrying one or more JSON-RPC messages. No current profile measures streamed response bodies.
gRPC covers binary RPC over HTTP/2. MCP would cover the JSON-RPC-over-HTTP side, which is where much of today's tool-calling traffic lives.
Proposed profiles
| Profile |
Endpoint |
Response type |
Measures |
| mcp |
POST /mcp |
application/json |
JSON-RPC dispatch + session lookup |
| mcp-sse |
POST /mcp-sse |
text/event-stream |
Same, plus SSE framing (progress + result) |
MCP servers are increasingly deployed as regular HTTP services using the Streamable HTTP transport, and many are built on the same frameworks HttpArena already ranks (Express, Fastify, Hono, FastAPI, ASP.NET, …).
None of the current profiles captures what an MCP request actually costs:
- JSON-RPC 2.0 dispatch: routing by
- Session state: an
- SSE framing on POST responses:
gRPC covers binary RPC over HTTP/2. MCP would cover the JSON-RPC-over-HTTP side, which is where much of today's tool-calling traffic lives.methodinside the body,idechoing, spec-defined error codes. The JSON profile serializes a payload but never dispatches on it.Mcp-Session-Idheader is validated on every request.text/event-streamresponses carrying one or more JSON-RPC messages. No current profile measures streamed response bodies.Proposed profiles