mcp-use-compat 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/LICENSE +21 -0
- package/README.md +375 -0
- package/dist/checks/auth.d.ts +2 -0
- package/dist/checks/auth.d.ts.map +1 -0
- package/dist/checks/auth.js +229 -0
- package/dist/checks/auth.js.map +1 -0
- package/dist/checks/calls.d.ts +4 -0
- package/dist/checks/calls.d.ts.map +1 -0
- package/dist/checks/calls.js +192 -0
- package/dist/checks/calls.js.map +1 -0
- package/dist/checks/discovery.d.ts +3 -0
- package/dist/checks/discovery.d.ts.map +1 -0
- package/dist/checks/discovery.js +47 -0
- package/dist/checks/discovery.js.map +1 -0
- package/dist/checks/explanations.d.ts +15 -0
- package/dist/checks/explanations.d.ts.map +1 -0
- package/dist/checks/explanations.js +346 -0
- package/dist/checks/explanations.js.map +1 -0
- package/dist/checks/index.d.ts +3 -0
- package/dist/checks/index.d.ts.map +1 -0
- package/dist/checks/index.js +23 -0
- package/dist/checks/index.js.map +1 -0
- package/dist/checks/protocol.d.ts +5 -0
- package/dist/checks/protocol.d.ts.map +1 -0
- package/dist/checks/protocol.js +380 -0
- package/dist/checks/protocol.js.map +1 -0
- package/dist/checks/resources.d.ts +10 -0
- package/dist/checks/resources.d.ts.map +1 -0
- package/dist/checks/resources.js +144 -0
- package/dist/checks/resources.js.map +1 -0
- package/dist/checks/schema.d.ts +21 -0
- package/dist/checks/schema.d.ts.map +1 -0
- package/dist/checks/schema.js +412 -0
- package/dist/checks/schema.js.map +1 -0
- package/dist/checks/sdk.d.ts +10 -0
- package/dist/checks/sdk.d.ts.map +1 -0
- package/dist/checks/sdk.js +68 -0
- package/dist/checks/sdk.js.map +1 -0
- package/dist/checks/tools.d.ts +18 -0
- package/dist/checks/tools.d.ts.map +1 -0
- package/dist/checks/tools.js +422 -0
- package/dist/checks/tools.js.map +1 -0
- package/dist/checks/transport.d.ts +2 -0
- package/dist/checks/transport.d.ts.map +1 -0
- package/dist/checks/transport.js +123 -0
- package/dist/checks/transport.js.map +1 -0
- package/dist/checks/types.d.ts +37 -0
- package/dist/checks/types.d.ts.map +1 -0
- package/dist/checks/types.js +5 -0
- package/dist/checks/types.js.map +1 -0
- package/dist/checks/ui.d.ts +2 -0
- package/dist/checks/ui.d.ts.map +1 -0
- package/dist/checks/ui.js +207 -0
- package/dist/checks/ui.js.map +1 -0
- package/dist/checks/util.d.ts +20 -0
- package/dist/checks/util.d.ts.map +1 -0
- package/dist/checks/util.js +42 -0
- package/dist/checks/util.js.map +1 -0
- package/dist/cli.d.ts +110 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +317 -0
- package/dist/cli.js.map +1 -0
- package/dist/connect/calls.d.ts +13 -0
- package/dist/connect/calls.d.ts.map +1 -0
- package/dist/connect/calls.js +130 -0
- package/dist/connect/calls.js.map +1 -0
- package/dist/connect/http.d.ts +14 -0
- package/dist/connect/http.d.ts.map +1 -0
- package/dist/connect/http.js +122 -0
- package/dist/connect/http.js.map +1 -0
- package/dist/connect/index.d.ts +41 -0
- package/dist/connect/index.d.ts.map +1 -0
- package/dist/connect/index.js +168 -0
- package/dist/connect/index.js.map +1 -0
- package/dist/connect/lists.d.ts +12 -0
- package/dist/connect/lists.d.ts.map +1 -0
- package/dist/connect/lists.js +70 -0
- package/dist/connect/lists.js.map +1 -0
- package/dist/connect/modern.d.ts +13 -0
- package/dist/connect/modern.d.ts.map +1 -0
- package/dist/connect/modern.js +169 -0
- package/dist/connect/modern.js.map +1 -0
- package/dist/connect/session.d.ts +29 -0
- package/dist/connect/session.d.ts.map +1 -0
- package/dist/connect/session.js +96 -0
- package/dist/connect/session.js.map +1 -0
- package/dist/connect/stdio.d.ts +36 -0
- package/dist/connect/stdio.d.ts.map +1 -0
- package/dist/connect/stdio.js +127 -0
- package/dist/connect/stdio.js.map +1 -0
- package/dist/diff.d.ts +23 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +255 -0
- package/dist/diff.js.map +1 -0
- package/dist/evaluate.d.ts +70 -0
- package/dist/evaluate.d.ts.map +1 -0
- package/dist/evaluate.js +104 -0
- package/dist/evaluate.js.map +1 -0
- package/dist/explain.d.ts +4 -0
- package/dist/explain.d.ts.map +1 -0
- package/dist/explain.js +46 -0
- package/dist/explain.js.map +1 -0
- package/dist/fix.d.ts +19 -0
- package/dist/fix.d.ts.map +1 -0
- package/dist/fix.js +116 -0
- package/dist/fix.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth.d.ts +85 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +287 -0
- package/dist/oauth.js.map +1 -0
- package/dist/policy.d.ts +29 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +63 -0
- package/dist/policy.js.map +1 -0
- package/dist/profiles/chatgpt.d.ts +3 -0
- package/dist/profiles/chatgpt.d.ts.map +1 -0
- package/dist/profiles/chatgpt.js +29 -0
- package/dist/profiles/chatgpt.js.map +1 -0
- package/dist/profiles/claude-code.d.ts +3 -0
- package/dist/profiles/claude-code.d.ts.map +1 -0
- package/dist/profiles/claude-code.js +62 -0
- package/dist/profiles/claude-code.js.map +1 -0
- package/dist/profiles/claude-desktop.d.ts +3 -0
- package/dist/profiles/claude-desktop.d.ts.map +1 -0
- package/dist/profiles/claude-desktop.js +51 -0
- package/dist/profiles/claude-desktop.js.map +1 -0
- package/dist/profiles/cline.d.ts +4 -0
- package/dist/profiles/cline.d.ts.map +1 -0
- package/dist/profiles/cline.js +118 -0
- package/dist/profiles/cline.js.map +1 -0
- package/dist/profiles/codex.d.ts +4 -0
- package/dist/profiles/codex.d.ts.map +1 -0
- package/dist/profiles/codex.js +168 -0
- package/dist/profiles/codex.js.map +1 -0
- package/dist/profiles/continue.d.ts +4 -0
- package/dist/profiles/continue.d.ts.map +1 -0
- package/dist/profiles/continue.js +93 -0
- package/dist/profiles/continue.js.map +1 -0
- package/dist/profiles/cursor.d.ts +3 -0
- package/dist/profiles/cursor.d.ts.map +1 -0
- package/dist/profiles/cursor.js +52 -0
- package/dist/profiles/cursor.js.map +1 -0
- package/dist/profiles/gemini-cli.d.ts +4 -0
- package/dist/profiles/gemini-cli.d.ts.map +1 -0
- package/dist/profiles/gemini-cli.js +137 -0
- package/dist/profiles/gemini-cli.js.map +1 -0
- package/dist/profiles/goose.d.ts +4 -0
- package/dist/profiles/goose.d.ts.map +1 -0
- package/dist/profiles/goose.js +114 -0
- package/dist/profiles/goose.js.map +1 -0
- package/dist/profiles/index.d.ts +7 -0
- package/dist/profiles/index.d.ts.map +1 -0
- package/dist/profiles/index.js +43 -0
- package/dist/profiles/index.js.map +1 -0
- package/dist/profiles/opencode.d.ts +3 -0
- package/dist/profiles/opencode.d.ts.map +1 -0
- package/dist/profiles/opencode.js +47 -0
- package/dist/profiles/opencode.js.map +1 -0
- package/dist/profiles/types.d.ts +86 -0
- package/dist/profiles/types.d.ts.map +1 -0
- package/dist/profiles/types.js +2 -0
- package/dist/profiles/types.js.map +1 -0
- package/dist/profiles/vscode-copilot.d.ts +3 -0
- package/dist/profiles/vscode-copilot.d.ts.map +1 -0
- package/dist/profiles/vscode-copilot.js +71 -0
- package/dist/profiles/vscode-copilot.js.map +1 -0
- package/dist/profiles/windsurf.d.ts +4 -0
- package/dist/profiles/windsurf.d.ts.map +1 -0
- package/dist/profiles/windsurf.js +49 -0
- package/dist/profiles/windsurf.js.map +1 -0
- package/dist/project.d.ts +52 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +291 -0
- package/dist/project.js.map +1 -0
- package/dist/reporters/escape.d.ts +7 -0
- package/dist/reporters/escape.d.ts.map +1 -0
- package/dist/reporters/escape.js +15 -0
- package/dist/reporters/escape.js.map +1 -0
- package/dist/reporters/github.d.ts +7 -0
- package/dist/reporters/github.d.ts.map +1 -0
- package/dist/reporters/github.js +19 -0
- package/dist/reporters/github.js.map +1 -0
- package/dist/reporters/index.d.ts +6 -0
- package/dist/reporters/index.d.ts.map +1 -0
- package/dist/reporters/index.js +10 -0
- package/dist/reporters/index.js.map +1 -0
- package/dist/reporters/json.d.ts +3 -0
- package/dist/reporters/json.d.ts.map +1 -0
- package/dist/reporters/json.js +4 -0
- package/dist/reporters/json.js.map +1 -0
- package/dist/reporters/markdown.d.ts +3 -0
- package/dist/reporters/markdown.d.ts.map +1 -0
- package/dist/reporters/markdown.js +98 -0
- package/dist/reporters/markdown.js.map +1 -0
- package/dist/run.d.ts +14 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +163 -0
- package/dist/run.js.map +1 -0
- package/dist/sdk-facts.d.ts +27 -0
- package/dist/sdk-facts.d.ts.map +1 -0
- package/dist/sdk-facts.js +63 -0
- package/dist/sdk-facts.js.map +1 -0
- package/dist/snapshot.d.ts +189 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +22 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/ui.d.ts +18 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +22 -0
- package/dist/ui.js.map +1 -0
- package/dist/upgrade.d.ts +12 -0
- package/dist/upgrade.d.ts.map +1 -0
- package/dist/upgrade.js +115 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +65 -0
- package/schema/report.schema.json +327 -0
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
const SPEC = "https://modelcontextprotocol.io/specification/2025-11-25";
|
|
2
|
+
const MODERN = "https://modelcontextprotocol.io/specification/2026-07-28";
|
|
3
|
+
const SDK_TYPES = "https://unpkg.com/@modelcontextprotocol/sdk@1.30.1/dist/esm/types.js";
|
|
4
|
+
const APPS = "https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/2026-01-26/apps.mdx";
|
|
5
|
+
const AUTH_DISCOVERY = `${MODERN}/basic/authorization/authorization-server-discovery`;
|
|
6
|
+
const AUTH_REGISTRATION = `${MODERN}/basic/authorization/client-registration`;
|
|
7
|
+
export const EXPLANATIONS = {
|
|
8
|
+
TRANSPORT_CONNECT_FAILED: {
|
|
9
|
+
why: "Nothing else can be checked if the server doesn't start and answer initialize. The report includes the server's last stderr lines.",
|
|
10
|
+
sources: [`${SPEC}/basic/lifecycle`],
|
|
11
|
+
},
|
|
12
|
+
TRANSPORT_AUTH_REQUIRED: {
|
|
13
|
+
why: "An HTTP server that demands credentials before initialize can only have its auth discovery checked; pass --header to check the rest.",
|
|
14
|
+
sources: [AUTH_DISCOVERY],
|
|
15
|
+
},
|
|
16
|
+
TRANSPORT_STDOUT_POLLUTION: {
|
|
17
|
+
why: "On stdio, stdout carries only protocol messages. SDK clients drop other lines, and a log write without a newline corrupts the next message, so that request hangs.",
|
|
18
|
+
sources: [`${SPEC}/basic/transports`, "https://unpkg.com/@modelcontextprotocol/sdk@1.30.1/dist/esm/shared/stdio.js"],
|
|
19
|
+
features: ["stdio"],
|
|
20
|
+
},
|
|
21
|
+
TRANSPORT_SLOW_STARTUP: {
|
|
22
|
+
why: "Clients wait a limited time for initialize. Heavy setup before answering (or a first-run npx/uvx install) can make the server look broken.",
|
|
23
|
+
},
|
|
24
|
+
TRANSPORT_SLOW_LIST: {
|
|
25
|
+
why: "Clients list tools on every connect; slow listing delays every session and can hit client timeouts.",
|
|
26
|
+
},
|
|
27
|
+
TRANSPORT_STDERR_ERRORS: {
|
|
28
|
+
why: "Error-looking stderr output during a healthy session often points at a problem the protocol doesn't surface.",
|
|
29
|
+
},
|
|
30
|
+
PROTOCOL_MODERN_ONLY: {
|
|
31
|
+
why: "A server that rejects initialize and only answers server/discover (protocol 2026-07-28) is unreachable for clients still on the initialize handshake.",
|
|
32
|
+
sources: [`${MODERN}/basic/lifecycle`],
|
|
33
|
+
},
|
|
34
|
+
PROTOCOL_DISCOVER_MISSING: {
|
|
35
|
+
why: "Protocol 2026-07-28 requires server/discover. Today's clients still use initialize, so this is informational.",
|
|
36
|
+
sources: [`${MODERN}/basic/lifecycle`],
|
|
37
|
+
},
|
|
38
|
+
PROTOCOL_MODERN_RESULT_TYPE: {
|
|
39
|
+
why: "In 2026-07-28 every result carries resultType (complete or input_required) so clients know whether to answer an input request.",
|
|
40
|
+
sources: [`${MODERN}/basic/index`],
|
|
41
|
+
},
|
|
42
|
+
PROTOCOL_MODERN_CACHE_FIELDS: {
|
|
43
|
+
why: "2026-07-28 list and discover results must say how long they can be cached (ttlMs) and whether the cache is per-user (cacheScope).",
|
|
44
|
+
sources: [`${MODERN}/changelog`, "https://github.com/modelcontextprotocol/modelcontextprotocol/blob/ab3a39c13bd23be691c2760e1c6c5c15a64582e1/schema/2026-07-28/schema.ts#L1081-L1110"],
|
|
45
|
+
},
|
|
46
|
+
PROTOCOL_MODERN_SERVERINFO: {
|
|
47
|
+
why: "With no initialize, clients learn the server's name and version from _meta on each result.",
|
|
48
|
+
sources: [`${MODERN}/basic/index`],
|
|
49
|
+
},
|
|
50
|
+
PROTOCOL_MODERN_VERSION_ERROR: {
|
|
51
|
+
why: "Version negotiation in 2026-07-28 relies on the -32022 error listing supported versions; clients retry with one of them.",
|
|
52
|
+
sources: [`${MODERN}/basic/versioning`],
|
|
53
|
+
},
|
|
54
|
+
PROTOCOL_MODERN_SURFACE_DIFFERS: {
|
|
55
|
+
why: "A server that exposes different tools per protocol behaves differently depending on which protocol a client speaks.",
|
|
56
|
+
},
|
|
57
|
+
PROTOCOL_VERSION_UNSUPPORTED: {
|
|
58
|
+
why: "SDK-based clients disconnect when the server answers initialize with a protocol version they don't know.",
|
|
59
|
+
sources: [`${SPEC}/basic/lifecycle#version-negotiation`, SDK_TYPES],
|
|
60
|
+
},
|
|
61
|
+
PROTOCOL_VERSION_OLD: {
|
|
62
|
+
why: "Servers on older revisions can't use features added later (e.g. structured output, elicitation).",
|
|
63
|
+
sources: [`${SPEC}/basic/lifecycle#version-negotiation`],
|
|
64
|
+
},
|
|
65
|
+
PROTOCOL_VERSIONS_REJECTED: {
|
|
66
|
+
why: "Clients request different protocol versions. A server should answer each supported version, and for unsupported ones reply with a version it does support instead of failing.",
|
|
67
|
+
sources: [`${SPEC}/basic/lifecycle#version-negotiation`],
|
|
68
|
+
},
|
|
69
|
+
PROTOCOL_VERSION_SURFACE_DIFFERS: {
|
|
70
|
+
why: "Clients negotiate different protocol versions; a server that lists different tools per version behaves differently per client.",
|
|
71
|
+
sources: [`${SPEC}/basic/lifecycle#version-negotiation`],
|
|
72
|
+
},
|
|
73
|
+
PROTOCOL_SERVERINFO_MISSING: {
|
|
74
|
+
why: "Clients show serverInfo in their UI and logs; the spec requires name and version.",
|
|
75
|
+
sources: [`${SPEC}/basic/lifecycle#initialization`],
|
|
76
|
+
},
|
|
77
|
+
PROTOCOL_CAPABILITY_UNDECLARED: {
|
|
78
|
+
why: "Clients that follow the spec only call tools/resources/prompts methods when the capability is declared, so undeclared features are invisible to them.",
|
|
79
|
+
sources: [`${SPEC}/basic/lifecycle#capability-negotiation`],
|
|
80
|
+
},
|
|
81
|
+
PROTOCOL_CAPABILITY_BROKEN: {
|
|
82
|
+
why: "A declared capability whose list method fails makes clients show an error or an empty list.",
|
|
83
|
+
sources: [`${SPEC}/basic/lifecycle#capability-negotiation`],
|
|
84
|
+
},
|
|
85
|
+
PROTOCOL_PAGINATION_BROKEN: {
|
|
86
|
+
why: "A cursor that repeats makes clients loop forever or stop with a partial list.",
|
|
87
|
+
sources: [`${SPEC}/server/utilities/pagination`],
|
|
88
|
+
},
|
|
89
|
+
TOOL_NONE: {
|
|
90
|
+
why: "Declaring the tools capability with no tools usually means tools are registered after the transport connects, so clients list an empty set.",
|
|
91
|
+
},
|
|
92
|
+
TOOL_NAME_INVALID: {
|
|
93
|
+
why: "The spec restricts tool names to A-Z a-z 0-9 _ - . and 1-128 characters; clients handle other names unpredictably.",
|
|
94
|
+
sources: [`${SPEC}/server/tools#tool-names`],
|
|
95
|
+
},
|
|
96
|
+
TOOL_NAME_DUPLICATE: {
|
|
97
|
+
why: "Two tools with one name: clients keep one of them or reject the list.",
|
|
98
|
+
sources: [`${SPEC}/server/tools#tool-names`],
|
|
99
|
+
},
|
|
100
|
+
TOOL_NAME_CLIENT_CHARS: {
|
|
101
|
+
why: "Several clients accept fewer characters than the spec (notably no dots) and reject or rename such tools.",
|
|
102
|
+
limits: ["toolNameChars"],
|
|
103
|
+
},
|
|
104
|
+
TOOL_NAME_TOO_LONG: {
|
|
105
|
+
why: "Clients prefix tool names with the server name and cap the total length; long names are rejected or truncated.",
|
|
106
|
+
limits: ["toolNamePrefix", "maxToolNameLength"],
|
|
107
|
+
},
|
|
108
|
+
TOOL_NAME_CLIENT_COLLISION: {
|
|
109
|
+
why: "When a client renames or truncates names, two distinct tools can end up with the same name and one becomes unusable.",
|
|
110
|
+
limits: ["toolNameChars", "maxToolNameLength", "toolNamePrefix"],
|
|
111
|
+
},
|
|
112
|
+
TOOL_COUNT_OVER_LIMIT: {
|
|
113
|
+
why: "Some clients cap how many tools a request can carry.",
|
|
114
|
+
limits: ["maxTools"],
|
|
115
|
+
},
|
|
116
|
+
TOOL_DESCRIPTION_MISSING: {
|
|
117
|
+
why: "Models choose tools by description. A null description is also invalid: the TypeScript SDK rejects the whole tools/list response.",
|
|
118
|
+
sources: [`${SPEC}/server/tools`, SDK_TYPES],
|
|
119
|
+
},
|
|
120
|
+
TOOL_DESCRIPTION_SHORT: {
|
|
121
|
+
why: "Very short descriptions give the model little to decide with.",
|
|
122
|
+
},
|
|
123
|
+
TOOL_DESCRIPTION_TRUNCATED: {
|
|
124
|
+
why: "Some clients truncate long descriptions and server instructions; the model never sees the end.",
|
|
125
|
+
limits: ["maxDescriptionLength"],
|
|
126
|
+
},
|
|
127
|
+
TOOL_STRUCTURED_OUTPUT_HANDLING: {
|
|
128
|
+
why: "Clients differ in whether the model sees structuredContent, the text content, or both.",
|
|
129
|
+
limits: ["structuredContent"],
|
|
130
|
+
},
|
|
131
|
+
TOOL_ANNOTATIONS_CONFLICT: {
|
|
132
|
+
why: "readOnlyHint: true on a tool that also says it's destructive misleads clients that skip confirmation for read-only tools.",
|
|
133
|
+
sources: [`${SPEC}/server/tools#tool-annotations`],
|
|
134
|
+
},
|
|
135
|
+
TOOL_TITLE_MISSING: {
|
|
136
|
+
why: "Clients such as VS Code show the title instead of the raw tool name, and Anthropic's connector directory requires one.",
|
|
137
|
+
sources: [
|
|
138
|
+
"https://github.com/microsoft/vscode/blob/43dd9070f75d527ab38035c0562acbfe9de4209b/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.ts#L149",
|
|
139
|
+
"https://claude.com/docs/connectors/building/review-criteria",
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
TOOL_ANNOTATIONS_MISSING: {
|
|
143
|
+
why: "Without annotations the spec tells clients to assume a tool may be destructive and open-world, so read-only tools get needless confirmations and nothing distinguishes real writes.",
|
|
144
|
+
sources: [
|
|
145
|
+
"https://github.com/modelcontextprotocol/modelcontextprotocol/blob/ab3a39c13bd23be691c2760e1c6c5c15a64582e1/schema/2025-11-25/schema.ts#L1168-L1222",
|
|
146
|
+
],
|
|
147
|
+
limits: ["readOnlySkipsApproval"],
|
|
148
|
+
},
|
|
149
|
+
SCHEMA_MISSING: {
|
|
150
|
+
why: "Every tool needs an inputSchema object; the TypeScript SDK rejects the whole tools/list response otherwise.",
|
|
151
|
+
sources: [`${SPEC}/server/tools`, SDK_TYPES],
|
|
152
|
+
},
|
|
153
|
+
SCHEMA_NOT_OBJECT: {
|
|
154
|
+
why: 'MCP requires "type": "object" at the root of inputSchema and outputSchema; the TypeScript SDK rejects anything else.',
|
|
155
|
+
sources: [`${SPEC}/server/tools`, SDK_TYPES],
|
|
156
|
+
},
|
|
157
|
+
SCHEMA_INVALID: {
|
|
158
|
+
why: "Clients validate or transform schemas; invalid JSON Schema breaks that or gets the tool dropped (e.g. Codex skips tools whose schema it can't parse, such as required: false).",
|
|
159
|
+
sources: [
|
|
160
|
+
"https://json-schema.org/draft/2020-12",
|
|
161
|
+
"https://github.com/openai/codex/blob/8f195c93d7e7acfef95acf273f0e49cce917e291/codex-rs/core/src/mcp_tool_exposure.rs#L116-L121",
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
SCHEMA_REQUIRED_UNKNOWN: {
|
|
165
|
+
why: "A required argument that isn't in properties has no type, so the model can't fill it correctly.",
|
|
166
|
+
},
|
|
167
|
+
SCHEMA_TOP_LEVEL_COMBINATOR: {
|
|
168
|
+
why: "Root-level oneOf/anyOf/allOf/not is valid JSON Schema, but clients handle it differently: Claude Code rewrites it, Cline may drop the server's tools.",
|
|
169
|
+
sources: ["https://code.claude.com/docs/en/mcp"],
|
|
170
|
+
},
|
|
171
|
+
SCHEMA_UNSUPPORTED_KEYWORD: {
|
|
172
|
+
why: "Some clients reject or drop specific JSON Schema keywords.",
|
|
173
|
+
limits: ["schemaUnsupported"],
|
|
174
|
+
},
|
|
175
|
+
SCHEMA_PROPERTY_NAME_REJECTED: {
|
|
176
|
+
why: "Some clients drop tools whose argument names don't match their naming rule.",
|
|
177
|
+
limits: ["inputPropertyNamePattern"],
|
|
178
|
+
},
|
|
179
|
+
SCHEMA_EMPTY_ENUM: {
|
|
180
|
+
why: "An empty enum can't be satisfied, so no call to the tool can be valid.",
|
|
181
|
+
sources: ["https://json-schema.org/draft/2020-12/json-schema-validation#section-6.1.2"],
|
|
182
|
+
},
|
|
183
|
+
SCHEMA_ROOT_COMBINATOR_CLIENT: {
|
|
184
|
+
why: "Some clients reject root-level unions that aren't clearly object-shaped, and drop the server's tools.",
|
|
185
|
+
limits: ["rootCombinatorNonObject"],
|
|
186
|
+
},
|
|
187
|
+
SCHEMA_TYPE_ARRAY_CLIENT: {
|
|
188
|
+
why: "Type arrays are valid JSON Schema, but some clients' argument validation fails on them.",
|
|
189
|
+
limits: ["typeArraysRejected"],
|
|
190
|
+
},
|
|
191
|
+
SCHEMA_KEYWORDS_DROPPED: {
|
|
192
|
+
why: "Some clients strip JSON Schema keywords they don't model, so constraints like pattern or minimum never reach the model.",
|
|
193
|
+
limits: ["schemaDroppedKeywords"],
|
|
194
|
+
},
|
|
195
|
+
SCHEMA_TOO_LARGE: {
|
|
196
|
+
why: "Some clients compact large schemas, removing descriptions and nested definitions the model needs.",
|
|
197
|
+
limits: ["maxSchemaChars"],
|
|
198
|
+
},
|
|
199
|
+
SCHEMA_PROPERTY_NO_TYPE: {
|
|
200
|
+
why: "Arguments without a type leave the model guessing what to send.",
|
|
201
|
+
},
|
|
202
|
+
SCHEMA_TOO_DEEP: {
|
|
203
|
+
why: "Models fill deeply nested arguments unreliably.",
|
|
204
|
+
},
|
|
205
|
+
DISCOVERY_TOOLS_LIST_CHANGED: {
|
|
206
|
+
why: "Clients that ignore tools/list_changed never see tools added during a session.",
|
|
207
|
+
features: ["toolsListChanged"],
|
|
208
|
+
},
|
|
209
|
+
DISCOVERY_RESOURCES_LIST_CHANGED: {
|
|
210
|
+
why: "Clients that ignore resources/list_changed never see resources added during a session.",
|
|
211
|
+
features: ["resourcesListChanged"],
|
|
212
|
+
},
|
|
213
|
+
DISCOVERY_PROMPTS_LIST_CHANGED: {
|
|
214
|
+
why: "Clients that ignore prompts/list_changed never see prompts added during a session.",
|
|
215
|
+
features: ["promptsListChanged"],
|
|
216
|
+
},
|
|
217
|
+
DISCOVERY_RESOURCES_UNSUPPORTED: {
|
|
218
|
+
why: "Clients without resource support can't reach anything only exposed as a resource.",
|
|
219
|
+
features: ["resources"],
|
|
220
|
+
},
|
|
221
|
+
DISCOVERY_PROMPTS_UNSUPPORTED: {
|
|
222
|
+
why: "Clients without prompt support can't reach anything only exposed as a prompt.",
|
|
223
|
+
features: ["prompts"],
|
|
224
|
+
},
|
|
225
|
+
RESOURCE_URI_INVALID: {
|
|
226
|
+
why: "Clients read resources back by URI; a URI that doesn't parse can't be read.",
|
|
227
|
+
sources: [`${SPEC}/server/resources`],
|
|
228
|
+
},
|
|
229
|
+
RESOURCE_URI_DUPLICATE: {
|
|
230
|
+
why: "Two resources with one URI: clients show one of them.",
|
|
231
|
+
sources: [`${SPEC}/server/resources`],
|
|
232
|
+
},
|
|
233
|
+
RESOURCE_NAME_MISSING: {
|
|
234
|
+
why: "The spec requires a name on resources and templates, and the TypeScript SDK rejects the list without one.",
|
|
235
|
+
sources: [`${SPEC}/server/resources`, SDK_TYPES],
|
|
236
|
+
},
|
|
237
|
+
RESOURCE_MIME_MISSING: {
|
|
238
|
+
why: "Without mimeType, clients must guess how to display the resource.",
|
|
239
|
+
sources: [`${SPEC}/server/resources`],
|
|
240
|
+
},
|
|
241
|
+
RESOURCE_TEMPLATE_INVALID: {
|
|
242
|
+
why: "Resource templates are RFC 6570 URI templates; the TypeScript SDK throws on unclosed expressions.",
|
|
243
|
+
sources: ["https://www.rfc-editor.org/rfc/rfc6570", `${SPEC}/server/resources#resource-templates`],
|
|
244
|
+
},
|
|
245
|
+
UI_RESOURCE_MIME: {
|
|
246
|
+
why: "MCP Apps hosts only render UI resources served as text/html;profile=mcp-app.",
|
|
247
|
+
sources: [APPS],
|
|
248
|
+
features: ["uiResources"],
|
|
249
|
+
},
|
|
250
|
+
UI_RESOURCE_SCHEME: {
|
|
251
|
+
why: "MCP Apps require UI resources to use the ui:// scheme.",
|
|
252
|
+
sources: [APPS],
|
|
253
|
+
},
|
|
254
|
+
UI_TOOL_LINK_BROKEN: {
|
|
255
|
+
why: "A tool whose UI resource can't be read shows no UI in any host. This check reads the linked resource to be sure.",
|
|
256
|
+
sources: [APPS],
|
|
257
|
+
},
|
|
258
|
+
UI_TOOL_LINK_KEY: {
|
|
259
|
+
why: "MCP Apps hosts read _meta.ui.resourceUri; the flat key is deprecated and openai/outputTemplate is ChatGPT-only.",
|
|
260
|
+
sources: [APPS, "https://developers.openai.com/apps-sdk/reference"],
|
|
261
|
+
},
|
|
262
|
+
UI_CSP_LOCAL_ORIGIN: {
|
|
263
|
+
why: "Hosts sandbox MCP Apps views with the CSP the server declares. Loopback origins from a dev setup leak into production and point users' browsers at their own machine.",
|
|
264
|
+
sources: [APPS],
|
|
265
|
+
},
|
|
266
|
+
UI_CSP_INSECURE: {
|
|
267
|
+
why: "Hosts serve views over HTTPS; browsers block plain-HTTP subresources as mixed content.",
|
|
268
|
+
sources: [APPS],
|
|
269
|
+
},
|
|
270
|
+
UI_VISIBILITY_INVALID: {
|
|
271
|
+
why: 'MCP Apps define visibility as a list of "model" and "app"; other values are undefined behaviour across hosts.',
|
|
272
|
+
sources: [APPS],
|
|
273
|
+
},
|
|
274
|
+
UI_UNSUPPORTED: {
|
|
275
|
+
why: "Clients that don't render MCP Apps show only the text content of UI tools.",
|
|
276
|
+
features: ["uiResources"],
|
|
277
|
+
},
|
|
278
|
+
AUTH_CHALLENGE_MISSING: {
|
|
279
|
+
why: "The WWW-Authenticate challenge tells clients where the protected resource metadata is.",
|
|
280
|
+
sources: [AUTH_DISCOVERY],
|
|
281
|
+
features: ["oauth"],
|
|
282
|
+
},
|
|
283
|
+
AUTH_PRM_MISSING: {
|
|
284
|
+
why: "Without protected resource metadata (RFC 9728) clients can't find the authorization server.",
|
|
285
|
+
sources: [AUTH_DISCOVERY, "https://www.rfc-editor.org/rfc/rfc9728"],
|
|
286
|
+
features: ["oauth"],
|
|
287
|
+
},
|
|
288
|
+
AUTH_PRM_INVALID: {
|
|
289
|
+
why: "The metadata must name the resource (matching the server URL) and its authorization servers, or clients reject it.",
|
|
290
|
+
sources: [AUTH_DISCOVERY, "https://www.rfc-editor.org/rfc/rfc9728#section-3.3"],
|
|
291
|
+
features: ["oauth"],
|
|
292
|
+
},
|
|
293
|
+
AUTH_ASM_MISSING: {
|
|
294
|
+
why: "Clients need authorization server metadata (RFC 8414 or OIDC) to find the authorize and token endpoints.",
|
|
295
|
+
sources: [AUTH_DISCOVERY, "https://www.rfc-editor.org/rfc/rfc8414"],
|
|
296
|
+
features: ["oauth"],
|
|
297
|
+
},
|
|
298
|
+
AUTH_ISSUER_MISMATCH: {
|
|
299
|
+
why: "Clients must reject authorization server metadata whose issuer differs from the advertised one.",
|
|
300
|
+
sources: [AUTH_DISCOVERY],
|
|
301
|
+
features: ["oauth"],
|
|
302
|
+
},
|
|
303
|
+
AUTH_PKCE_S256_MISSING: {
|
|
304
|
+
why: "MCP clients must refuse to proceed unless the authorization server advertises PKCE S256.",
|
|
305
|
+
sources: [AUTH_DISCOVERY, "https://developers.openai.com/apps-sdk/build/auth"],
|
|
306
|
+
features: ["oauth"],
|
|
307
|
+
},
|
|
308
|
+
AUTH_CLIENT_REGISTRATION: {
|
|
309
|
+
why: "Without Client ID Metadata Documents or Dynamic Client Registration, every user must create OAuth credentials by hand. DCR alone is deprecated in 2026-07-28.",
|
|
310
|
+
sources: [AUTH_REGISTRATION],
|
|
311
|
+
features: ["cimd", "dcr"],
|
|
312
|
+
},
|
|
313
|
+
AUTH_INSECURE_URL: {
|
|
314
|
+
why: "OAuth 2.1 requires HTTPS outside loopback, and hosted clients refuse plain HTTP.",
|
|
315
|
+
sources: ["https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1"],
|
|
316
|
+
},
|
|
317
|
+
CALL_RESULT_INVALID: {
|
|
318
|
+
why: "SDK-based clients validate tools/call results; an invalid one is an error in the client, not a result the model sees.",
|
|
319
|
+
sources: [`${SPEC}/server/tools#tool-result`, SDK_TYPES],
|
|
320
|
+
},
|
|
321
|
+
CALL_OUTPUT_SCHEMA_MISMATCH: {
|
|
322
|
+
why: "A tool that declares outputSchema must return structuredContent that conforms to it; SDK clients check this and fail the call otherwise.",
|
|
323
|
+
sources: [`${SPEC}/server/tools#output-schema`],
|
|
324
|
+
},
|
|
325
|
+
CALL_STRUCTURED_WITHOUT_TEXT: {
|
|
326
|
+
why: "Clients that don't read structuredContent only see the text content; the spec recommends a serialized copy.",
|
|
327
|
+
sources: [`${SPEC}/server/tools#structured-content`],
|
|
328
|
+
limits: ["structuredContent"],
|
|
329
|
+
},
|
|
330
|
+
CALL_RESULT_TOO_LARGE: {
|
|
331
|
+
why: "Clients cap how much of a tool result the model sees and truncate or offload the rest.",
|
|
332
|
+
limits: ["maxToolResult"],
|
|
333
|
+
},
|
|
334
|
+
CALL_SLOW: {
|
|
335
|
+
why: "Clients cancel tool calls after a timeout; calls near the limit fail under load.",
|
|
336
|
+
limits: ["toolTimeoutMs"],
|
|
337
|
+
},
|
|
338
|
+
SDK_OUTDATED: {
|
|
339
|
+
why: "Most protocol and compatibility fixes arrive through SDK releases. The tool reads the server's project to find its SDK and installed version, looks up the latest release, and prints the upgrade command for your package manager.",
|
|
340
|
+
sources: ["https://unpkg.com/@modelcontextprotocol/sdk@1.30.1/dist/esm/types.js", "https://pypi.org/project/mcp-types/2.2.0/"],
|
|
341
|
+
},
|
|
342
|
+
CALL_FAILED: {
|
|
343
|
+
why: "Calls that error are listed for context. With --probe-calls the arguments are generated from the schema, so errors may be expected.",
|
|
344
|
+
},
|
|
345
|
+
};
|
|
346
|
+
//# sourceMappingURL=explanations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explanations.js","sourceRoot":"","sources":["../../src/checks/explanations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,UAAU,EAAE,KAAK,EAW7B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { authChecks } from "./auth.js";
|
|
2
|
+
import { callChecks } from "./calls.js";
|
|
3
|
+
import { discoveryChecks } from "./discovery.js";
|
|
4
|
+
import { protocolChecks } from "./protocol.js";
|
|
5
|
+
import { resourceChecks } from "./resources.js";
|
|
6
|
+
import { schemaChecks } from "./schema.js";
|
|
7
|
+
import { sdkChecks } from "./sdk.js";
|
|
8
|
+
import { toolChecks } from "./tools.js";
|
|
9
|
+
import { transportChecks } from "./transport.js";
|
|
10
|
+
import { uiChecks } from "./ui.js";
|
|
11
|
+
export const ALL_CHECKS = [
|
|
12
|
+
...transportChecks,
|
|
13
|
+
...protocolChecks,
|
|
14
|
+
...toolChecks,
|
|
15
|
+
...schemaChecks,
|
|
16
|
+
...discoveryChecks,
|
|
17
|
+
...resourceChecks,
|
|
18
|
+
...uiChecks,
|
|
19
|
+
...authChecks,
|
|
20
|
+
...callChecks,
|
|
21
|
+
...sdkChecks,
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,MAAM,CAAC,MAAM,UAAU,GAAY;IACjC,GAAG,eAAe;IAClB,GAAG,cAAc;IACjB,GAAG,UAAU;IACb,GAAG,YAAY;IACf,GAAG,eAAe;IAClB,GAAG,cAAc;IACjB,GAAG,QAAQ;IACX,GAAG,UAAU;IACb,GAAG,UAAU;IACb,GAAG,SAAS;CACb,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ServerSnapshot } from "../snapshot.js";
|
|
2
|
+
/** Server rejected initialize but speaks 2026-07-28 (older snapshots: discover worked, connect failed). */
|
|
3
|
+
export declare function modernOnly(s: ServerSnapshot): boolean;
|
|
4
|
+
export declare const protocolChecks: import("./types.js").Check[];
|
|
5
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/checks/protocol.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAUrG,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAErD;AAsBD,eAAO,MAAM,cAAc,8BA0W1B,CAAC"}
|