server/discover lets a client query a server’s supported protocol versions,
capabilities, and identity before sending any other requests. Servers MUST
implement it.
Calling server/discover is optional for clients — a client may invoke any
RPC inline and handle
UnsupportedProtocolVersionError
if the server does not support the requested version. However, server/discover
is useful in two scenarios:
Presenting server information. While a client doesn’t need to call
server/discover to use the server, it’s a convenient way to retrieve the
server’s identity, capabilities, and supported versions in a single request.
For example, a client can present the capabilities a server supports from a
single server/discover response instead of probing with separate
tools/list, prompts/list, and resources/list requests.
stdio backward-compatibility probe. On stdio, there is no per-request
HTTP status code to drive fallback. A client that supports both modern
(per-request _meta) and legacy (initialize handshake) servers SHOULD
send server/discover first; see
stdio: Backward Compatibility
for the fallback rules.
supportedVersions: Protocol versions the server supports. The client should
choose one of these for subsequent requests.
capabilities: Capabilities the server supports (tools, resources, prompts,
etc.)
_meta['io.modelcontextprotocol/serverInfo']: Name and version of the server
software. Servers SHOULD include this field.
instructions: Optional natural-language guidance for LLMs on how to use
this server effectively
serverInfo is self-reported by the server and is not verified by the
protocol. It is intended for display, logging, and debugging. Clients SHOULD
NOT use it to change their behavior, and SHOULD NOT rely on it for
security decisions.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Model Context Protocol","colors":{"primary":"#09090b","light":"#FAFAFA","dark":"#09090b"},"logo":{"light":"https://mintcdn.com/mcp/2BMHnlNW5OqOohXZ/logo/light.svg?fit=max\u0026auto=format\u0026n=2BMHnlNW5OqOohXZ\u0026q=85\u0026s=a5ac61ce77858fb1ddaf6de761c39499","dark":"https://mintcdn.com/mcp/2BMHnlNW5OqOohXZ/logo/dark.svg?fit=max\u0026auto=format\u0026n=2BMHnlNW5OqOohXZ\u0026q=85\u0026s=1227cb7feb8344f9f6288c6b5b0a6d80"},"favicon":"https://mintcdn.com/mcp/2BMHnlNW5OqOohXZ/favicon.svg?fit=max\u0026auto=format\u0026n=2BMHnlNW5OqOohXZ\u0026q=85\u0026s=e419be76252c1cb0a6924602b9de428f","navbar":{"links":[{"href":"https://blog.modelcontextprotocol.io","label":"Blog"},{"href":"https://github.com/modelcontextprotocol","label":"GitHub"},{"href":"https://discord.gg/6CSzBmMkjX","label":"Discord"}]},"footer":{"socials":{"github":"https://github.com/modelcontextprotocol","discord":"https://discord.gg/6CSzBmMkjX"}},"seo":{"metatags":{"og:image":"https://raw.githubusercontent.com/modelcontextprotocol/docs/2eb6171ddbfeefde349dc3b8d5e2b87414c26250/images/og-image.png"},"indexing":"navigable"},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mcp","hasAudioNarration":false,"actualSubdomain":"mcp","customDomains":["modelcontextprotocol.io","modelcontextprotocol.net","modelcontextprotocol.org"],"gitSource":{"type":"github","owner":"modelcontextprotocol","repo":"modelcontextprotocol","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af0024563cd31898eed03e9","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"Specification","count":142},{"language":"default","tag":"Documentation","count":117},{"language":"default","tag":"Base Protocol","count":57},{"language":"default","tag":"Develop with MCP","count":56},{"language":"default","tag":"SEPs","count":46},{"language":"default","tag":"Server Features","count":46},{"language":"default","tag":"Final","count":44},{"language":"default","tag":"Community","count":34},{"language":"default","tag":"Utilities","count":33},{"language":"default","tag":"Developer tools","count":30}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area{--font-mono: var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;h5 {\n font-weight: 500;\n }\n\n h6 {\n font-weight: 400;\n }\n\n /* Fix code block line highlight color */\n code .line-highlight {\n --primary-light: 100 175 250;\n }}#enable-section-numbers{display:none}body:has(#enable-section-numbers){#content-area,\n #table-of-contents {\n counter-reset: h2-counter h3-counter h4-counter h5-counter h6-counter;\n }\n\n #content-area h2[id],\n #table-of-contents li[data-depth=\"0\"] {\n counter-increment: h2-counter;\n counter-set: h3-counter h4-counter h5-counter h6-counter;\n }\n\n #content-area h3[id],\n #table-of-contents li[data-depth=\"1\"] {\n counter-increment: h3-counter;\n counter-set: h4-counter h5-counter h6-counter;\n }\n\n #content-area h4[id],\n #table-of-contents li[data-depth=\"2\"] {\n counter-increment: h4-counter;\n counter-set: h5-counter h6-counter;\n }\n\n #content-area h5[id],\n #content-area h5,\n #table-of-contents li[data-depth=\"3\"] {\n counter-increment: h5-counter;\n counter-set: h6-counter;\n }\n\n #content-area h6[id],\n #content-area h6,\n #table-of-contents li[data-depth=\"4\"] {\n counter-increment: h6-counter;\n }\n\n #table-of-contents li a::before {\n flex-shrink: 0;\n }\n\n #content-area h2[id]::before,\n #table-of-contents li[data-depth=\"0\"] a::before {\n content: counter(h2-counter) \". \";\n }\n\n #content-area h3[id]::before,\n #table-of-contents li[data-depth=\"1\"] a::before {\n content: counter(h2-counter) \".\" counter(h3-counter) \" \";\n }\n\n #content-area h4[id]::before,\n #table-of-contents li[data-depth=\"2\"] a::before {\n content: counter(h2-counter) \".\" counter(h3-counter) \".\" counter(h4-counter)\n \" \";\n }\n\n #content-area h5[id]::before,\n #content-area h5::before,\n #table-of-contents li[data-depth=\"3\"] a::before {\n content: counter(h2-counter) \".\" counter(h3-counter) \".\" counter(h4-counter)\n \".\" counter(h5-counter) \" \";\n }\n\n #content-area h6[id]::before,\n #content-area h6::before,\n #table-of-contents li[data-depth=\"4\"] a::before {\n content: counter(h2-counter) \".\" counter(h3-counter) \".\" counter(h4-counter)\n \".\" counter(h5-counter) \".\" counter(h6-counter) \" \";\n }}#schema-reference{display:none}body:has(#schema-reference){* {\n scroll-margin-top: 8rem;\n }\n\n --mt-sm: 0.25rem;--mt-md: 0.5rem;--mt-lg: 1rem;--mt-xl: 1.5rem;h2, h3 {\n margin: 0;\n }\n .type + h2, .type h3 {\n margin-top: calc(5 * var(--mt-lg));\n }\n h2 + .type h3 {\n margin-top: var(--mt-xl);\n }\n\n /* Type definition code */\n .tsd-signature {\n margin: var(--mt-lg) 0 0 0;\n }\n\n /* Prose */\n .tsd-comment {\n margin: var(--mt-lg) 0 0 0;\n\n p, ul, ol, li {\n margin: 0;\n }\n\n * + :is(p, ul, ol, pre) {\n margin-top: var(--mt-lg);\n }\n\n * + li {\n margin-top: var(--mt-sm);\n }\n }\n\n /* Example block (`@example` tag) */\n .tsd-tag-example {\n margin: var(--mt-lg) 0 0 0;\n\n summary + * {\n margin: var(--mt-sm) 0 0 0;\n scroll-margin-top: calc(8rem + 1.5rem + var(--mt-sm));\n }\n }\n\n /* \"See\" links (`@see` tag) */\n .tsd-tag-see {\n \u0026 > :is(p, ul) {\n margin-top: 0;\n }\n }\n\n /* Type member */\n .tsd-member {\n margin: var(--mt-lg) 0 0 0;\n\n /* Description */\n .tsd-comment {\n margin-top: var(--mt-sm);\n }\n\n /* Sub-members */\n .tsd-type-declaration {\n /* List */\n [data-typedoc-h=\"4\"] + .tsd-parameters {\n margin: var(--mt-md) 0 0 0;\n }\n }\n\n /* Example (`@example` tag) inside type member */\n .tsd-tag-example {\n margin: var(--mt-sm) 0 0 0;\n }\n }}body:has(#schema-reference){.tsd-comment {\n a.tsd-kind-type-alias,\n a.tsd-kind-interface,\n a.tsd-kind-property {\n font-family: var(--font-mono);\n font-size: 0.875em;\n }\n }\n\n /* Code blocks */\n .tsd-signature,\n .tsd-tag-example pre:has(code) {\n /* Based on code blocks rendered by Mintlify. */\n border: 1px solid;\n border-color: light-dark(rgb(var(--gray-950)/.1), rgba(255 255 255/0.1));\n border-radius: 1rem;\n padding: 1rem 0.875rem;\n\n background-color: inherit;\n color: inherit;\n font-family: var(--font-mono);\n font-size: 0.875rem;\n line-height: 1.5rem;\n }\n\n /* Type definition code */\n .tsd-signature {\n a {\n font-weight: normal;\n border-bottom: none;\n text-decoration: underline;\n\n \u0026:hover {\n text-decoration-thickness: 2px;\n }\n }\n\n a[href=\"#\"] {\n pointer-events: none;\n color: inherit;\n text-decoration: none;\n }\n\n .tsd-signature-keyword {\n color: light-dark(rgb(207, 34, 46), #9CDCFE);\n }\n\n :is(.tsd-kind-interface, .tsd-kind-type-alias):not(.tsd-signature-type) {\n color: light-dark(rgb(149, 56, 0), #4EC9B0);\n }\n\n .tsd-signature-type:not(.tsd-kind-interface, .tsd-kind-type-alias) {\n color: light-dark(rgb(5, 80, 174), #DCDCAA);\n }\n }\n\n /* Example block (`@example` tag) */\n .tsd-tag-example {\n /* Label */\n summary {\n font-weight: 600;\n font-style: italic;\n }\n\n /* Code */\n pre code.json {\n .hl-1 {\n color: light-dark(rgb(17, 99, 41), #9CDCFE);\n }\n .hl-2, .hl-3 {\n color: light-dark(rgb(10, 48, 105), #CE9178);\n }\n .hl-5 {\n color: light-dark(rgb(5, 80, 174), #569CD6);\n }\n }\n\n /* Copy button */\n pre button {\n display: none;\n }\n }\n\n /* \"See\" links (`@see` tag) */\n .tsd-tag-see {\n /* Add trailing \":\" to heading */\n [data-typedoc-h=\"4\"]::after {\n content: \": \";\n }\n\n /* Hide (defunct) anchor link */\n .tsd-anchor-icon {\n display: none;\n }\n\n /* Case: single link -- display inline with heading */\n \u0026:has(> p) {\n [data-typedoc-h=\"4\"], p {\n display: inline;\n }\n }\n }\n\n /* Type member */\n .tsd-member {\n /* Hide members that don't have doc comments */\n \u0026:not(:has(.tsd-comment)) {\n display: none;\n }\n\n /* When the type itself has a doc comment, add a subtle top border to the first visible member */\n .tsd-comment ~ \u0026:has(.tsd-comment):not(.tsd-member:has(.tsd-comment) ~ *) {\n border-top: 2px solid light-dark(rgb(var(--gray-950)/.05), rgba(255 255 255/0.1));\n padding-top: var(--mt-md);\n }\n\n /* Member name */\n [data-typedoc-h=\"3\"] {\n font-family: var(--font-mono);\n font-weight: 700;\n }\n\n \u0026 > .tsd-comment,\n \u0026 > .tsd-type-declaration {\n margin-left: 1.25rem;\n }\n\n /* Sub-members */\n .tsd-type-declaration {\n /* Templated heading (\"Type Declaration\") */\n [data-typedoc-h=\"4\"] {\n display: none;\n }\n\n /* Name and type */\n [data-typedoc-h=\"5\"] {\n font-family: var(--font-mono);\n font-size: 0.875rem;\n font-weight: 500;\n\n width: fit-content;\n padding: 0.125em 0.5em;\n background-color: light-dark(rgb(var(--gray-100)/.5), rgb(255 255 255/.05));\n\n .tsd-tag {\n display: none;\n }\n }\n }\n\n /* Example (`@example` tag) inside type member */\n .tsd-tag-example {\n padding-left: 0.5rem;\n }\n\n .tsd-sources {\n display: none;\n }\n }\n\n /* Anchor links for members and examples */\n .tsd-anchor-icon {\n border: 0;\n padding: 0 0.5rem;\n color: rgb(var(--gray-500)/.5);\n\n \u0026:hover {\n color: rgb(var(--gray-500))\n }\n\n \u0026::before {\n content: \"#\";\n color: inherit;\n }\n\n svg {\n display: none;\n }\n }\n\n /* Types with only index properties (e.g., `type Foo = { [key: string]: unknown }`) */\n .type > .tsd-type-declaration {\n /* Hide property if no doc comments */\n \u0026:not(:has(.tsd-comment)) {\n display: none;\n }\n\n /* Templated heading (\"Type Declaration\") */\n [data-typedoc-h=\"4\"] {\n display: none;\n }\n\n /* Index property */\n [data-typedoc-h=\"5\"] {\n font-family: var(--font-mono);\n font-weight: 700;\n }\n }}#footer{flex-wrap:wrap;row-gap:1.5rem}#lf-copyright{flex:1 1 32rem;min-width:0;text-align:center;font-size:0.875rem;color:rgb(var(--gray-500));line-height:1.5;a {\n color: inherit;\n text-decoration: underline;\n\n \u0026:hover {\n color: rgb(var(--gray-700));\n }\n }}"}],"page":{"pagePath":"specification/draft/server/discover","slug":"/specification/draft/server/discover","pageMetadata":{"title":"Discovery","description":null,"href":"/specification/draft/server/discover"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(`div`,{id:`enable-section-numbers`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`server/discover`}),` lets a client query a server’s supported protocol versions,\ncapabilities, and identity before sending any other requests. Servers `,_jsx(_components.strong,{children:`MUST`}),`\nimplement it.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsxs(_components.p,{children:[`The request carries no body parameters beyond the standard `,_jsx(_components.code,{children:`_meta`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"jsonrpc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"discover-1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"method\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"server/discover\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"params\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"_meta\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"io.modelcontextprotocol/protocolVersion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-28\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"io.modelcontextprotocol/clientInfo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ExampleClient\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.0.0\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"io.modelcontextprotocol/clientCapabilities\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`The server replies with its supported protocol versions, capabilities, and\nidentity. This operation supports `,_jsx(_components.a,{href:`/specification/draft/server/utilities/caching`,children:`caching`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`21`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"jsonrpc\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"discover-1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"resultType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"complete\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supportedVersions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-28\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"capabilities\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tools\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"resources\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"_meta\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"io.modelcontextprotocol/serverInfo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ExampleServer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.0.0\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instructions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"This server provides weather and resource utilities.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ttlMs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3600000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cacheScope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-call`,children:`When to Call`}),`\n`,_jsxs(_components.p,{children:[`Calling `,_jsx(_components.code,{children:`server/discover`}),` is optional for clients — a client may invoke any\nRPC inline and handle\n`,_jsx(_components.a,{href:`/specification/draft/schema#unsupportedprotocolversionerror`,children:_jsx(_components.code,{children:`UnsupportedProtocolVersionError`})}),`\nif the server does not support the requested version. However, `,_jsx(_components.code,{children:`server/discover`}),`\nis useful in two scenarios:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Presenting server information.`}),` While a client doesn’t need to call\n`,_jsx(_components.code,{children:`server/discover`}),` to use the server, it’s a convenient way to retrieve the\nserver’s identity, capabilities, and supported versions in a single request.\nFor example, a client can present the capabilities a server supports from a\nsingle `,_jsx(_components.code,{children:`server/discover`}),` response instead of probing with separate\n`,_jsx(_components.code,{children:`tools/list`}),`, `,_jsx(_components.code,{children:`prompts/list`}),`, and `,_jsx(_components.code,{children:`resources/list`}),` requests.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`stdio backward-compatibility probe.`}),` On stdio, there is no per-request\nHTTP status code to drive fallback. A client that supports both modern\n(per-request `,_jsx(_components.code,{children:`_meta`}),`) and legacy (`,_jsx(_components.code,{children:`initialize`}),` handshake) servers `,_jsx(_components.strong,{children:`SHOULD`}),`\nsend `,_jsx(_components.code,{children:`server/discover`}),` first; see\n`,_jsx(_components.a,{href:`/specification/draft/basic/transports/stdio#backward-compatibility`,children:`stdio: Backward Compatibility`}),`\nfor the fallback rules.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/specification/draft/basic/versioning#protocol-version-negotiation`,children:`Protocol Version Negotiation`}),`\nfor the full version-selection flow. For HTTP-specific status codes returned for\nunknown methods, see the `,_jsx(_components.a,{href:`/specification/draft/basic/transports/streamable-http#protocol-version-header`,children:`Protocol Version Header`}),`\nsection in Transports.`]}),`\n`,_jsx(Heading,{level:`2`,id:`data-types`,children:`Data Types`}),`\n`,_jsx(Heading,{level:`3`,id:`discoverresult`,children:`DiscoverResult`}),`\n`,_jsx(_components.p,{children:`A discovery result includes:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`supportedVersions`}),`: Protocol versions the server supports. The client should\nchoose one of these for subsequent requests.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`capabilities`}),`: Capabilities the server supports (tools, resources, prompts,\netc.)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`_meta['io.modelcontextprotocol/serverInfo']`}),`: Name and version of the server\nsoftware. Servers `,_jsx(_components.strong,{children:`SHOULD`}),` include this field.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`instructions`}),`: Optional natural-language guidance for LLMs on how to use\nthis server effectively`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`serverInfo`}),` is self-reported by the server and is not verified by the\nprotocol. It is intended for display, logging, and debugging. Clients `,_jsx(_components.strong,{children:`SHOULD\nNOT`}),` use it to change their behavior, and `,_jsx(_components.strong,{children:`SHOULD NOT`}),` rely on it for\nsecurity decisions.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Discovery","description":null,"href":"/specification/draft/server/discover"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"When to Call","slug":"when-to-call","depth":2,"children":[]},{"title":"Data Types","slug":"data-types","depth":2,"children":[{"title":"DiscoverResult","slug":"discoverresult","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/mcp/e091f6927e8ff316/footer.js","/_mintlify/custom/mcp/539ab9218716af9b/version-warning.js"],"subdomain":"mcp","siteName":"Model Context Protocol","title":"Discovery - Model Context Protocol","navMaps":{"firstHrefInVersion":{"Version 2026-07-28 (latest)":{"href":"/specification/2026-07-28/server/discover","matchLevel":1},"Version 2025-11-25":{"href":"/specification/2025-11-25","matchLevel":3},"Version 2025-06-18":{"href":"/specification/2025-06-18","matchLevel":3},"Version 2025-03-26":{"href":"/specification/2025-03-26","matchLevel":3},"Version 2024-11-05":{"href":"/specification/2024-11-05","matchLevel":3},"Draft":{"href":"/specification/draft/server/discover","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T18:11:50.216Z","originalFileLocation":"specification/draft/server/discover.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Model Context Protocol\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Discovery - Model Context Protocol\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Model Context Protocol\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://modelcontextprotocol.io/specification/draft/server/discover\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://raw.githubusercontent.com/modelcontextprotocol/docs/2eb6171ddbfeefde349dc3b8d5e2b87414c26250/images/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Discovery - Model Context Protocol\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://raw.githubusercontent.com/modelcontextprotocol/docs/2eb6171ddbfeefde349dc3b8d5e2b87414c26250/images/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/mcp/ebiVJzri-bsiCfVZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Model Context Protocol\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#09090b\">\u003clink data-mint-head rel=\"canonical\" href=\"https://modelcontextprotocol.io/specification/draft/server/discover\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/specification/draft/server/discover.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://modelcontextprotocol.io/#organization\",\"name\":\"Model Context Protocol\",\"url\":\"https://modelcontextprotocol.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mcp/2BMHnlNW5OqOohXZ/logo/light.svg?fit=max\u0026auto=format\u0026n=2BMHnlNW5OqOohXZ\u0026q=85\u0026s=a5ac61ce77858fb1ddaf6de761c39499\"}},{\"@type\":\"WebSite\",\"@id\":\"https://modelcontextprotocol.io#website\",\"name\":\"Model Context Protocol\",\"url\":\"https://modelcontextprotocol.io\",\"publisher\":{\"@id\":\"https://modelcontextprotocol.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://modelcontextprotocol.io/specification/draft/server/discover#webpage\",\"url\":\"https://modelcontextprotocol.io/specification/draft/server/discover\",\"name\":\"Discovery\",\"dateModified\":\"2026-10-30T18:11:50.216Z\",\"isPartOf\":{\"@id\":\"https://modelcontextprotocol.io#website\"},\"breadcrumb\":{\"@id\":\"https://modelcontextprotocol.io/specification/draft/server/discover#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://modelcontextprotocol.io/specification/draft/server/discover#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Server Features\",\"item\":\"https://modelcontextprotocol.io/specification/draft/server/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Discovery\",\"item\":\"https://modelcontextprotocol.io/specification/draft/server/discover\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://modelcontextprotocol.io/specification/draft/server/discover#article\",\"headline\":\"Discovery\",\"name\":\"Discovery\",\"url\":\"https://modelcontextprotocol.io/specification/draft/server/discover\",\"mainEntityOfPage\":{\"@id\":\"https://modelcontextprotocol.io/specification/draft/server/discover#webpage\"},\"image\":\"https://raw.githubusercontent.com/modelcontextprotocol/docs/2eb6171ddbfeefde349dc3b8d5e2b87414c26250/images/og-image.png\",\"dateModified\":\"2026-10-30T18:11:50.216Z\",\"publisher\":{\"@id\":\"https://modelcontextprotocol.io/#organization\"},\"isPartOf\":{\"@id\":\"https://modelcontextprotocol.io#website\"}}]}\u003c/script>","siteName":"Model Context Protocol","nav":{"global":null,"tabs":[{"tab":"Documentation","versions":[{"version":"Version 2026-07-28 (latest)","default":true,"pages":[{"title":"Version 2026-07-28 (latest)","href":"/docs/2026-07-28/getting-started/intro"}]},{"version":"Version 2025-11-25","pages":[{"title":"Version 2025-11-25","href":"/docs/2025-11-25/getting-started/intro"}]},{"version":"Version 2025-06-18","pages":[{"title":"Version 2025-06-18","href":"/docs/2025-06-18/getting-started/intro"}]},{"version":"Version 2025-03-26","pages":[{"title":"Version 2025-03-26","href":"/docs/2025-03-26/getting-started/intro"}]},{"version":"Version 2024-11-05","pages":[{"title":"Version 2024-11-05","href":"/docs/2024-11-05/getting-started/intro"}]},{"version":"Draft","pages":[{"group":"Get started","pages":[{"title":"What is the Model Context Protocol (MCP)?","sidebarTitle":"What is MCP?","href":"/docs/draft/getting-started/intro"}]},{"group":"About MCP","pages":[{"title":"Architecture overview","sidebarTitle":"Architecture","href":"/docs/draft/learn/architecture"},{"title":"Understanding MCP servers","sidebarTitle":"Servers","href":"/docs/draft/learn/server-concepts"},{"title":"Understanding MCP clients","sidebarTitle":"Clients","href":"/docs/draft/learn/client-concepts"},{"title":"Versioning","href":"/docs/draft/learn/versioning"}]},{"group":"Develop with MCP","pages":[{"title":"Connect to local MCP servers","href":"/docs/draft/develop/connect-local-servers"},{"title":"Connect to remote MCP Servers","href":"/docs/draft/develop/connect-remote-servers"},{"title":"Build with Agent Skills","href":"/docs/draft/develop/build-with-agent-skills"},{"title":"Build an MCP server","href":"/docs/draft/develop/build-server"},{"group":"Clients","pages":[{"title":"Build an MCP client","href":"/docs/draft/develop/build-client"},{"title":"Client Best Practices","href":"/docs/draft/develop/clients/client-best-practices"}]},{"title":"SDKs","href":"/docs/draft/sdk"},{"group":"Security","pages":[{"title":"Understanding Authorization in MCP","href":"/docs/draft/tutorials/security/authorization"},{"title":"Security Best Practices","href":"/docs/draft/tutorials/security/security_best_practices"},{"title":"Local Server Security","href":"/docs/draft/tutorials/security/local-server-security"}]}]},{"group":"Developer tools","pages":[{"group":"Inspector","pages":[{"title":"MCP Inspector","href":"/docs/draft/tools/inspector"},{"title":"Web client","href":"/docs/draft/tools/inspector/web"},{"title":"CLI client","href":"/docs/draft/tools/inspector/cli"},{"title":"TUI client","href":"/docs/draft/tools/inspector/tui"},{"title":"mcpdo connection client","href":"/docs/draft/tools/inspector/mcpdo"},{"title":"Configuration and flags","href":"/docs/draft/tools/inspector/configuration"},{"title":"Authorization","href":"/docs/draft/tools/inspector/authorization"},{"title":"Protocol eras","href":"/docs/draft/tools/inspector/protocol-eras"},{"title":"Recipes","href":"/docs/draft/tools/inspector/recipes"},{"title":"Security","href":"/docs/draft/tools/inspector/security"}]},{"title":"Debugging","href":"/docs/draft/tools/debugging"}]},{"group":"Examples","pages":[{"title":"Example Servers","href":"/examples"}]}]}]},{"tab":"Specification","versions":[{"version":"Version 2026-07-28 (latest)","default":true,"pages":[{"title":"Version 2026-07-28 (latest)","href":"/specification/2026-07-28/server/discover"}]},{"version":"Version 2025-11-25","pages":[{"title":"Version 2025-11-25","href":"/specification/2025-11-25"}]},{"version":"Version 2025-06-18","pages":[{"title":"Version 2025-06-18","href":"/specification/2025-06-18"}]},{"version":"Version 2025-03-26","pages":[{"title":"Version 2025-03-26","href":"/specification/2025-03-26"}]},{"version":"Version 2024-11-05","pages":[{"title":"Version 2024-11-05","href":"/specification/2024-11-05"}]},{"version":"Draft","pages":[{"title":"Specification","href":"/specification/draft"},{"title":"Changelog","href":"/specification/draft/changelog"},{"title":"Deprecated Features","href":"/specification/draft/deprecated"},{"title":"Architecture","href":"/specification/draft/architecture/index"},{"group":"Base Protocol","pages":[{"title":"Overview","href":"/specification/draft/basic/index"},{"title":"Versioning and Compatibility","href":"/specification/draft/basic/versioning"},{"group":"Message Patterns","pages":[{"title":"Overview","href":"/specification/draft/basic/patterns/index"},{"title":"Multi Round-Trip Requests","href":"/specification/draft/basic/patterns/mrtr"},{"title":"Subscriptions","href":"/specification/draft/basic/patterns/subscriptions"},{"title":"Cancellation","href":"/specification/draft/basic/patterns/cancellation"},{"title":"Progress","href":"/specification/draft/basic/patterns/progress"}]},{"group":"Transports","pages":[{"title":"Overview","href":"/specification/draft/basic/transports/index"},{"title":"stdio","href":"/specification/draft/basic/transports/stdio"},{"title":"Streamable HTTP","href":"/specification/draft/basic/transports/streamable-http"}]},{"group":"Authorization","pages":[{"title":"Authorization","sidebarTitle":"Overview","href":"/specification/draft/basic/authorization/index"},{"title":"Authorization Server Discovery","href":"/specification/draft/basic/authorization/authorization-server-discovery"},{"title":"Client Registration","href":"/specification/draft/basic/authorization/client-registration"},{"title":"Authorization Security Considerations","sidebarTitle":"Security Considerations","href":"/specification/draft/basic/authorization/security-considerations"}]}]},{"group":"Client Features","pages":[{"title":"Roots","href":"/specification/draft/client/roots"},{"title":"Sampling","href":"/specification/draft/client/sampling"},{"title":"Elicitation","href":"/specification/draft/client/elicitation"}]},{"group":"Server Features","pages":[{"title":"Overview","description":null,"href":"/specification/draft/server/index"},{"title":"Discovery","href":"/specification/draft/server/discover"},{"title":"Prompts","description":null,"href":"/specification/draft/server/prompts"},{"title":"Resources","href":"/specification/draft/server/resources"},{"title":"Tools","href":"/specification/draft/server/tools"},{"group":"Utilities","pages":[{"title":"Caching","href":"/specification/draft/server/utilities/caching"},{"title":"Completion","href":"/specification/draft/server/utilities/completion"},{"title":"Logging","href":"/specification/draft/server/utilities/logging"},{"title":"Pagination","href":"/specification/draft/server/utilities/pagination"}]}]},{"title":"Schema Reference","href":"/specification/draft/schema"}]}]},{"tab":"Extensions","pages":[{"title":"Extensions","href":"/extensions/overview"}]},{"tab":"Registry","pages":[{"title":"Registry","href":"/registry/about"}]},{"tab":"SEPs","pages":[{"title":"SEPs","href":"/seps"}]},{"tab":"Community","pages":[{"title":"Community","href":"/community/contributing"}]}]},"basePath":"","title":"Discovery - Model Context Protocol","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":[],"chunks":[]}