---
title: "MCP server (Model Context Protocol, Streamable HTTP)"
method: POST
path: "/mcp"
---

# MCP server (Model Context Protocol, Streamable HTTP)

`POST /mcp`

## Request

- Base URL: `https://whenmeet.me`
- URL: `https://whenmeet.me/mcp`
- Auth: HTTP bearer

JSON-RPC 2.0: initialize (protocol versions 2025-06-18, 2025-03-26, 2024-11-05; the client's version is echoed when supported, else the latest), tools/list (annotations, outputSchema), tools/call (structuredContent). Tools: find_common_slots, create_meeting, get_meeting, get_meeting_availability, suggest_time, respond_to_suggestion, set_manual_availability, get_manual_availability, list_my_meetings, list_my_event_types, get_booking_slots, book_slot, list_my_bookings, cancel_booking, reschedule_booking. Every request (initialize and tools/list included) needs a Bearer mn_… token; without one the answer is HTTP 401 with WWW-Authenticate: Bearer resource_metadata="<origin>/.well-known/oauth-protected-resource/mcp". Tools that change data need the write scope (insufficient_scope tool error otherwise). Connectors (Claude.ai, ChatGPT) sign in with OAuth 2.1 (see /.well-known/oauth-protected-resource/mcp); header clients (Claude Code, Cursor) send a PAT.

## Response `200`

JSON-RPC response.

## Other responses

- `401`: No credentials: JSON-RPC error -32001 with WWW-Authenticate: Bearer resource_metadata="<origin>/.well-known/oauth-protected-resource/mcp" (starts the OAuth flow). A Bearer token that is malformed, unknown, revoked or expired: JSON-RPC error { code: -32001, message: "invalid_token" } with WWW-Authenticate: Bearer error="invalid_token", resource_metadata="<origin>/.well-known/oauth-protected-resource/mcp".

---

[API](https://skmtc.dev/whenmeet/apis/whenmeet-me-api.md) · [All operations](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whenmeet/apis/whenmeet-me-api/revisions/202b80022215?raw)
