---
title: "Handler for MCP POST requests (single request/response)"
method: POST
path: "/api/{org_id}/mcp"
tags: ["MCP"]
---

# Handler for MCP POST requests (single request/response)

`POST /api/{org_id}/mcp`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/mcp`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/mcp/post.ts> (a function with typed inputs; its response is checked against the schema)

Dual-era (MCP 2025-11-25 + 2026-07-28) Streamable HTTP transport:
- Requests with `id` → 200 with JSON or SSE response
- Notifications (no `id`) → 202 Accepted, no body
- Validates protocol version and the 2026-07-28 request metadata headers (`Mcp-Method`,
  `Mcp-Name`) on modern requests
- Maps modern JSON-RPC errors to HTTP status codes (unsupported version → 400, unknown method →
  404)

## Path parameters

- `org_id` string, required

## Request body

- object
  - `id` unknown
  - `jsonrpc` string, required
  - `method` string, required
  - `params` unknown

## Response `200`

Success

## Other responses

- `202`: Accepted (notification, no response body)
- `400`: Bad Request (unsupported protocol version or header mismatch)
- `404`: Not Found (unknown method, 2026-07-28 requests)
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
