{"openapi":"3.1.0","info":{"title":"Pear MCP API","version":"1.2.0","description":"The hosted Pear Model Context Protocol endpoint. MCP clients should use the MCP protocol rather than treating this as a conventional REST API."},"servers":[{"url":"https://pearmcp.com"}],"paths":{"/api/mcp":{"post":{"summary":"Send an MCP JSON-RPC message","operationId":"sendMcpMessage","security":[{"oauth2":[]},{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"A Model Context Protocol JSON-RPC request or notification."}}}},"responses":{"200":{"description":"MCP JSON-RPC response. For 2026-07-28 requests, post-dispatch tool, business, scope, and provider failures are returned in-band with result.isError: true."},"202":{"description":"MCP notification accepted"},"400":{"description":"Invalid MCP request"},"401":{"description":"Authentication required"},"403":{"description":"Outer HTTP access or security rejection, or a legacy request lacks a required scope or provider permission. Authenticated 2026-07-28 operation-scope and provider failures are returned in-band with HTTP 200 and result.isError: true."},"413":{"description":"MCP request body is too large"},"415":{"description":"The 2026-07-28 request Content-Type is not supported"},"429":{"description":"Rate or plan limit reached"},"503":{"description":"A required pre-dispatch service, such as request rate limiting, is unavailable"}}},"delete":{"summary":"Terminate a legacy MCP session","operationId":"closeMcpSession","security":[{"oauth2":[]},{"bearerAuth":[]}],"responses":{"200":{"description":"Legacy MCP session terminated"},"401":{"description":"Authentication required"},"405":{"description":"The 2026-07-28 protocol does not use protocol sessions, so modern DELETE requests are not allowed"}}}}},"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Pear OAuth Authorization Code flow with PKCE.","flows":{"authorizationCode":{"authorizationUrl":"https://pearmcp.com/oauth/authorize","tokenUrl":"https://pearmcp.com/oauth/token","scopes":{"mcp:tools:read":"Request the mcp:tools:read permission","mcp:calendar:read":"Request the mcp:calendar:read permission","mcp:calendar:write":"Request the mcp:calendar:write permission","mcp:reminders:read":"Request the mcp:reminders:read permission","mcp:reminders:write":"Request the mcp:reminders:write permission","mcp:contacts:read":"Request the mcp:contacts:read permission","mcp:contacts:write":"Request the mcp:contacts:write permission","mcp:mail:metadata":"Request the mcp:mail:metadata permission","mcp:mail:read":"Request the mcp:mail:read permission","mcp:mail:write":"Request the mcp:mail:write permission","mcp:mail:send":"Request the mcp:mail:send permission"}}}},"bearerAuth":{"type":"http","scheme":"bearer","description":"A user-provisioned Pear API key sent as a bearer token."}}}}