{"$schema":"https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json","version":"1.0","protocolVersion":"2025-11-25","serverInfo":{"name":"Redocly","version":"0.1.14","description":"Tools for the documentation at https://redocly.com.","websiteUrl":"https://redocly.com","title":"Redocly"},"description":"Tools for the documentation at https://redocly.com.","documentationUrl":"https://redocly.com","transport":{"type":"streamable-http","endpoint":"/mcp"},"capabilities":{"logging":{},"tools":{"listChanged":false},"resources":{"listChanged":false}},"instructions":"Tools for the documentation at https://redocly.com. Use them to answer questions about the content of these docs.\n- `discover` returns the exact TypeScript signatures of the sandbox functions.\n- `execute` runs a JavaScript script that calls those functions on the global `site` object.\nWorkflow: analyze the request, call `discover` once with `names` set to only the functions it needs, then batch everything into a single `execute` script. Minimize round-trips and never guess function signatures.\n\nFunctions for `execute` scripts (signatures come from `discover`):\n- listApis — List the available APIs.\n- getEndpoints — Get all endpoints for an API.\n- getEndpointInfo — Get the details of an endpoint.\n- getSecuritySchemes — Get the security schemes for an API.\n- getFullApiDescription — Get the complete OpenAPI description.\n- search — Search the documentation.","tools":[{"name":"execute","title":"Query the docs with code","description":"Run JavaScript in a sandbox against the documentation at https://redocly.com. The script calls the sandbox functions on the global `site` object.\nThe only extra global is `site` - there is no `fetch`, `console`, `setTimeout`, `require`, or Node.js API; all I/O goes through `site`.\n\nWorkflow - minimize round-trips; one `discover` call plus one `execute` call covers most requests:\n1. Analyze the request and decide which sandbox functions it needs.\n2. Call `discover` with those names to get their exact TypeScript signatures - inputs, result shapes, and a worked example. NEVER call `execute` with guessed function names, parameter names, enum values, or result field names: read fields off the declared return types, not from assumptions.\n3. Batch everything into a SINGLE script: chain function calls, pass one call's output into the next, process results in plain JavaScript, and `return` only what the request needs.\n\nFunctions for `execute` scripts (signatures come from `discover`):\n- listApis — List the available APIs.\n- getEndpoints — Get all endpoints for an API.\n- getEndpointInfo — Get the details of an endpoint.\n- getSecuritySchemes — Get the security schemes for an API.\n- getFullApiDescription — Get the complete OpenAPI description.\n- search — Search the documentation.","inputSchema":{"type":"object","required":["code","description"],"additionalProperties":false,"properties":{"code":{"type":"string","description":"JavaScript to run in the sandbox. Return a value to receive it as the result.","minLength":1},"description":{"type":"string","description":"A short, human-readable summary of what this code does.","minLength":1}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"title":"Query the docs with code"}},{"name":"discover","title":"Get docs function signatures","description":"Get the exact TypeScript signatures of the sandbox functions that `execute` scripts can call.\nAnalyze the user request first, then pass `names` with only the functions the request needs (every name is listed in this input schema / description); omit `names` only when you cannot tell which functions apply.\nAlways call this before your first `execute` and never guess signatures. Request every function the task may need in ONE call instead of calling this repeatedly.","inputSchema":{"type":"object","required":[],"additionalProperties":false,"properties":{"names":{"type":"array","description":"Names of the sandbox functions to discover: listApis, getEndpoints, getEndpointInfo, getSecuritySchemes, getFullApiDescription, search. Omit to discover all of them.","items":{"type":"string","enum":["listApis","getEndpoints","getEndpointInfo","getSecuritySchemes","getFullApiDescription","search"]},"nullable":true}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false,"title":"Get docs function signatures"}},{"name":"submit-feedback","title":"Submit feedback","description":"Report a documentation page that is wrong or incomplete. Use it when the user reports a problem with a page on this site, or agrees to report a problem that you found. Do not use it for product bugs or support questions.","inputSchema":{"type":"object","required":["path","summary"],"additionalProperties":false,"properties":{"path":{"type":"string","description":"Path or URL of the documentation page the feedback is about (e.g. /guides/auth)","minLength":1,"maxLength":1000},"summary":{"type":"string","description":"One sentence that names what is wrong with the page","minLength":1,"maxLength":500},"details":{"type":"string","description":"Expected versus actual behavior, missing steps, or the snippet that failed","maxLength":4000,"nullable":true},"targetFeature":{"type":"string","description":"The API or feature the page documents","maxLength":500,"nullable":true}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"title":"Submit feedback"}}]}