@axtary/mcp 0.0.1 → 0.2.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/LICENSE +202 -0
- package/README.md +57 -3
- package/dist/conformance.d.ts +150 -0
- package/dist/conformance.d.ts.map +1 -0
- package/dist/conformance.js +131 -0
- package/dist/conformance.js.map +1 -0
- package/dist/core.d.ts +95 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +311 -0
- package/dist/core.js.map +1 -0
- package/dist/http-client.d.ts +46 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +280 -0
- package/dist/http-client.js.map +1 -0
- package/dist/index.d.ts +7 -86
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -295
- package/dist/index.js.map +1 -1
- package/dist/oauth.d.ts +168 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +449 -0
- package/dist/oauth.js.map +1 -0
- package/dist/pins.d.ts +179 -0
- package/dist/pins.d.ts.map +1 -0
- package/dist/pins.js +243 -0
- package/dist/pins.js.map +1 -0
- package/dist/server.d.ts +85 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +289 -0
- package/dist/server.js.map +1 -0
- package/dist/signing.d.ts +218 -0
- package/dist/signing.d.ts.map +1 -0
- package/dist/signing.js +429 -0
- package/dist/signing.js.map +1 -0
- package/package.json +6 -7
package/dist/index.js
CHANGED
|
@@ -1,296 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
z.string(),
|
|
9
|
-
z.number().finite(),
|
|
10
|
-
z.boolean(),
|
|
11
|
-
z.null(),
|
|
12
|
-
z.array(JsonValueSchema),
|
|
13
|
-
z.record(z.string(), JsonValueSchema),
|
|
14
|
-
]));
|
|
15
|
-
export const McpToolDefinitionInputSchema = z.object({
|
|
16
|
-
serverIdentity: z.string().min(1),
|
|
17
|
-
serverVersion: z.string().min(1).optional(),
|
|
18
|
-
schemaVersion: z.string().min(1),
|
|
19
|
-
name: z.string().min(1),
|
|
20
|
-
description: z.string().optional(),
|
|
21
|
-
inputSchema: z.record(z.string(), JsonValueSchema).default({}),
|
|
22
|
-
});
|
|
23
|
-
export const McpToolDefinitionRecordSchema = McpToolDefinitionInputSchema.extend({
|
|
24
|
-
wrapperSchemaVersion: z.literal(MCP_WRAPPER_SCHEMA_VERSION),
|
|
25
|
-
definitionHash: z.string().regex(/^sha256:[a-f0-9]{64}$/),
|
|
26
|
-
actionTool: z.literal(MCP_TOOL_CALL),
|
|
27
|
-
resource: z.string().min(1),
|
|
28
|
-
});
|
|
29
|
-
export const McpToolCallSchema = z.object({
|
|
30
|
-
toolName: z.string().min(1),
|
|
31
|
-
arguments: z.record(z.string(), JsonValueSchema).default({}),
|
|
32
|
-
});
|
|
33
|
-
const McpJsonRpcErrorSchema = z.object({
|
|
34
|
-
code: z.number().int(),
|
|
35
|
-
message: z.string().min(1),
|
|
36
|
-
data: JsonValueSchema.optional(),
|
|
37
|
-
});
|
|
38
|
-
const McpJsonRpcResponseSchema = z.object({
|
|
39
|
-
jsonrpc: z.literal("2.0").optional(),
|
|
40
|
-
id: z.union([z.string(), z.number(), z.null()]).optional(),
|
|
41
|
-
result: JsonValueSchema.optional(),
|
|
42
|
-
error: McpJsonRpcErrorSchema.optional(),
|
|
43
|
-
});
|
|
44
|
-
export function createMcpToolDefinition(input) {
|
|
45
|
-
const definition = McpToolDefinitionInputSchema.parse(input);
|
|
46
|
-
const definitionHash = hashMcpToolDefinition(definition);
|
|
47
|
-
return McpToolDefinitionRecordSchema.parse({
|
|
48
|
-
...definition,
|
|
49
|
-
wrapperSchemaVersion: MCP_WRAPPER_SCHEMA_VERSION,
|
|
50
|
-
definitionHash,
|
|
51
|
-
actionTool: MCP_TOOL_CALL,
|
|
52
|
-
resource: mcpToolResource(definition.serverIdentity, definition.name),
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
export function hashMcpToolDefinition(input) {
|
|
56
|
-
const definition = McpToolDefinitionInputSchema.parse(input);
|
|
57
|
-
return hashJson({
|
|
58
|
-
serverIdentity: definition.serverIdentity,
|
|
59
|
-
serverVersion: definition.serverVersion ?? null,
|
|
60
|
-
schemaVersion: definition.schemaVersion,
|
|
61
|
-
name: definition.name,
|
|
62
|
-
description: definition.description ?? null,
|
|
63
|
-
inputSchema: definition.inputSchema,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
export function createMcpAction(input) {
|
|
67
|
-
const definition = createMcpToolDefinition(input.definition);
|
|
68
|
-
const call = McpToolCallSchema.parse(input.call);
|
|
69
|
-
if (call.toolName !== definition.name) {
|
|
70
|
-
throw new Error(`mcp_tool_name_mismatch:${definition.name}`);
|
|
71
|
-
}
|
|
72
|
-
return NormalizedActionSchema.parse({
|
|
73
|
-
schemaVersion: ACTION_SCHEMA_VERSION,
|
|
74
|
-
actor: input.actor,
|
|
75
|
-
intent: input.intent,
|
|
76
|
-
capability: {
|
|
77
|
-
tool: MCP_TOOL_CALL,
|
|
78
|
-
resource: definition.resource,
|
|
79
|
-
payload: {
|
|
80
|
-
toolName: call.toolName,
|
|
81
|
-
arguments: call.arguments,
|
|
82
|
-
},
|
|
83
|
-
constraints: input.constraints,
|
|
84
|
-
},
|
|
85
|
-
toolDefinition: {
|
|
86
|
-
serverIdentity: definition.serverIdentity,
|
|
87
|
-
schemaVersion: definition.schemaVersion,
|
|
88
|
-
definitionHash: definition.definitionHash,
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
export function createMcpToolHandler(input) {
|
|
93
|
-
const definition = createMcpToolDefinition(input.definition);
|
|
94
|
-
return async ({ action }) => {
|
|
95
|
-
const call = parseMcpActionCall(action);
|
|
96
|
-
const error = validateMcpActionDefinition(action, definition, call);
|
|
97
|
-
if (error) {
|
|
98
|
-
throw new Error(error);
|
|
99
|
-
}
|
|
100
|
-
return input.invoke({
|
|
101
|
-
definition,
|
|
102
|
-
call,
|
|
103
|
-
action,
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
export function createMcpHttpToolInvoker(config) {
|
|
108
|
-
const fetchImpl = config.fetch ?? globalThis.fetch;
|
|
109
|
-
if (!fetchImpl) {
|
|
110
|
-
throw new Error("mcp_http_fetch_required");
|
|
111
|
-
}
|
|
112
|
-
return async ({ call }) => {
|
|
113
|
-
const response = await fetchWithTimeout(fetchImpl, config.url, {
|
|
114
|
-
method: "POST",
|
|
115
|
-
headers: {
|
|
116
|
-
...config.headers,
|
|
117
|
-
"content-type": "application/json",
|
|
118
|
-
accept: "application/json",
|
|
119
|
-
},
|
|
120
|
-
body: JSON.stringify(toMcpJsonRpcRequest(call)),
|
|
121
|
-
}, config.timeoutMs);
|
|
122
|
-
const text = await response.text();
|
|
123
|
-
if (!response.ok) {
|
|
124
|
-
throw new Error(`mcp_http_error:${response.status}`);
|
|
125
|
-
}
|
|
126
|
-
return parseMcpTransportResponse(text);
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
export function createMcpStdioToolInvoker(config) {
|
|
130
|
-
return ({ call }) => new Promise((resolve, reject) => {
|
|
131
|
-
const timeoutMs = config.timeoutMs ?? 10_000;
|
|
132
|
-
let settled = false;
|
|
133
|
-
const child = spawn(config.command, config.args ?? [], {
|
|
134
|
-
cwd: config.cwd,
|
|
135
|
-
env: mergeEnv(config.env),
|
|
136
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
137
|
-
});
|
|
138
|
-
const timeout = setTimeout(() => {
|
|
139
|
-
settled = true;
|
|
140
|
-
child.kill("SIGTERM");
|
|
141
|
-
reject(new Error(`mcp_stdio_timeout:${timeoutMs}ms`));
|
|
142
|
-
}, timeoutMs);
|
|
143
|
-
let stdout = "";
|
|
144
|
-
let stderr = "";
|
|
145
|
-
child.stdout.setEncoding("utf8");
|
|
146
|
-
child.stderr.setEncoding("utf8");
|
|
147
|
-
child.stdout.on("data", (chunk) => {
|
|
148
|
-
stdout += chunk;
|
|
149
|
-
});
|
|
150
|
-
child.stderr.on("data", (chunk) => {
|
|
151
|
-
stderr += chunk;
|
|
152
|
-
});
|
|
153
|
-
child.on("error", (error) => {
|
|
154
|
-
if (settled) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
settled = true;
|
|
158
|
-
clearTimeout(timeout);
|
|
159
|
-
reject(error);
|
|
160
|
-
});
|
|
161
|
-
child.on("close", (code) => {
|
|
162
|
-
if (settled) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
settled = true;
|
|
166
|
-
clearTimeout(timeout);
|
|
167
|
-
if (code !== 0) {
|
|
168
|
-
reject(new Error(`mcp_stdio_exit:${code}:${stderr.trim()}`));
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
try {
|
|
172
|
-
resolve(parseMcpTransportResponse(stdout));
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
175
|
-
reject(error);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
child.stdin.end(`${JSON.stringify(toMcpJsonRpcRequest(call))}\n`);
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
export function createMcpFixtureToolHandler(config) {
|
|
182
|
-
return createMcpToolHandler({
|
|
183
|
-
definition: config.definition,
|
|
184
|
-
invoke: ({ call }) => {
|
|
185
|
-
const fixtureKey = call.arguments.fixtureKey;
|
|
186
|
-
if (typeof fixtureKey !== "string" || fixtureKey.length === 0) {
|
|
187
|
-
throw new Error("mcp_fixture_key_required");
|
|
188
|
-
}
|
|
189
|
-
const fixture = config.fixtures[fixtureKey];
|
|
190
|
-
if (fixture === undefined) {
|
|
191
|
-
throw new Error(`mcp_fixture_not_found:${fixtureKey}`);
|
|
192
|
-
}
|
|
193
|
-
return fixture;
|
|
194
|
-
},
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
export function toMcpJsonRpcRequest(call) {
|
|
198
|
-
return {
|
|
199
|
-
jsonrpc: "2.0",
|
|
200
|
-
id: `axtary_mcp_${call.toolName}`,
|
|
201
|
-
method: "tools/call",
|
|
202
|
-
params: {
|
|
203
|
-
name: call.toolName,
|
|
204
|
-
arguments: call.arguments,
|
|
205
|
-
},
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
export function parseMcpActionCall(action) {
|
|
209
|
-
if (action.capability.tool !== MCP_TOOL_CALL) {
|
|
210
|
-
throw new Error(`mcp_action_tool_mismatch:${action.capability.tool}`);
|
|
211
|
-
}
|
|
212
|
-
return McpToolCallSchema.parse(action.capability.payload);
|
|
213
|
-
}
|
|
214
|
-
export function parseMcpTransportResponse(text) {
|
|
215
|
-
const line = text
|
|
216
|
-
.split(/\r?\n/)
|
|
217
|
-
.map((entry) => entry.trim())
|
|
218
|
-
.filter(Boolean)
|
|
219
|
-
.at(-1);
|
|
220
|
-
if (!line) {
|
|
221
|
-
throw new Error("mcp_transport_empty_response");
|
|
222
|
-
}
|
|
223
|
-
const parsed = JSON.parse(line);
|
|
224
|
-
const response = McpJsonRpcResponseSchema.safeParse(parsed);
|
|
225
|
-
if (!response.success) {
|
|
226
|
-
return JsonValueSchema.parse(parsed);
|
|
227
|
-
}
|
|
228
|
-
if (response.data.error) {
|
|
229
|
-
throw new Error(`mcp_transport_error:${response.data.error.message}`);
|
|
230
|
-
}
|
|
231
|
-
if (response.data.result === undefined) {
|
|
232
|
-
throw new Error("mcp_transport_missing_result");
|
|
233
|
-
}
|
|
234
|
-
return response.data.result;
|
|
235
|
-
}
|
|
236
|
-
export function mcpToolResource(serverIdentity, toolName) {
|
|
237
|
-
return `mcp:${encodeURIComponent(serverIdentity)}/tools/${encodeURIComponent(toolName)}`;
|
|
238
|
-
}
|
|
239
|
-
function validateMcpActionDefinition(action, definition, call) {
|
|
240
|
-
if (action.capability.resource !== definition.resource) {
|
|
241
|
-
return `mcp_resource_mismatch:${definition.resource}`;
|
|
242
|
-
}
|
|
243
|
-
if (call.toolName !== definition.name) {
|
|
244
|
-
return `mcp_tool_name_mismatch:${definition.name}`;
|
|
245
|
-
}
|
|
246
|
-
if (!action.toolDefinition) {
|
|
247
|
-
return "mcp_tool_definition_required";
|
|
248
|
-
}
|
|
249
|
-
if (action.toolDefinition.serverIdentity !== definition.serverIdentity) {
|
|
250
|
-
return `mcp_server_identity_mismatch:${definition.serverIdentity}`;
|
|
251
|
-
}
|
|
252
|
-
if (action.toolDefinition.schemaVersion !== definition.schemaVersion) {
|
|
253
|
-
return `mcp_schema_version_mismatch:${definition.schemaVersion}`;
|
|
254
|
-
}
|
|
255
|
-
if (action.toolDefinition.definitionHash !== definition.definitionHash) {
|
|
256
|
-
return `mcp_definition_hash_mismatch:${definition.definitionHash}`;
|
|
257
|
-
}
|
|
258
|
-
return null;
|
|
259
|
-
}
|
|
260
|
-
function hashJson(value) {
|
|
261
|
-
return `sha256:${createHash("sha256")
|
|
262
|
-
.update(stableStringify(value))
|
|
263
|
-
.digest("hex")}`;
|
|
264
|
-
}
|
|
265
|
-
function stableStringify(value) {
|
|
266
|
-
if (Array.isArray(value)) {
|
|
267
|
-
return `[${value.map((item) => stableStringify(item)).join(",")}]`;
|
|
268
|
-
}
|
|
269
|
-
if (value && typeof value === "object") {
|
|
270
|
-
return `{${Object.entries(value)
|
|
271
|
-
.sort(([left], [right]) => left.localeCompare(right))
|
|
272
|
-
.map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)
|
|
273
|
-
.join(",")}}`;
|
|
274
|
-
}
|
|
275
|
-
return JSON.stringify(value);
|
|
276
|
-
}
|
|
277
|
-
async function fetchWithTimeout(fetchImpl, url, init, timeoutMs = 10_000) {
|
|
278
|
-
const controller = new AbortController();
|
|
279
|
-
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
280
|
-
try {
|
|
281
|
-
return await fetchImpl(url, {
|
|
282
|
-
...init,
|
|
283
|
-
signal: controller.signal,
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
finally {
|
|
287
|
-
clearTimeout(timeout);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
function mergeEnv(env) {
|
|
291
|
-
return {
|
|
292
|
-
...process.env,
|
|
293
|
-
...Object.fromEntries(Object.entries(env ?? {}).filter((entry) => typeof entry[1] === "string")),
|
|
294
|
-
};
|
|
295
|
-
}
|
|
1
|
+
export * from "./core.js";
|
|
2
|
+
export { MCP_CONFORMANCE_RECEIPT_VERSION, MCP_CONFORMANCE_REGISTRY_VERSION, McpConformanceReceiptSchema, McpConformanceRegistrySchema, emptyMcpConformanceRegistry, loadMcpConformanceRegistry, parseMcpConformanceRegistry, saveMcpConformanceRegistry, upsertMcpConformanceReceipt, } from "./conformance.js";
|
|
3
|
+
export { MCP_PINS_SCHEMA_VERSION, MCP_PINS_SCHEMA_VERSION_V0, McpPinManifestSchema, McpServerPinsSchema, McpToolPinSchema, emptyMcpPinManifest, loadMcpPinManifest, parseMcpPinManifest, pinMcpDefinitions, reconcileMcpPins, saveMcpPinManifest, evaluateMcpVersionChain, findMcpToolPin, compareSemver, } from "./pins.js";
|
|
4
|
+
export { MCP_PROTOCOL_VERSION, MCP_WRAPPER_SERVER_NAME, McpStdioClient, McpWrapperServer, createMcpToolRouter, createMcpWrapperServer, createMcpWrapperTool, } from "./server.js";
|
|
5
|
+
export { McpHttpClient, assertSafeMcpUrl, } from "./http-client.js";
|
|
6
|
+
export { PROTECTED_RESOURCE_WELL_KNOWN, AUTHORIZATION_SERVER_WELL_KNOWN, OPENID_CONFIGURATION_WELL_KNOWN, canonicalResourceUri, assertSafeOAuthEndpoint, parseWwwAuthenticate, protectedResourceMetadataUrl, authorizationServerMetadataUrls, discoverProtectedResourceMetadata, discoverAuthorizationServerMetadata, createPkcePair, createOAuthState, buildAuthorizationUrl, exchangeAuthorizationCode, refreshAccessToken, registerOAuthClient, } from "./oauth.js";
|
|
7
|
+
export { MCP_SIGNED_DEFINITION_PROFILE, MCP_SIGNED_DEFINITION_TYP, MCP_PUBLISHER_KEYRING_VERSION, MCP_PUBLISHER_TRUST_VERSION, MCP_SIGNED_DEFINITION_REGISTRY_VERSION, McpSignedDefinitionClaimsSchema, McpSignedDefinitionRegistryEntrySchema, McpSignedDefinitionRegistrySchema, McpPublisherKeySchema, McpPublisherKeyringSchema, McpPublisherTrustEntrySchema, McpPublisherTrustStoreSchema, signMcpToolDefinition, verifyMcpSignedDefinition, createSignedMcpToolHandler, mcpPublisherKeyResolver, emptyMcpPublisherTrustStore, parseMcpPublisherTrustStore, loadMcpPublisherTrustStore, saveMcpPublisherTrustStore, loadMcpSignedDefinitionRegistry, findMcpSignedDefinition, trustMcpPublisher, mcpPublisherJwks, mcpPublisherSigningKey, loadOrCreateMcpPublisherKeyring, } from "./signing.js";
|
|
296
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,GAG5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,aAAa,GASd,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,GAQrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,+BAA+B,EAC/B,iCAAiC,EACjC,mCAAmC,EACnC,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GAQpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,sCAAsC,EACtC,+BAA+B,EAC/B,sCAAsC,EACtC,iCAAiC,EACjC,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,4BAA4B,EAC5B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,+BAA+B,GAWhC,MAAM,cAAc,CAAC"}
|
package/dist/oauth.d.ts
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
export declare const PROTECTED_RESOURCE_WELL_KNOWN = "/.well-known/oauth-protected-resource";
|
|
2
|
+
export declare const AUTHORIZATION_SERVER_WELL_KNOWN = "/.well-known/oauth-authorization-server";
|
|
3
|
+
export declare const OPENID_CONFIGURATION_WELL_KNOWN = "/.well-known/openid-configuration";
|
|
4
|
+
/**
|
|
5
|
+
* The canonical resource identifier for an MCP server, per RFC 8707 §2 and the
|
|
6
|
+
* MCP spec's "Canonical Server URI" rules: lowercase scheme + host, no fragment,
|
|
7
|
+
* no trailing slash (unless the path is just "/"). This exact string is the
|
|
8
|
+
* `resource` parameter and must match the `resource` field of the Protected
|
|
9
|
+
* Resource Metadata document.
|
|
10
|
+
*/
|
|
11
|
+
export declare function canonicalResourceUri(rawUrl: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Allow `https://` always; allow `http://` only for loopback hosts. The MCP
|
|
14
|
+
* authorization spec requires all authorization-server endpoints to be served
|
|
15
|
+
* over HTTPS — we never send a bearer, code, or verifier in cleartext to a
|
|
16
|
+
* remote host. Loopback stays permitted for local conformance servers.
|
|
17
|
+
*/
|
|
18
|
+
export declare function assertSafeOAuthEndpoint(rawUrl: string): URL;
|
|
19
|
+
export type WwwAuthenticateChallenge = {
|
|
20
|
+
scheme: string;
|
|
21
|
+
params: Record<string, string>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Parse an RFC 7235 `WWW-Authenticate` header far enough to recover the RFC 9728
|
|
25
|
+
* `resource_metadata` and (optionally) `scope` from a Bearer challenge. We only
|
|
26
|
+
* need quoted/unquoted token68-free `key=value` auth params, which is what real
|
|
27
|
+
* MCP resource servers emit.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseWwwAuthenticate(header: string): WwwAuthenticateChallenge | null;
|
|
30
|
+
export type ProtectedResourceMetadata = {
|
|
31
|
+
resource: string;
|
|
32
|
+
authorizationServers: string[];
|
|
33
|
+
scopesSupported: string[];
|
|
34
|
+
resourceName: string | null;
|
|
35
|
+
metadataUrl: string;
|
|
36
|
+
};
|
|
37
|
+
export type AuthorizationServerMetadata = {
|
|
38
|
+
issuer: string;
|
|
39
|
+
authorizationEndpoint: string;
|
|
40
|
+
tokenEndpoint: string;
|
|
41
|
+
registrationEndpoint: string | null;
|
|
42
|
+
codeChallengeMethodsSupported: string[];
|
|
43
|
+
scopesSupported: string[];
|
|
44
|
+
grantTypesSupported: string[];
|
|
45
|
+
metadataUrl: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Build the RFC 9728 Protected Resource Metadata URL from an MCP server URL. The
|
|
49
|
+
* well-known segment is inserted between host and path (path-aware), matching
|
|
50
|
+
* RFC 9728 §3.1, so `https://h/mcp` → `https://h/.well-known/oauth-protected-resource/mcp`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function protectedResourceMetadataUrl(mcpUrl: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Candidate RFC 8414 Authorization Server Metadata URLs for an issuer, tried in
|
|
55
|
+
* order. RFC 8414 inserts the well-known segment between host and path; we also
|
|
56
|
+
* fall back to the OpenID Connect discovery document, which many real
|
|
57
|
+
* authorization servers (including ones fronting MCP) serve instead.
|
|
58
|
+
*/
|
|
59
|
+
export declare function authorizationServerMetadataUrls(issuer: string): string[];
|
|
60
|
+
export type DiscoverInput = {
|
|
61
|
+
mcpUrl: string;
|
|
62
|
+
fetch?: typeof fetch;
|
|
63
|
+
timeoutMs?: number;
|
|
64
|
+
/** A `WWW-Authenticate` header from a prior 401, if already observed. */
|
|
65
|
+
wwwAuthenticate?: string;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Discover Protected Resource Metadata for an MCP server. Prefers the
|
|
69
|
+
* `resource_metadata` URL advertised in a 401 `WWW-Authenticate` header (RFC
|
|
70
|
+
* 9728 §5.1); otherwise derives the well-known URL from the MCP endpoint. The
|
|
71
|
+
* returned `resource` must equal the canonical MCP URI or we fail closed rather
|
|
72
|
+
* than request a token for the wrong audience.
|
|
73
|
+
*/
|
|
74
|
+
export declare function discoverProtectedResourceMetadata(input: DiscoverInput): Promise<ProtectedResourceMetadata>;
|
|
75
|
+
/**
|
|
76
|
+
* Discover RFC 8414 Authorization Server Metadata for an issuer, trying the
|
|
77
|
+
* path-aware well-known URLs and the OpenID fallback in order. The metadata's
|
|
78
|
+
* `issuer` must equal the requested issuer (RFC 8414 §3.3), and the
|
|
79
|
+
* authorization/token endpoints must be HTTPS (or loopback) or we fail closed.
|
|
80
|
+
*/
|
|
81
|
+
export declare function discoverAuthorizationServerMetadata(input: {
|
|
82
|
+
issuer: string;
|
|
83
|
+
fetch?: typeof fetch;
|
|
84
|
+
timeoutMs?: number;
|
|
85
|
+
}): Promise<AuthorizationServerMetadata>;
|
|
86
|
+
export type PkcePair = {
|
|
87
|
+
verifier: string;
|
|
88
|
+
challenge: string;
|
|
89
|
+
method: "S256";
|
|
90
|
+
};
|
|
91
|
+
/** Create an RFC 7636 PKCE verifier/challenge pair (S256). */
|
|
92
|
+
export declare function createPkcePair(randomVerifier?: () => string): PkcePair;
|
|
93
|
+
/** Create an anti-CSRF `state` value for the authorization request. */
|
|
94
|
+
export declare function createOAuthState(randomState?: () => string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Build the OAuth 2.1 authorization-request URL. The RFC 8707 `resource`
|
|
97
|
+
* parameter is always included and set to the canonical MCP URI (MUST per the
|
|
98
|
+
* MCP spec, regardless of AS support), alongside PKCE `code_challenge` and the
|
|
99
|
+
* anti-CSRF `state`.
|
|
100
|
+
*/
|
|
101
|
+
export declare function buildAuthorizationUrl(input: {
|
|
102
|
+
authorizationEndpoint: string;
|
|
103
|
+
clientId: string;
|
|
104
|
+
redirectUri: string;
|
|
105
|
+
resource: string;
|
|
106
|
+
scopes: string[];
|
|
107
|
+
state: string;
|
|
108
|
+
codeChallenge: string;
|
|
109
|
+
extraParams?: Record<string, string>;
|
|
110
|
+
}): string;
|
|
111
|
+
export type OAuthTokens = {
|
|
112
|
+
accessToken: string;
|
|
113
|
+
refreshToken: string | null;
|
|
114
|
+
tokenType: string;
|
|
115
|
+
scope: string[];
|
|
116
|
+
expiresIn: number | null;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Exchange an authorization code for tokens at the token endpoint. Sends the
|
|
120
|
+
* RFC 7636 `code_verifier` and the RFC 8707 `resource` parameter so the issued
|
|
121
|
+
* token is audience-bound to this MCP server. Public-client form (no secret) is
|
|
122
|
+
* the default; a confidential client secret is included only when supplied.
|
|
123
|
+
*/
|
|
124
|
+
export declare function exchangeAuthorizationCode(input: {
|
|
125
|
+
tokenEndpoint: string;
|
|
126
|
+
clientId: string;
|
|
127
|
+
clientSecret?: string;
|
|
128
|
+
code: string;
|
|
129
|
+
redirectUri: string;
|
|
130
|
+
codeVerifier: string;
|
|
131
|
+
resource: string;
|
|
132
|
+
fetch?: typeof fetch;
|
|
133
|
+
timeoutMs?: number;
|
|
134
|
+
}): Promise<OAuthTokens>;
|
|
135
|
+
/**
|
|
136
|
+
* Refresh an access token. Per OAuth 2.1 the `resource` parameter is repeated so
|
|
137
|
+
* the refreshed token keeps the same audience; the requested `scope` is narrowed
|
|
138
|
+
* to what was originally granted (never broadened).
|
|
139
|
+
*/
|
|
140
|
+
export declare function refreshAccessToken(input: {
|
|
141
|
+
tokenEndpoint: string;
|
|
142
|
+
clientId: string;
|
|
143
|
+
clientSecret?: string;
|
|
144
|
+
refreshToken: string;
|
|
145
|
+
resource: string;
|
|
146
|
+
scopes?: string[];
|
|
147
|
+
fetch?: typeof fetch;
|
|
148
|
+
timeoutMs?: number;
|
|
149
|
+
}): Promise<OAuthTokens>;
|
|
150
|
+
export type RegisteredClient = {
|
|
151
|
+
clientId: string;
|
|
152
|
+
clientSecret: string | null;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Register a public OAuth client via RFC 7591 Dynamic Client Registration. We
|
|
156
|
+
* register as a public client using PKCE (`token_endpoint_auth_method: none`)
|
|
157
|
+
* with the loopback redirect and the authorization-code grant, so no client
|
|
158
|
+
* secret is needed or stored. Returns the issued client id.
|
|
159
|
+
*/
|
|
160
|
+
export declare function registerOAuthClient(input: {
|
|
161
|
+
registrationEndpoint: string;
|
|
162
|
+
redirectUris: string[];
|
|
163
|
+
clientName: string;
|
|
164
|
+
scopes?: string[];
|
|
165
|
+
fetch?: typeof fetch;
|
|
166
|
+
timeoutMs?: number;
|
|
167
|
+
}): Promise<RegisteredClient>;
|
|
168
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|