@webmcp-bridge/local-mcp 0.5.0 → 0.5.2

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/dist/sites.js CHANGED
@@ -5,6 +5,7 @@
5
5
  import { pathToFileURL } from "node:url";
6
6
  import { resolve } from "node:path";
7
7
  import { createAdapter as createFixtureAdapter, manifest as fixtureManifest, } from "@webmcp-bridge/adapter-fixture";
8
+ import { createAdapter as createGoogleAdapter, manifest as googleManifest, } from "@webmcp-bridge/adapter-google";
8
9
  import { createAdapter as createXAdapter, manifest as xManifest, } from "@webmcp-bridge/adapter-x";
9
10
  const BUILTIN_SITE_DEFINITIONS = {
10
11
  x: {
@@ -13,6 +14,12 @@ const BUILTIN_SITE_DEFINITIONS = {
13
14
  manifest: xManifest,
14
15
  createFallbackAdapter: () => createXAdapter(),
15
16
  },
17
+ google: {
18
+ id: "google",
19
+ source: "builtin",
20
+ manifest: googleManifest,
21
+ createFallbackAdapter: () => createGoogleAdapter(),
22
+ },
16
23
  fixture: {
17
24
  id: "fixture",
18
25
  source: "builtin",
@@ -37,6 +44,8 @@ function validateManifest(value) {
37
44
  const defaultUrl = value.defaultUrl;
38
45
  const hostPatterns = value.hostPatterns;
39
46
  const authProbeTool = value.authProbeTool;
47
+ const deferBridgeUntilAuthenticated = value.deferBridgeUntilAuthenticated;
48
+ const authPolicy = value.authPolicy;
40
49
  if (!isNonEmptyString(id)) {
41
50
  throw new Error("ADAPTER_CONTRACT_ERROR: manifest.id must be a non-empty string");
42
51
  }
@@ -61,6 +70,25 @@ function validateManifest(value) {
61
70
  if (authProbeTool !== undefined && !isNonEmptyString(authProbeTool)) {
62
71
  throw new Error("ADAPTER_CONTRACT_ERROR: manifest.authProbeTool must be a non-empty string when provided");
63
72
  }
73
+ if (deferBridgeUntilAuthenticated !== undefined &&
74
+ typeof deferBridgeUntilAuthenticated !== "boolean") {
75
+ throw new Error("ADAPTER_CONTRACT_ERROR: manifest.deferBridgeUntilAuthenticated must be a boolean when provided");
76
+ }
77
+ if (authPolicy !== undefined) {
78
+ if (!isRecord(authPolicy)) {
79
+ throw new Error("ADAPTER_CONTRACT_ERROR: manifest.authPolicy must be an object when provided");
80
+ }
81
+ if (authPolicy.mode !== "none" && authPolicy.mode !== "bootstrap_then_attach") {
82
+ throw new Error("ADAPTER_CONTRACT_ERROR: manifest.authPolicy.mode must be none or bootstrap_then_attach");
83
+ }
84
+ if (authPolicy.authProbeTool !== undefined && !isNonEmptyString(authPolicy.authProbeTool)) {
85
+ throw new Error("ADAPTER_CONTRACT_ERROR: manifest.authPolicy.authProbeTool must be a non-empty string when provided");
86
+ }
87
+ if (authPolicy.allowAnonymousTools !== undefined &&
88
+ typeof authPolicy.allowAnonymousTools !== "boolean") {
89
+ throw new Error("ADAPTER_CONTRACT_ERROR: manifest.authPolicy.allowAnonymousTools must be a boolean when provided");
90
+ }
91
+ }
64
92
  const output = {
65
93
  id,
66
94
  displayName,
@@ -74,6 +102,28 @@ function validateManifest(value) {
74
102
  if (authProbeTool !== undefined) {
75
103
  output.authProbeTool = authProbeTool;
76
104
  }
105
+ if (deferBridgeUntilAuthenticated !== undefined) {
106
+ output.deferBridgeUntilAuthenticated = deferBridgeUntilAuthenticated;
107
+ }
108
+ if (authPolicy !== undefined) {
109
+ const normalizedAuthPolicy = authPolicy;
110
+ output.authPolicy = {
111
+ mode: normalizedAuthPolicy.mode,
112
+ ...(normalizedAuthPolicy.authProbeTool !== undefined
113
+ ? { authProbeTool: normalizedAuthPolicy.authProbeTool }
114
+ : {}),
115
+ ...(normalizedAuthPolicy.allowAnonymousTools !== undefined
116
+ ? { allowAnonymousTools: normalizedAuthPolicy.allowAnonymousTools }
117
+ : {}),
118
+ };
119
+ }
120
+ else if (authProbeTool !== undefined || deferBridgeUntilAuthenticated !== undefined) {
121
+ output.authPolicy = {
122
+ mode: deferBridgeUntilAuthenticated === true ? "bootstrap_then_attach" : "none",
123
+ ...(authProbeTool !== undefined ? { authProbeTool } : {}),
124
+ ...(deferBridgeUntilAuthenticated === true ? { allowAnonymousTools: true } : {}),
125
+ };
126
+ }
77
127
  return output;
78
128
  }
79
129
  function validateSiteAdapterModule(value) {
package/dist/sites.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webmcp-bridge/local-mcp",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "type": "module",
5
5
  "description": "Local stdio MCP server that bridges local agents to browser WebMCP through Playwright.",
6
6
  "main": "dist/index.js",
@@ -16,7 +16,8 @@
16
16
  },
17
17
  "publishConfig": {
18
18
  "access": "public",
19
- "tag": "beta"
19
+ "tag": "beta",
20
+ "provenance": true
20
21
  },
21
22
  "files": [
22
23
  "dist"
@@ -43,10 +44,11 @@
43
44
  "@modelcontextprotocol/sdk": "^1.27.1",
44
45
  "playwright": "^1.58.2",
45
46
  "zod": "^4.3.6",
46
- "@webmcp-bridge/adapter-fixture": "0.5.0",
47
- "@webmcp-bridge/adapter-x": "0.5.0",
48
- "@webmcp-bridge/playwright": "0.5.0",
49
- "@webmcp-bridge/core": "0.5.0"
47
+ "@webmcp-bridge/adapter-fixture": "0.5.2",
48
+ "@webmcp-bridge/adapter-google": "0.5.2",
49
+ "@webmcp-bridge/adapter-x": "0.5.2",
50
+ "@webmcp-bridge/core": "0.5.2",
51
+ "@webmcp-bridge/playwright": "0.5.2"
50
52
  },
51
53
  "license": "MIT",
52
54
  "scripts": {
package/dist/client.d.ts DELETED
@@ -1,39 +0,0 @@
1
- /**
2
- * This module implements a Unix-socket MCP JSON-RPC and SSE client for local MCP servers.
3
- * It is depended on by connectors and examples so they can call tools and consume event streams uniformly.
4
- */
5
- import type { JsonValue } from "@webmcp-bridge/core";
6
- import type { McpJsonRpcRequest, McpJsonRpcResponse, McpSseErrorPayload, McpSseEvent, McpSseMessagePayload, McpToolDefinition } from "./mcp-types.js";
7
- export declare class LocalMcpHttpError extends Error {
8
- readonly status: number;
9
- readonly code: string;
10
- readonly retryable: boolean;
11
- readonly details: Record<string, unknown> | undefined;
12
- constructor(options: {
13
- status: number;
14
- message: string;
15
- code?: string;
16
- retryable?: boolean;
17
- details?: Record<string, unknown>;
18
- });
19
- }
20
- export type LocalMcpClientOptions = {
21
- socketPath: string;
22
- };
23
- export declare class LocalMcpClient {
24
- private readonly socketPath;
25
- constructor(options: LocalMcpClientOptions);
26
- listTools(): Promise<McpToolDefinition[]>;
27
- callTool<T extends JsonValue>(name: string, args: Record<string, unknown>): Promise<T>;
28
- requestJsonRpc(request: McpJsonRpcRequest): Promise<McpJsonRpcResponse>;
29
- consumeEventStream(options: {
30
- lastEventId?: string;
31
- heartbeatTimeoutMs: number;
32
- onEvent: (event: McpSseEvent) => Promise<void> | void;
33
- signal?: AbortSignal;
34
- }): Promise<void>;
35
- parseSseMessagePayload(raw: string): McpSseMessagePayload;
36
- parseSseErrorPayload(raw: string): McpSseErrorPayload;
37
- private toError;
38
- }
39
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAExB,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAE1C,OAAO,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;CAQF;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,qBAAqB;IAIpC,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmBzC,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBtF,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiDvE,kBAAkB,CAAC,OAAO,EAAE;QAChC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACtD,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmHjB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;IAIzD,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAIrD,OAAO,CAAC,OAAO;CAmBhB"}
package/dist/client.js DELETED
@@ -1,232 +0,0 @@
1
- /**
2
- * This module implements a Unix-socket MCP JSON-RPC and SSE client for local MCP servers.
3
- * It is depended on by connectors and examples so they can call tools and consume event streams uniformly.
4
- */
5
- import { randomUUID } from "node:crypto";
6
- import { request as httpRequest } from "node:http";
7
- export class LocalMcpHttpError extends Error {
8
- status;
9
- code;
10
- retryable;
11
- details;
12
- constructor(options) {
13
- super(options.message);
14
- this.name = "LocalMcpHttpError";
15
- this.status = options.status;
16
- this.code = options.code ?? "INTERNAL";
17
- this.retryable = options.retryable ?? false;
18
- this.details = options.details;
19
- }
20
- }
21
- export class LocalMcpClient {
22
- socketPath;
23
- constructor(options) {
24
- this.socketPath = options.socketPath;
25
- }
26
- async listTools() {
27
- const response = await this.requestJsonRpc({
28
- jsonrpc: "2.0",
29
- id: randomUUID(),
30
- method: "tools/list",
31
- });
32
- if ("error" in response) {
33
- throw this.toError(response);
34
- }
35
- const tools = response.result?.tools;
36
- if (!Array.isArray(tools)) {
37
- throw new LocalMcpHttpError({
38
- status: 500,
39
- message: "invalid tools/list response",
40
- });
41
- }
42
- return tools;
43
- }
44
- async callTool(name, args) {
45
- const response = await this.requestJsonRpc({
46
- jsonrpc: "2.0",
47
- id: randomUUID(),
48
- method: "tools/call",
49
- params: {
50
- name,
51
- arguments: args,
52
- },
53
- });
54
- if ("error" in response) {
55
- throw this.toError(response);
56
- }
57
- const content = response.result?.content;
58
- if (!Array.isArray(content) || content.length === 0) {
59
- throw new LocalMcpHttpError({
60
- status: 500,
61
- message: "invalid tools/call response",
62
- });
63
- }
64
- const first = content[0];
65
- return first.json;
66
- }
67
- async requestJsonRpc(request) {
68
- return await new Promise((resolve, reject) => {
69
- const req = httpRequest({
70
- socketPath: this.socketPath,
71
- method: "POST",
72
- path: "/mcp",
73
- headers: {
74
- "content-type": "application/json; charset=utf-8",
75
- },
76
- }, (res) => {
77
- const chunks = [];
78
- res.on("data", (chunk) => {
79
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
80
- });
81
- res.on("end", () => {
82
- const raw = Buffer.concat(chunks).toString("utf8").trim();
83
- if (!raw) {
84
- reject(new LocalMcpHttpError({
85
- status: res.statusCode ?? 500,
86
- message: "empty mcp response",
87
- }));
88
- return;
89
- }
90
- try {
91
- resolve(JSON.parse(raw));
92
- }
93
- catch {
94
- reject(new LocalMcpHttpError({
95
- status: res.statusCode ?? 500,
96
- message: "invalid mcp json response",
97
- }));
98
- }
99
- });
100
- });
101
- req.setTimeout(30000, () => {
102
- req.destroy(new Error("mcp request timeout"));
103
- });
104
- req.on("error", reject);
105
- req.write(JSON.stringify(request));
106
- req.end();
107
- });
108
- }
109
- async consumeEventStream(options) {
110
- await new Promise((resolve, reject) => {
111
- const req = httpRequest({
112
- socketPath: this.socketPath,
113
- method: "GET",
114
- path: "/mcp/events",
115
- headers: options.lastEventId
116
- ? {
117
- accept: "text/event-stream",
118
- "last-event-id": options.lastEventId,
119
- }
120
- : {
121
- accept: "text/event-stream",
122
- },
123
- }, (res) => {
124
- if ((res.statusCode ?? 0) >= 400) {
125
- const chunks = [];
126
- res.on("data", (chunk) => {
127
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
128
- });
129
- res.on("end", () => {
130
- reject(new LocalMcpHttpError({
131
- status: res.statusCode ?? 500,
132
- message: Buffer.concat(chunks).toString("utf8") || "stream open failed",
133
- }));
134
- });
135
- return;
136
- }
137
- let pending = "";
138
- let watchdog;
139
- const resetWatchdog = () => {
140
- if (watchdog) {
141
- clearTimeout(watchdog);
142
- }
143
- watchdog = setTimeout(() => {
144
- req.destroy(new Error("stream heartbeat timeout"));
145
- }, options.heartbeatTimeoutMs);
146
- };
147
- resetWatchdog();
148
- const parseAndEmit = async (block) => {
149
- const lines = block
150
- .split("\n")
151
- .map((line) => line.replace(/\r$/, ""))
152
- .filter((line) => line.length > 0);
153
- if (lines.length === 0) {
154
- return;
155
- }
156
- let id;
157
- let event = "message";
158
- const dataLines = [];
159
- for (const line of lines) {
160
- if (line.startsWith("id:")) {
161
- id = line.slice(3).trim();
162
- continue;
163
- }
164
- if (line.startsWith("event:")) {
165
- event = line.slice(6).trim();
166
- continue;
167
- }
168
- if (line.startsWith("data:")) {
169
- dataLines.push(line.slice(5).trim());
170
- }
171
- }
172
- const sseEvent = {
173
- event,
174
- data: dataLines.join("\n"),
175
- };
176
- if (id !== undefined) {
177
- sseEvent.id = id;
178
- }
179
- await options.onEvent(sseEvent);
180
- };
181
- res.on("data", (chunk) => {
182
- resetWatchdog();
183
- pending += Buffer.isBuffer(chunk) ? chunk.toString("utf8") : String(chunk);
184
- const blocks = pending.split("\n\n");
185
- pending = blocks.pop() ?? "";
186
- void (async () => {
187
- for (const block of blocks) {
188
- await parseAndEmit(block);
189
- }
190
- })().catch((error) => {
191
- req.destroy(error instanceof Error ? error : new Error(String(error)));
192
- });
193
- });
194
- res.on("end", () => {
195
- if (watchdog) {
196
- clearTimeout(watchdog);
197
- }
198
- resolve();
199
- });
200
- });
201
- const abortHandler = () => {
202
- req.destroy(new Error("stream aborted"));
203
- };
204
- options.signal?.addEventListener("abort", abortHandler);
205
- req.on("error", reject);
206
- req.on("close", () => {
207
- options.signal?.removeEventListener("abort", abortHandler);
208
- });
209
- req.end();
210
- });
211
- }
212
- parseSseMessagePayload(raw) {
213
- return JSON.parse(raw);
214
- }
215
- parseSseErrorPayload(raw) {
216
- return JSON.parse(raw);
217
- }
218
- toError(response) {
219
- const data = response.error.data ?? {};
220
- const errorOptions = {
221
- status: 500,
222
- message: response.error.message,
223
- code: typeof data.code === "string" ? data.code : "INTERNAL",
224
- retryable: Boolean(data.retryable),
225
- };
226
- if (typeof data.details === "object" && data.details) {
227
- errorOptions.details = data.details;
228
- }
229
- return new LocalMcpHttpError(errorOptions);
230
- }
231
- }
232
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * This module provides a bounded in-memory ring buffer for replayable local MCP events.
3
- * It is depended on by the local MCP server SSE path to provide at-least-once delivery and overflow detection.
4
- */
5
- import type { JsonValue } from "@webmcp-bridge/core";
6
- export type BufferedEvent = {
7
- seq: number;
8
- event: JsonValue;
9
- };
10
- export type BufferedReplayResult = {
11
- overflow: boolean;
12
- events: BufferedEvent[];
13
- };
14
- export declare class EventBuffer {
15
- private readonly capacity;
16
- private readonly events;
17
- private nextSeq;
18
- constructor(capacity?: number);
19
- append(event: JsonValue): BufferedEvent;
20
- replayAfter(lastSeq: number): BufferedReplayResult;
21
- }
22
- //# sourceMappingURL=event-buffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-buffer.d.ts","sourceRoot":"","sources":["../src/event-buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,OAAO,CAAK;gBAER,QAAQ,SAAO;IAI3B,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa;IAavC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;CAuBnD"}
@@ -1,46 +0,0 @@
1
- /**
2
- * This module provides a bounded in-memory ring buffer for replayable local MCP events.
3
- * It is depended on by the local MCP server SSE path to provide at-least-once delivery and overflow detection.
4
- */
5
- export class EventBuffer {
6
- capacity;
7
- events = [];
8
- nextSeq = 1;
9
- constructor(capacity = 5000) {
10
- this.capacity = Math.max(1, capacity);
11
- }
12
- append(event) {
13
- const buffered = {
14
- seq: this.nextSeq,
15
- event,
16
- };
17
- this.nextSeq += 1;
18
- this.events.push(buffered);
19
- if (this.events.length > this.capacity) {
20
- this.events.shift();
21
- }
22
- return buffered;
23
- }
24
- replayAfter(lastSeq) {
25
- if (this.events.length === 0) {
26
- return {
27
- overflow: false,
28
- events: [],
29
- };
30
- }
31
- if (lastSeq > 0) {
32
- const oldest = this.events[0]?.seq ?? 0;
33
- if (lastSeq < oldest - 1) {
34
- return {
35
- overflow: true,
36
- events: [],
37
- };
38
- }
39
- }
40
- return {
41
- overflow: false,
42
- events: this.events.filter((item) => item.seq > lastSeq),
43
- };
44
- }
45
- }
46
- //# sourceMappingURL=event-buffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-buffer.js","sourceRoot":"","sources":["../src/event-buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,OAAO,WAAW;IACL,QAAQ,CAAS;IACjB,MAAM,GAAoB,EAAE,CAAC;IACtC,OAAO,GAAG,CAAC,CAAC;IAEpB,YAAY,QAAQ,GAAG,IAAI;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,KAAgB;QACrB,MAAM,QAAQ,GAAkB;YAC9B,GAAG,EAAE,IAAI,CAAC,OAAO;YACjB,KAAK;SACN,CAAC;QACF,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YACxC,IAAI,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,EAAE;iBACX,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;SACzD,CAAC;IACJ,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- /**
2
- * This module provides stdio JSON-RPC framing for MCP messages.
3
- * It is depended on by the stdio server implementation to decode incoming requests and encode responses.
4
- */
5
- export declare class McpStdioMessageReader {
6
- private buffer;
7
- private expectedBodyLength;
8
- push<T = unknown>(chunk: Buffer): T[];
9
- }
10
- export declare function encodeMcpStdioMessage(message: unknown): Buffer;
11
- //# sourceMappingURL=protocol.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;CA8CtC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAI9D"}
package/dist/protocol.js DELETED
@@ -1,52 +0,0 @@
1
- /**
2
- * This module provides stdio JSON-RPC framing for MCP messages.
3
- * It is depended on by the stdio server implementation to decode incoming requests and encode responses.
4
- */
5
- const HEADER_DELIMITER = Buffer.from("\r\n\r\n", "utf8");
6
- export class McpStdioMessageReader {
7
- buffer = Buffer.alloc(0);
8
- expectedBodyLength;
9
- push(chunk) {
10
- if (chunk.length === 0) {
11
- return [];
12
- }
13
- this.buffer = Buffer.concat([this.buffer, chunk]);
14
- const messages = [];
15
- while (true) {
16
- if (this.expectedBodyLength === undefined) {
17
- const headerEnd = this.buffer.indexOf(HEADER_DELIMITER);
18
- if (headerEnd < 0) {
19
- break;
20
- }
21
- const rawHeaders = this.buffer.slice(0, headerEnd).toString("utf8");
22
- this.buffer = this.buffer.slice(headerEnd + HEADER_DELIMITER.length);
23
- const headers = rawHeaders.split("\r\n");
24
- const lengthLine = headers.find((line) => line.toLowerCase().startsWith("content-length:"));
25
- if (!lengthLine) {
26
- throw new Error("missing Content-Length header");
27
- }
28
- const length = Number.parseInt(lengthLine.slice("content-length:".length).trim(), 10);
29
- if (!Number.isFinite(length) || length < 0) {
30
- throw new Error("invalid Content-Length header");
31
- }
32
- this.expectedBodyLength = length;
33
- }
34
- const expectedLength = this.expectedBodyLength;
35
- if (expectedLength === undefined || this.buffer.length < expectedLength) {
36
- break;
37
- }
38
- const rawBody = this.buffer.slice(0, expectedLength);
39
- this.buffer = this.buffer.slice(expectedLength);
40
- this.expectedBodyLength = undefined;
41
- const parsed = JSON.parse(rawBody.toString("utf8"));
42
- messages.push(parsed);
43
- }
44
- return messages;
45
- }
46
- }
47
- export function encodeMcpStdioMessage(message) {
48
- const body = Buffer.from(JSON.stringify(message), "utf8");
49
- const header = Buffer.from(`Content-Length: ${body.length}\r\n\r\n`, "utf8");
50
- return Buffer.concat([header, body]);
51
- }
52
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}