Skip to content

Commit 2aba703

Browse files
committed
feat: add client capability schema
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 #718 🦉 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 9afbaac commit 2aba703

File tree

2 files changed

+507
-0
lines changed

2 files changed

+507
-0
lines changed

PR-DESCRIPTION.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
## Summary
2+
3+
Adds a JSON Schema for MCP client capabilities, providing a formal structure for documenting what features each client supports.
4+
5+
Closes #718
6+
7+
## Acknowledgments
8+
9+
This schema builds on the work done by @jancurn in [mcp-client-capabilities](https://github.com/apify/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.
10+
11+
## Changes
12+
13+
- **`docs/schemas/client-registry.json`** - JSON Schema 2020-12 definition
14+
15+
## What's Included
16+
17+
This PR focuses solely on the **schema definition**. Intentionally not included:
18+
19+
- **Client data** - The mcp-client-capabilities repo already has the data. Once the schema is agreed upon, that data can be migrated.
20+
- **Validation scripts** - Can be added in a follow-up PR once the schema is finalized.
21+
22+
## Schema Overview
23+
24+
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 `ClientCapabilities` interface.
25+
26+
**Minimal entry:**
27+
```json
28+
{
29+
"my-client": {
30+
"title": "My Client",
31+
"url": "https://example.com",
32+
"protocolVersion": "2025-11-25"
33+
}
34+
}
35+
```
36+
37+
**Full entry:**
38+
```json
39+
{
40+
"claude-code": {
41+
"title": "My Advanced Client",
42+
"url": "https://example.com",
43+
"protocolVersion": "2025-11-25",
44+
"category": "cli",
45+
"platforms": ["windows", "macos", "linux"],
46+
"transports": { "stdio": {} },
47+
"tools": { "listChanged": true },
48+
"resources": { "listChanged": true, "subscribe": true },
49+
"prompts": { "listChanged": true },
50+
"sampling": { "context": {}, "tools": {} },
51+
"elicitation": { "form": {}, "url": {} },
52+
"roots": { "listChanged": true },
53+
"tasks": {
54+
"list": {},
55+
"cancel": {},
56+
"requests": { "sampling": { "createMessage": {} } }
57+
},
58+
"metadata": {
59+
"vendor": "Some Vendor",
60+
"lastVerified": "2026-01-15"
61+
}
62+
}
63+
}
64+
```
65+
66+
## Features
67+
68+
| Feature | Description |
69+
|---------|-------------|
70+
| **Capabilities** | tools, resources, prompts, sampling, elicitation, roots, completions, logging, instructions, tasks |
71+
| **Status values** | `{}` (supported), or `{ "status": "full\|partial\|unsupported\|untested", "notes": "..." }` |
72+
| **Categories** | ide, chat, cli, automation, browser-extension, library, other |
73+
| **Platforms** | windows, macos, linux, web, ios, android |
74+
| **Transports** | stdio, sse, streamableHttp |
75+
| **Auth** | oauth (with PKCE, grantTypes), header, none |
76+
| **Metadata** | vendor, openSource, sourceUrl, license, lastVerified, conformanceScore |
77+
78+
## Related
79+
80+
- [modelcontextprotocol#1814](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1814) - Client compatibility matrix
81+
- [mcp-client-capabilities](https://github.com/apify/mcp-client-capabilities) - Community client data
82+
83+
---
84+
85+
🦉 Generated with [Claude Code](https://claude.ai/code) and reviewed by me

0 commit comments

Comments
 (0)