@axtary/mcp 0.1.0 → 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/README.md +17 -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 +8 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +21 -6
- package/dist/core.js.map +1 -1
- 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 +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- 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 +13 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js.map +1 -1
- 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 +4 -3
package/dist/pins.js
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
export const MCP_PINS_SCHEMA_VERSION = "axtary.mcp_pins.v1";
|
|
5
|
+
/** Legacy hash-only manifest; still loadable and upgraded in place. */
|
|
6
|
+
export const MCP_PINS_SCHEMA_VERSION_V0 = "axtary.mcp_pins.v0";
|
|
7
|
+
/**
|
|
8
|
+
* A pin is the human-reviewed, persisted identity of an MCP tool: the exact
|
|
9
|
+
* `definitionHash` that was approved for governance. Provenance enforcement is
|
|
10
|
+
* only meaningful if it survives across sessions — otherwise a server that
|
|
11
|
+
* poisons a tool definition between launches is silently re-trusted. The pin
|
|
12
|
+
* manifest is that durable record; the `description` is kept solely so a human
|
|
13
|
+
* can diff old vs new at review time.
|
|
14
|
+
*
|
|
15
|
+
* v1 adds publisher provenance (`publisher`/`kid`/`semver`) and the version
|
|
16
|
+
* chain link (`priorDefinitionHash`): the hash of the version this pin
|
|
17
|
+
* supersedes. The chain is what makes a silent re-definition (rug pull)
|
|
18
|
+
* detectable — a new signed version must reference the version it replaces and
|
|
19
|
+
* bump its semver. These fields are nullable so a hash-only (unsigned) pin and
|
|
20
|
+
* a legacy v0 manifest remain valid.
|
|
21
|
+
*/
|
|
22
|
+
export const McpToolPinSchema = z.object({
|
|
23
|
+
toolName: z.string().min(1),
|
|
24
|
+
definitionHash: z.string().regex(/^sha256:[a-f0-9]{64}$/),
|
|
25
|
+
schemaVersion: z.string().min(1),
|
|
26
|
+
description: z.string().nullable().default(null),
|
|
27
|
+
pinnedAt: z.string().min(1),
|
|
28
|
+
publisher: z.string().min(1).nullable().default(null),
|
|
29
|
+
kid: z.string().min(1).nullable().default(null),
|
|
30
|
+
semver: z.string().min(1).nullable().default(null),
|
|
31
|
+
priorDefinitionHash: z
|
|
32
|
+
.string()
|
|
33
|
+
.regex(/^sha256:[a-f0-9]{64}$/)
|
|
34
|
+
.nullable()
|
|
35
|
+
.default(null),
|
|
36
|
+
});
|
|
37
|
+
export const McpServerPinsSchema = z.object({
|
|
38
|
+
serverIdentity: z.string().min(1),
|
|
39
|
+
serverVersion: z.string().nullable().default(null),
|
|
40
|
+
tools: z.array(McpToolPinSchema).default([]),
|
|
41
|
+
});
|
|
42
|
+
export const McpPinManifestSchema = z
|
|
43
|
+
.object({
|
|
44
|
+
// Accept the legacy v0 marker so old manifests keep loading; every pin is
|
|
45
|
+
// normalized to the v1 shape (null provenance) and re-saved as v1.
|
|
46
|
+
schemaVersion: z.union([
|
|
47
|
+
z.literal(MCP_PINS_SCHEMA_VERSION),
|
|
48
|
+
z.literal(MCP_PINS_SCHEMA_VERSION_V0),
|
|
49
|
+
]),
|
|
50
|
+
servers: z.array(McpServerPinsSchema).default([]),
|
|
51
|
+
})
|
|
52
|
+
.transform((manifest) => ({
|
|
53
|
+
schemaVersion: MCP_PINS_SCHEMA_VERSION,
|
|
54
|
+
servers: manifest.servers,
|
|
55
|
+
}));
|
|
56
|
+
export function emptyMcpPinManifest() {
|
|
57
|
+
return { schemaVersion: MCP_PINS_SCHEMA_VERSION, servers: [] };
|
|
58
|
+
}
|
|
59
|
+
export function parseMcpPinManifest(input) {
|
|
60
|
+
return McpPinManifestSchema.parse(input);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Load the pin manifest. A missing file is the legitimate first-use state and
|
|
64
|
+
* yields an empty manifest; a present-but-corrupt file fails loud (we never
|
|
65
|
+
* silently fall back to "trust everything").
|
|
66
|
+
*/
|
|
67
|
+
export async function loadMcpPinManifest(path) {
|
|
68
|
+
let raw;
|
|
69
|
+
try {
|
|
70
|
+
raw = await readFile(path, "utf8");
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error.code === "ENOENT") {
|
|
74
|
+
return emptyMcpPinManifest();
|
|
75
|
+
}
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
return parseMcpPinManifest(JSON.parse(raw));
|
|
79
|
+
}
|
|
80
|
+
export async function saveMcpPinManifest(path, manifest) {
|
|
81
|
+
await mkdir(dirname(path), { recursive: true });
|
|
82
|
+
await writeFile(path, `${JSON.stringify(normalizeManifest(manifest), null, 2)}\n`, {
|
|
83
|
+
encoding: "utf8",
|
|
84
|
+
mode: 0o600,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
function findServer(manifest, serverIdentity) {
|
|
88
|
+
return manifest.servers.find((server) => server.serverIdentity === serverIdentity);
|
|
89
|
+
}
|
|
90
|
+
export function findMcpToolPin(manifest, serverIdentity, toolName) {
|
|
91
|
+
return findServer(manifest, serverIdentity)?.tools.find((tool) => tool.toolName === toolName);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Compare what the upstream advertises now against the persisted pins. Pure:
|
|
95
|
+
* no IO, no mutation. This is the heart of cross-session drift detection.
|
|
96
|
+
*/
|
|
97
|
+
export function reconcileMcpPins(manifest, definitions) {
|
|
98
|
+
return definitions.map((definition) => {
|
|
99
|
+
const pin = findMcpToolPin(manifest, definition.serverIdentity, definition.name);
|
|
100
|
+
const discoveredDescription = definition.description ?? null;
|
|
101
|
+
if (!pin) {
|
|
102
|
+
return {
|
|
103
|
+
status: "new",
|
|
104
|
+
serverIdentity: definition.serverIdentity,
|
|
105
|
+
toolName: definition.name,
|
|
106
|
+
discoveredHash: definition.definitionHash,
|
|
107
|
+
discoveredDescription,
|
|
108
|
+
pinnedHash: null,
|
|
109
|
+
pinnedDescription: null,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const status = pin.definitionHash === definition.definitionHash ? "pinned" : "drifted";
|
|
113
|
+
return {
|
|
114
|
+
status,
|
|
115
|
+
serverIdentity: definition.serverIdentity,
|
|
116
|
+
toolName: definition.name,
|
|
117
|
+
discoveredHash: definition.definitionHash,
|
|
118
|
+
discoveredDescription,
|
|
119
|
+
pinnedHash: pin.definitionHash,
|
|
120
|
+
pinnedDescription: pin.description,
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Return a new manifest with the given definitions pinned at their current
|
|
126
|
+
* hash. Used both for trust-on-first-use (new tools) and for the explicit
|
|
127
|
+
* `mcp review --accept` path (drifted tools). Never mutates the input.
|
|
128
|
+
*/
|
|
129
|
+
export function pinMcpDefinitions(manifest, definitions, options = {}) {
|
|
130
|
+
const now = options.now ?? (() => new Date().toISOString());
|
|
131
|
+
const next = normalizeManifest(manifest);
|
|
132
|
+
for (const definition of definitions) {
|
|
133
|
+
let server = next.servers.find((entry) => entry.serverIdentity === definition.serverIdentity);
|
|
134
|
+
if (!server) {
|
|
135
|
+
server = {
|
|
136
|
+
serverIdentity: definition.serverIdentity,
|
|
137
|
+
serverVersion: definition.serverVersion ?? null,
|
|
138
|
+
tools: [],
|
|
139
|
+
};
|
|
140
|
+
next.servers.push(server);
|
|
141
|
+
}
|
|
142
|
+
else if (definition.serverVersion) {
|
|
143
|
+
server.serverVersion = definition.serverVersion;
|
|
144
|
+
}
|
|
145
|
+
const provenance = options.provenance?.(definition);
|
|
146
|
+
const pin = {
|
|
147
|
+
toolName: definition.name,
|
|
148
|
+
definitionHash: definition.definitionHash,
|
|
149
|
+
schemaVersion: definition.schemaVersion,
|
|
150
|
+
description: definition.description ?? null,
|
|
151
|
+
pinnedAt: now(),
|
|
152
|
+
publisher: provenance?.publisher ?? null,
|
|
153
|
+
kid: provenance?.kid ?? null,
|
|
154
|
+
semver: provenance?.semver ?? null,
|
|
155
|
+
priorDefinitionHash: provenance?.priorDefinitionHash ?? null,
|
|
156
|
+
};
|
|
157
|
+
const existingIndex = server.tools.findIndex((tool) => tool.toolName === definition.name);
|
|
158
|
+
if (existingIndex === -1) {
|
|
159
|
+
server.tools.push(pin);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
server.tools[existingIndex] = pin;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return normalizeManifest(next);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Pure: compare a verified candidate against the current pin. No IO. Used by
|
|
169
|
+
* the review/accept path to decide whether a drifted-but-signed definition is
|
|
170
|
+
* a legitimate next version or a broken/regressed chain that needs a human.
|
|
171
|
+
*/
|
|
172
|
+
export function evaluateMcpVersionChain(input) {
|
|
173
|
+
if (!input.pin) {
|
|
174
|
+
return { verdict: "first_pin", reason: null };
|
|
175
|
+
}
|
|
176
|
+
if (input.pin.definitionHash === input.candidateHash) {
|
|
177
|
+
return { verdict: "unchanged", reason: null };
|
|
178
|
+
}
|
|
179
|
+
// A signed re-version must point back at exactly the version it replaces.
|
|
180
|
+
if (input.candidatePriorHash !== input.pin.definitionHash) {
|
|
181
|
+
return {
|
|
182
|
+
verdict: "broken_chain",
|
|
183
|
+
reason: `mcp_chain_prior_mismatch:${input.pin.definitionHash}`,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// And it must advance the semantic version (ETDI immutable versioning).
|
|
187
|
+
if (input.pin.semver &&
|
|
188
|
+
input.candidateSemver &&
|
|
189
|
+
compareSemver(input.candidateSemver, input.pin.semver) <= 0) {
|
|
190
|
+
return {
|
|
191
|
+
verdict: "version_not_incremented",
|
|
192
|
+
reason: `mcp_chain_version_not_incremented:${input.pin.semver}`,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return { verdict: "continuous", reason: null };
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Deterministic semver ordering: numeric major.minor.patch, then prerelease
|
|
199
|
+
* (a build *with* a prerelease tag is lower than the same release without).
|
|
200
|
+
* Returns <0, 0, or >0.
|
|
201
|
+
*/
|
|
202
|
+
export function compareSemver(left, right) {
|
|
203
|
+
const a = parseSemver(left);
|
|
204
|
+
const b = parseSemver(right);
|
|
205
|
+
for (let index = 0; index < 3; index += 1) {
|
|
206
|
+
const core = (a.core[index] ?? 0) - (b.core[index] ?? 0);
|
|
207
|
+
if (core !== 0)
|
|
208
|
+
return core < 0 ? -1 : 1;
|
|
209
|
+
}
|
|
210
|
+
if (a.prerelease === b.prerelease)
|
|
211
|
+
return 0;
|
|
212
|
+
if (a.prerelease === null)
|
|
213
|
+
return 1; // release > prerelease
|
|
214
|
+
if (b.prerelease === null)
|
|
215
|
+
return -1;
|
|
216
|
+
return a.prerelease < b.prerelease ? -1 : 1;
|
|
217
|
+
}
|
|
218
|
+
function parseSemver(value) {
|
|
219
|
+
const [core, prerelease = null] = value.split("-", 2);
|
|
220
|
+
const parts = core.split(".").map((part) => Number.parseInt(part, 10));
|
|
221
|
+
return {
|
|
222
|
+
core: [parts[0] ?? 0, parts[1] ?? 0, parts[2] ?? 0],
|
|
223
|
+
prerelease,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/** Stable ordering so the manifest is diff-friendly and deterministic on disk. */
|
|
227
|
+
function normalizeManifest(manifest) {
|
|
228
|
+
return {
|
|
229
|
+
schemaVersion: MCP_PINS_SCHEMA_VERSION,
|
|
230
|
+
servers: [...manifest.servers]
|
|
231
|
+
.map((server) => ({
|
|
232
|
+
serverIdentity: server.serverIdentity,
|
|
233
|
+
serverVersion: server.serverVersion ?? null,
|
|
234
|
+
tools: [...server.tools].sort((left, right) => left.toolName < right.toolName ? -1 : left.toolName > right.toolName ? 1 : 0),
|
|
235
|
+
}))
|
|
236
|
+
.sort((left, right) => left.serverIdentity < right.serverIdentity
|
|
237
|
+
? -1
|
|
238
|
+
: left.serverIdentity > right.serverIdentity
|
|
239
|
+
? 1
|
|
240
|
+
: 0),
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=pins.js.map
|
package/dist/pins.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pins.js","sourceRoot":"","sources":["../src/pins.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -51,7 +51,19 @@ export type McpUpstreamServerInfo = {
|
|
|
51
51
|
version: string;
|
|
52
52
|
protocolVersion: string;
|
|
53
53
|
};
|
|
54
|
-
|
|
54
|
+
/**
|
|
55
|
+
* The transport-agnostic surface the governance path needs from an upstream
|
|
56
|
+
* MCP server. Both `McpStdioClient` and `McpHttpClient` implement it, so
|
|
57
|
+
* `axtary mcp serve`/`mcp review` pin and govern identically regardless of how
|
|
58
|
+
* the upstream is reached.
|
|
59
|
+
*/
|
|
60
|
+
export interface McpUpstreamClient {
|
|
61
|
+
serverInfo: McpUpstreamServerInfo | null;
|
|
62
|
+
listTools(): Promise<McpUpstreamToolListing[]>;
|
|
63
|
+
callTool(name: string, callArguments: Record<string, JsonValue>): Promise<JsonValue>;
|
|
64
|
+
close(): void;
|
|
65
|
+
}
|
|
66
|
+
export declare class McpStdioClient implements McpUpstreamClient {
|
|
55
67
|
private readonly child;
|
|
56
68
|
private readonly timeoutMs;
|
|
57
69
|
private readonly pending;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAKL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,uBAAuB,CAAC;IACpC,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,UAAU,EAAE,sBAAsB,GAAG,uBAAuB,CAAC;IAC7D,MAAM,EAAE,cAAc,CAAC;CACxB,GAAG,cAAc,CAKjB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,CAkBxE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;CACrC,CAAC;AAWF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,MAAM,EAAE,sBAAsB;IAO1C,mBAAmB,IAAI,uBAAuB,EAAE;IAI1C,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YA6DhD,cAAc;CA+D7B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAEvF;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { type CryptoKey, type JWK, type KeyObject } from "jose";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import type { ToolHandler } from "@axtary/proxy";
|
|
4
|
+
import { type McpToolDefinitionInput, type McpToolDefinitionRecord, type McpToolInvoker } from "./core.js";
|
|
5
|
+
/**
|
|
6
|
+
* A signed MCP tool definition gives a tool a *publisher identity* and an
|
|
7
|
+
* immutable, versioned lineage on top of the content hash that
|
|
8
|
+
* `@axtary/mcp` already computes. This is the Axtary profile of the ETDI idea
|
|
9
|
+
* (arXiv:2506.01333): the publisher signs the exact `definitionHash`, a
|
|
10
|
+
* semantic version, the required scopes, and a pointer to the prior version's
|
|
11
|
+
* hash. A client rejects any definition that is unsigned, signed by an
|
|
12
|
+
* unknown key, mis-signed, or whose on-the-wire bytes no longer hash to the
|
|
13
|
+
* signed `definitionHash` — and it rejects it *before* the tool is invoked.
|
|
14
|
+
*
|
|
15
|
+
* We stay on the JOSE/ES256 profile already used by the ActionPass issuer
|
|
16
|
+
* keyring; the signature is a compact JWT (`statement+jwt`).
|
|
17
|
+
*/
|
|
18
|
+
export declare const MCP_SIGNED_DEFINITION_PROFILE = "axtary.mcp_signed_definition.v1";
|
|
19
|
+
export declare const MCP_SIGNED_DEFINITION_TYP = "axtary-mcp-tool-definition+jwt";
|
|
20
|
+
export declare const MCP_PUBLISHER_KEYRING_VERSION = "axtary.mcp_publisher_keyring.v0";
|
|
21
|
+
export declare const MCP_PUBLISHER_TRUST_VERSION = "axtary.mcp_publisher_trust.v0";
|
|
22
|
+
export declare const MCP_SIGNED_DEFINITION_REGISTRY_VERSION = "axtary.mcp_signed_definition_registry.v0";
|
|
23
|
+
/**
|
|
24
|
+
* The claims the publisher signs. `definitionHash` binds the signature to the
|
|
25
|
+
* exact tool definition; `priorDefinitionHash` links this version to the one
|
|
26
|
+
* it supersedes so a rug-pull (silent re-definition) is visible as a chain.
|
|
27
|
+
*/
|
|
28
|
+
export declare const McpSignedDefinitionClaimsSchema: z.ZodObject<{
|
|
29
|
+
iss: z.ZodString;
|
|
30
|
+
sub: z.ZodString;
|
|
31
|
+
iat: z.ZodNumber;
|
|
32
|
+
axtary_mcp_profile: z.ZodLiteral<"axtary.mcp_signed_definition.v1">;
|
|
33
|
+
serverIdentity: z.ZodString;
|
|
34
|
+
toolName: z.ZodString;
|
|
35
|
+
schemaVersion: z.ZodString;
|
|
36
|
+
definitionHash: z.ZodString;
|
|
37
|
+
semver: z.ZodString;
|
|
38
|
+
requiredScopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
39
|
+
priorDefinitionHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export type McpSignedDefinitionClaims = z.infer<typeof McpSignedDefinitionClaimsSchema>;
|
|
42
|
+
/** A public publisher key, JWKS-shaped, resolvable by `kid`. */
|
|
43
|
+
export declare const McpPublisherKeySchema: z.ZodObject<{
|
|
44
|
+
kid: z.ZodString;
|
|
45
|
+
kty: z.ZodString;
|
|
46
|
+
crv: z.ZodString;
|
|
47
|
+
x: z.ZodString;
|
|
48
|
+
y: z.ZodString;
|
|
49
|
+
alg: z.ZodDefault<z.ZodLiteral<"ES256">>;
|
|
50
|
+
use: z.ZodDefault<z.ZodLiteral<"sig">>;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type McpPublisherKey = z.infer<typeof McpPublisherKeySchema>;
|
|
53
|
+
export declare const McpPublisherKeyringSchema: z.ZodObject<{
|
|
54
|
+
schemaVersion: z.ZodLiteral<"axtary.mcp_publisher_keyring.v0">;
|
|
55
|
+
publisher: z.ZodString;
|
|
56
|
+
activeKid: z.ZodString;
|
|
57
|
+
keys: z.ZodArray<z.ZodObject<{
|
|
58
|
+
kid: z.ZodString;
|
|
59
|
+
kty: z.ZodString;
|
|
60
|
+
crv: z.ZodString;
|
|
61
|
+
x: z.ZodString;
|
|
62
|
+
y: z.ZodString;
|
|
63
|
+
alg: z.ZodDefault<z.ZodLiteral<"ES256">>;
|
|
64
|
+
use: z.ZodDefault<z.ZodLiteral<"sig">>;
|
|
65
|
+
privateKeyPem: z.ZodString;
|
|
66
|
+
createdAt: z.ZodString;
|
|
67
|
+
}, z.core.$strip>>;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
export type McpPublisherKeyring = z.infer<typeof McpPublisherKeyringSchema>;
|
|
70
|
+
/**
|
|
71
|
+
* The verifier-side trust anchor: a configured map of publisher identity to
|
|
72
|
+
* the public keys we will accept signatures from. A signature whose `kid` is
|
|
73
|
+
* not in this store is rejected — there is no trust-on-first-use for
|
|
74
|
+
* *signatures* (that would defeat publisher identity); TOFU stays at the pin
|
|
75
|
+
* layer, which is a deliberate, separate, human-reviewed decision.
|
|
76
|
+
*/
|
|
77
|
+
export declare const McpPublisherTrustEntrySchema: z.ZodObject<{
|
|
78
|
+
publisher: z.ZodString;
|
|
79
|
+
keys: z.ZodArray<z.ZodObject<{
|
|
80
|
+
kid: z.ZodString;
|
|
81
|
+
kty: z.ZodString;
|
|
82
|
+
crv: z.ZodString;
|
|
83
|
+
x: z.ZodString;
|
|
84
|
+
y: z.ZodString;
|
|
85
|
+
alg: z.ZodDefault<z.ZodLiteral<"ES256">>;
|
|
86
|
+
use: z.ZodDefault<z.ZodLiteral<"sig">>;
|
|
87
|
+
}, z.core.$strip>>;
|
|
88
|
+
}, z.core.$strip>;
|
|
89
|
+
export type McpPublisherTrustEntry = z.infer<typeof McpPublisherTrustEntrySchema>;
|
|
90
|
+
export declare const McpPublisherTrustStoreSchema: z.ZodObject<{
|
|
91
|
+
schemaVersion: z.ZodLiteral<"axtary.mcp_publisher_trust.v0">;
|
|
92
|
+
publishers: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
93
|
+
publisher: z.ZodString;
|
|
94
|
+
keys: z.ZodArray<z.ZodObject<{
|
|
95
|
+
kid: z.ZodString;
|
|
96
|
+
kty: z.ZodString;
|
|
97
|
+
crv: z.ZodString;
|
|
98
|
+
x: z.ZodString;
|
|
99
|
+
y: z.ZodString;
|
|
100
|
+
alg: z.ZodDefault<z.ZodLiteral<"ES256">>;
|
|
101
|
+
use: z.ZodDefault<z.ZodLiteral<"sig">>;
|
|
102
|
+
}, z.core.$strip>>;
|
|
103
|
+
}, z.core.$strip>>>;
|
|
104
|
+
}, z.core.$strip>;
|
|
105
|
+
export type McpPublisherTrustStore = z.infer<typeof McpPublisherTrustStoreSchema>;
|
|
106
|
+
export declare const McpSignedDefinitionRegistryEntrySchema: z.ZodObject<{
|
|
107
|
+
serverIdentity: z.ZodString;
|
|
108
|
+
toolName: z.ZodString;
|
|
109
|
+
publisher: z.ZodString;
|
|
110
|
+
statement: z.ZodString;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
export type McpSignedDefinitionRegistryEntry = z.infer<typeof McpSignedDefinitionRegistryEntrySchema>;
|
|
113
|
+
export declare const McpSignedDefinitionRegistrySchema: z.ZodObject<{
|
|
114
|
+
schemaVersion: z.ZodLiteral<"axtary.mcp_signed_definition_registry.v0">;
|
|
115
|
+
statements: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
116
|
+
serverIdentity: z.ZodString;
|
|
117
|
+
toolName: z.ZodString;
|
|
118
|
+
publisher: z.ZodString;
|
|
119
|
+
statement: z.ZodString;
|
|
120
|
+
}, z.core.$strip>>>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
export type McpSignedDefinitionRegistry = z.infer<typeof McpSignedDefinitionRegistrySchema>;
|
|
123
|
+
export type McpPublisherKeyResolver = (kid: string | undefined) => Promise<CryptoKey | KeyObject | Uint8Array | undefined>;
|
|
124
|
+
export type McpSignedDefinitionVerification = {
|
|
125
|
+
claims: McpSignedDefinitionClaims;
|
|
126
|
+
publisher: string;
|
|
127
|
+
kid: string;
|
|
128
|
+
semver: string;
|
|
129
|
+
requiredScopes: string[];
|
|
130
|
+
definitionHash: string;
|
|
131
|
+
priorDefinitionHash: string | null;
|
|
132
|
+
};
|
|
133
|
+
export type SignMcpToolDefinitionInput = {
|
|
134
|
+
definition: McpToolDefinitionInput | McpToolDefinitionRecord;
|
|
135
|
+
publisher: string;
|
|
136
|
+
semver: string;
|
|
137
|
+
signingKey: KeyObject | CryptoKey | JWK | Uint8Array;
|
|
138
|
+
keyId: string;
|
|
139
|
+
requiredScopes?: string[];
|
|
140
|
+
priorDefinitionHash?: string | null;
|
|
141
|
+
now?: Date;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Publisher-side: sign a tool definition. The signature commits to the exact
|
|
145
|
+
* `definitionHash`, so a later byte-level change to the definition cannot be
|
|
146
|
+
* presented under this signature.
|
|
147
|
+
*/
|
|
148
|
+
export declare function signMcpToolDefinition(input: SignMcpToolDefinitionInput): Promise<{
|
|
149
|
+
statement: string;
|
|
150
|
+
claims: McpSignedDefinitionClaims;
|
|
151
|
+
}>;
|
|
152
|
+
/**
|
|
153
|
+
* Verifier-side: verify a signed definition against a known publisher key and
|
|
154
|
+
* the *actual* tool definition presented now. Fails closed on every distinct
|
|
155
|
+
* failure with a stable reason. The `definitionHash` recomputed from the live
|
|
156
|
+
* definition must equal the signed hash — that is the altered-definition /
|
|
157
|
+
* tool-poisoning rejection.
|
|
158
|
+
*/
|
|
159
|
+
export declare function verifyMcpSignedDefinition(input: {
|
|
160
|
+
statement: string;
|
|
161
|
+
definition: McpToolDefinitionInput | McpToolDefinitionRecord;
|
|
162
|
+
verificationKeys: McpPublisherKeyResolver;
|
|
163
|
+
expectedPublisher?: string;
|
|
164
|
+
}): Promise<McpSignedDefinitionVerification>;
|
|
165
|
+
/**
|
|
166
|
+
* Wrap a tool invoker so the publisher signature is verified against the live
|
|
167
|
+
* definition *before* the tool runs. Any failure — unsigned (no statement
|
|
168
|
+
* configured is simply not this handler), mis-signed, unknown key, or an
|
|
169
|
+
* altered definition whose bytes no longer hash to the signed value — throws
|
|
170
|
+
* and the tool is never invoked. When the action carries bound provenance, it
|
|
171
|
+
* must also agree with the verified signature.
|
|
172
|
+
*/
|
|
173
|
+
export declare function createSignedMcpToolHandler(input: {
|
|
174
|
+
definition: McpToolDefinitionInput | McpToolDefinitionRecord;
|
|
175
|
+
invoke: McpToolInvoker;
|
|
176
|
+
statement: string;
|
|
177
|
+
verificationKeys: McpPublisherKeyResolver;
|
|
178
|
+
expectedPublisher?: string;
|
|
179
|
+
}): ToolHandler;
|
|
180
|
+
/**
|
|
181
|
+
* Build a key resolver from a configured trust store. A `kid` that is not
|
|
182
|
+
* present (optionally scoped to `expectedPublisher`) resolves to `undefined`,
|
|
183
|
+
* which makes verification fail closed.
|
|
184
|
+
*/
|
|
185
|
+
export declare function mcpPublisherKeyResolver(store: McpPublisherTrustStore, options?: {
|
|
186
|
+
publisher?: string;
|
|
187
|
+
}): McpPublisherKeyResolver;
|
|
188
|
+
export declare function emptyMcpPublisherTrustStore(): McpPublisherTrustStore;
|
|
189
|
+
export declare function parseMcpPublisherTrustStore(input: unknown): McpPublisherTrustStore;
|
|
190
|
+
export declare function loadMcpPublisherTrustStore(path: string): Promise<McpPublisherTrustStore>;
|
|
191
|
+
export declare function saveMcpPublisherTrustStore(path: string, store: McpPublisherTrustStore): Promise<void>;
|
|
192
|
+
export declare function loadMcpSignedDefinitionRegistry(path: string): Promise<McpSignedDefinitionRegistry>;
|
|
193
|
+
export declare function findMcpSignedDefinition(registry: McpSignedDefinitionRegistry, serverIdentity: string, toolName: string): McpSignedDefinitionRegistryEntry | undefined;
|
|
194
|
+
/**
|
|
195
|
+
* Add (or replace) a publisher's public keys in the trust store. Pure: never
|
|
196
|
+
* mutates the input. Used to register a publisher's JWKS for verification.
|
|
197
|
+
*/
|
|
198
|
+
export declare function trustMcpPublisher(store: McpPublisherTrustStore, publisher: string, keys: McpPublisherKey[]): McpPublisherTrustStore;
|
|
199
|
+
/** Public JWKS for a publisher keyring, suitable for distribution. */
|
|
200
|
+
export declare function mcpPublisherJwks(keyring: McpPublisherKeyring): {
|
|
201
|
+
keys: McpPublisherKey[];
|
|
202
|
+
};
|
|
203
|
+
/** The active signing key for a publisher keyring. */
|
|
204
|
+
export declare function mcpPublisherSigningKey(keyring: McpPublisherKeyring): {
|
|
205
|
+
kid: string;
|
|
206
|
+
privateKey: KeyObject;
|
|
207
|
+
publicJwk: McpPublisherKey;
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Load or create a publisher keyring. The private keys are written `0600` via
|
|
211
|
+
* an atomic rename; a missing file is first-use, a corrupt file fails loud.
|
|
212
|
+
*/
|
|
213
|
+
export declare function loadOrCreateMcpPublisherKeyring(input: {
|
|
214
|
+
filePath: string;
|
|
215
|
+
publisher: string;
|
|
216
|
+
now?: Date;
|
|
217
|
+
}): Promise<McpPublisherKeyring>;
|
|
218
|
+
//# sourceMappingURL=signing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"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"}
|