Discovery#
MCP 2026-07-28 uses the mandatory server/discover request. The old
experimental /.well-known/mcp-server.json document is not served.
Send discovery to the configured MCP POST endpoint with the same metadata and routing headers as every other request:
curl -X POST http://127.0.0.1:8000/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: server/discover' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "server/discover",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {},
"io.modelcontextprotocol/clientInfo": {"name": "curl", "version": "1"}
}
}
}'
The result reports supported protocol versions and implemented capabilities.
Developer-enabled extensions appear under capabilities.extensions; the
server never echoes arbitrary extension declarations. The two shipped
extensions are io.modelcontextprotocol/tasks when MCPConfig.tasks is
set, and io.modelcontextprotocol/skills (with a directoryRead flag)
when MCPConfig.skills is set — see MCP Skills.
Separate metadata endpoints#
MCP publishes no /.well-known/* documents. OAuth protected-resource
metadata belongs to the application's security integration, such as
litestar-security's protected_resource configuration. Install the optional
A2A integration when the application needs the standard
/.well-known/agent-card.json document. The MCP transport itself is POST
only.