-
Notifications
You must be signed in to change notification settings - Fork 570
feat: add client capability schema #902
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add client capability schema #902
Conversation
Adds JSON Schema 2020-12 for MCP client capabilities at docs/schemas/client-registry.json Features: - Granular capability status (full/partial/unsupported/untested) - Transport, platform, and authentication tracking - Metadata fields (vendor, license, conformanceScore, lastVerified) - Tasks capability with list, cancel, and requests structure (per MCP 2025-11-25 spec) - Backward compatible with presence-based format Closes modelcontextprotocol#718 🦉 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7bad947 to
2aba703
Compare
Add explicit CIMD (Client ID Metadata Documents) tracking to OAuth authentication capabilities. CIMD is an alternative to Dynamic Client Registration where clients host metadata at a URL instead of using DCR (SEP-991, MCP 2025-11-25+). This addresses conformance test auth/basic-cimd.ts which validates CIMD support. 🦉 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
How about a section for security - CIMD, DCR, etc? |
@thoorp CIMD and DCR are specifically OAuth client registration methods, so I was thinking keeping them under |
Sure. You may want to add it to the fully entry/example. |
@thoorp good call, added! |
Summary
Adds a JSON Schema for MCP client capabilities, providing a formal structure for documenting what features each client supports.
Closes #718
Acknowledgments
This schema builds on the work done by @jancurn in mcp-client-capabilities, which established the core capability structure and has catalogued 40+ clients. This PR extends that foundation with additional fields for transports, platforms, authentication, and metadata.
Changes
docs/schemas/client-registry.json- JSON Schema definitionWhat's Included
This PR focuses solely on the schema definition. Intentionally not included:
Schema Overview
The schema tracks BOTH what clients declare to servers (sampling, elicitation, roots) AND which server capabilities clients can consume (tools, resources, prompts). This is intentionally broader than the MCP spec's
ClientCapabilitiesinterface.Minimal entry:
{ "my-client": { "title": "My Client", "url": "https://example.com", "protocolVersion": "2025-11-25" } }Full entry:
{ "my-advanced-client": { "title": "My Advanced Client", "url": "https://example.com", "protocolVersion": "2025-11-25", "category": "cli", "platforms": ["windows", "macos", "linux"], "transports": { "stdio": {}, "streamableHttp": {} }, "authentication": { "oauth": { "pkce": true, "dynamicRegistration": true, "clientIdMetadataDocument": true, "grantTypes": ["authorization_code", "refresh_token"] }, "header": {} }, "tools": { "listChanged": true }, "resources": { "listChanged": true, "subscribe": true }, "prompts": { "listChanged": true }, "sampling": { "context": {}, "tools": {} }, "elicitation": { "form": {}, "url": {} }, "roots": { "listChanged": true }, "completions": {}, "logging": {}, "tasks": { "list": {}, "cancel": {}, "requests": { "sampling": { "createMessage": {} } } }, "metadata": { "vendor": "Some Vendor", "openSource": true, "lastVerified": "2026-01-17" } } }Features
{}(supported), or{ "status": "full|partial|unsupported|untested", "notes": "..." }Related
🦉 Generated with Claude Code and reviewed by me