@mcp-b/transports 2.1.0 → 2.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/README.md CHANGED
@@ -14,14 +14,14 @@
14
14
 
15
15
  ## Why Use @mcp-b/transports?
16
16
 
17
- | Feature | Benefit |
18
- |---------|---------|
17
+ | Feature | Benefit |
18
+ | ---------------------------- | ---------------------------------------------------------------------------- |
19
19
  | **Multiple Transport Types** | Choose the right transport for your architecture - Tab, Iframe, or Extension |
20
- | **Secure by Default** | Origin validation, CORS configuration, and Chrome's secure messaging APIs |
21
- | **AI-Agent Ready** | Built specifically for MCP, the standard protocol for AI tool integration |
22
- | **TypeScript First** | Full type safety with comprehensive type definitions |
23
- | **Zero Dependencies** | Only requires `zod` for schema validation |
24
- | **Works Everywhere** | Chrome, Firefox, Edge, and any Chromium-based browser |
20
+ | **Secure by Default** | Origin validation, CORS configuration, and Chrome's secure messaging APIs |
21
+ | **AI-Agent Ready** | Built specifically for MCP, the standard protocol for AI tool integration |
22
+ | **TypeScript First** | Full type safety with comprehensive type definitions |
23
+ | **Zero Dependencies** | Only requires `zod` for schema validation |
24
+ | **Works Everywhere** | Chrome, Firefox, Edge, and any Chromium-based browser |
25
25
 
26
26
  ## Use Cases
27
27
 
@@ -58,35 +58,34 @@ Use `ExtensionExternalClientTransport` and `ExtensionExternalServerTransport` fo
58
58
  Create an MCP server in your web page and expose it via `TabServerTransport`:
59
59
 
60
60
  ```typescript
61
- import { TabServerTransport } from "@mcp-b/transports";
62
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
63
- import { z } from "zod";
61
+ import { TabServerTransport } from '@mcp-b/transports';
62
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
63
+ import { z } from 'zod';
64
64
 
65
65
  // Create MCP server with tools
66
66
  const server = new McpServer(
67
67
  {
68
- name: "TODO-APP",
69
- version: "1.0.0",
68
+ name: 'TODO-APP',
69
+ version: '1.0.0',
70
70
  },
71
71
  {
72
- instructions:
73
- "You are a helpful assistant that can create, update, and delete todos.",
72
+ instructions: 'You are a helpful assistant that can create, update, and delete todos.',
74
73
  }
75
74
  );
76
75
 
77
76
  // Register a tool
78
77
  server.tool(
79
- "createTodo",
80
- "Creates a new todo item for the current user",
78
+ 'createTodo',
79
+ 'Creates a new todo item for the current user',
81
80
  {
82
- todoText: z.string().describe("The content of the todo item."),
81
+ todoText: z.string().describe('The content of the todo item.'),
83
82
  },
84
83
  async (args) => {
85
84
  // Implementation here
86
85
  return {
87
86
  content: [
88
87
  {
89
- type: "text",
88
+ type: 'text',
90
89
  text: `Todo created: "${args.todoText}"`,
91
90
  },
92
91
  ],
@@ -96,7 +95,7 @@ server.tool(
96
95
 
97
96
  // Connect to transport with CORS configuration
98
97
  const transport = new TabServerTransport({
99
- allowedOrigins: ["*"], // Configure based on your security needs
98
+ allowedOrigins: ['*'], // Configure based on your security needs
100
99
  });
101
100
  await server.connect(transport);
102
101
  ```
@@ -106,8 +105,8 @@ await server.connect(transport);
106
105
  Connect to the server from within the same page or from an extension content script:
107
106
 
108
107
  ```typescript
109
- import { TabClientTransport } from "@mcp-b/transports";
110
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
108
+ import { TabClientTransport } from '@mcp-b/transports';
109
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
111
110
 
112
111
  // Create transport with target origin
113
112
  const transport = new TabClientTransport({
@@ -122,16 +121,16 @@ if (availableServers.length > 0) {
122
121
 
123
122
  // Create and connect client
124
123
  const client = new Client({
125
- name: "ExtensionProxyClient",
126
- version: "1.0.0",
124
+ name: 'ExtensionProxyClient',
125
+ version: '1.0.0',
127
126
  });
128
127
 
129
128
  await client.connect(transport);
130
129
 
131
130
  // Use the client
132
131
  const result = await client.callTool({
133
- name: "createTodo",
134
- arguments: { todoText: "Buy groceries" },
132
+ name: 'createTodo',
133
+ arguments: { todoText: 'Buy groceries' },
135
134
  });
136
135
  ```
137
136
 
@@ -156,15 +155,15 @@ Use `IframeParentTransport` and `IframeChildTransport` for cross-origin communic
156
155
  Create an MCP server inside an iframe that can be accessed by the parent page:
157
156
 
158
157
  ```typescript
159
- import { IframeChildTransport } from "@mcp-b/transports";
160
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
161
- import { z } from "zod";
158
+ import { IframeChildTransport } from '@mcp-b/transports';
159
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
160
+ import { z } from 'zod';
162
161
 
163
162
  // Create MCP server
164
163
  const server = new Server(
165
164
  {
166
- name: "IframeApp",
167
- version: "1.0.0",
165
+ name: 'IframeApp',
166
+ version: '1.0.0',
168
167
  },
169
168
  {
170
169
  capabilities: {
@@ -175,16 +174,16 @@ const server = new Server(
175
174
 
176
175
  // Register tools
177
176
  server.tool(
178
- "getIframeData",
179
- "Get data from the iframe application",
177
+ 'getIframeData',
178
+ 'Get data from the iframe application',
180
179
  {
181
- key: z.string().describe("Data key to retrieve"),
180
+ key: z.string().describe('Data key to retrieve'),
182
181
  },
183
182
  async (args) => {
184
183
  return {
185
184
  content: [
186
185
  {
187
- type: "text",
186
+ type: 'text',
188
187
  text: `Retrieved: ${args.key}`,
189
188
  },
190
189
  ],
@@ -194,7 +193,7 @@ server.tool(
194
193
 
195
194
  // Connect to iframe transport
196
195
  const transport = new IframeChildTransport({
197
- allowedOrigins: ["https://parent-app.com"], // Parent page origin
196
+ allowedOrigins: ['https://parent-app.com'], // Parent page origin
198
197
  // or use ['*'] to allow any origin (less secure)
199
198
  });
200
199
 
@@ -206,8 +205,8 @@ await server.connect(transport);
206
205
  Connect from the parent page to the iframe's MCP server:
207
206
 
208
207
  ```typescript
209
- import { IframeParentTransport } from "@mcp-b/transports";
210
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
208
+ import { IframeParentTransport } from '@mcp-b/transports';
209
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
211
210
 
212
211
  // Get reference to iframe element
213
212
  const iframe = document.querySelector('iframe');
@@ -222,8 +221,8 @@ iframe.addEventListener('load', async () => {
222
221
 
223
222
  // Create MCP client
224
223
  const client = new Client({
225
- name: "ParentPage",
226
- version: "1.0.0",
224
+ name: 'ParentPage',
225
+ version: '1.0.0',
227
226
  });
228
227
 
229
228
  // Connect and use
@@ -231,12 +230,12 @@ iframe.addEventListener('load', async () => {
231
230
 
232
231
  // List available tools from iframe
233
232
  const tools = await client.listTools();
234
- console.log("Tools from iframe:", tools.tools);
233
+ console.log('Tools from iframe:', tools.tools);
235
234
 
236
235
  // Call a tool from the iframe
237
236
  const result = await client.callTool({
238
- name: "getIframeData",
239
- arguments: { key: "user-preferences" },
237
+ name: 'getIframeData',
238
+ arguments: { key: 'user-preferences' },
240
239
  });
241
240
  });
242
241
  ```
@@ -259,6 +258,7 @@ iframe.addEventListener('load', async () => {
259
258
  ### Cross-Origin Support
260
259
 
261
260
  Iframe transports are designed for cross-origin communication:
261
+
262
262
  - Parent and iframe can be on different domains
263
263
  - Origin validation is performed on both sides
264
264
  - Uses secure `postMessage` API
@@ -271,16 +271,16 @@ Iframe transports are designed for cross-origin communication:
271
271
  The extension background script acts as a hub, aggregating tools from multiple tabs:
272
272
 
273
273
  ```typescript
274
- import { ExtensionServerTransport } from "@mcp-b/transports";
275
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
274
+ import { ExtensionServerTransport } from '@mcp-b/transports';
275
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
276
276
 
277
277
  class McpHub {
278
278
  private server: McpServer;
279
279
 
280
280
  constructor() {
281
281
  this.server = new McpServer({
282
- name: "Extension-Hub",
283
- version: "1.0.0",
282
+ name: 'Extension-Hub',
283
+ version: '1.0.0',
284
284
  });
285
285
 
286
286
  this.setupConnections();
@@ -288,9 +288,9 @@ class McpHub {
288
288
 
289
289
  private setupConnections() {
290
290
  chrome.runtime.onConnect.addListener((port) => {
291
- if (port.name === "mcp") {
291
+ if (port.name === 'mcp') {
292
292
  this.handleUiConnection(port);
293
- } else if (port.name === "mcp-content-script-proxy") {
293
+ } else if (port.name === 'mcp-content-script-proxy') {
294
294
  this.handleContentScriptConnection(port);
295
295
  }
296
296
  });
@@ -308,8 +308,8 @@ class McpHub {
308
308
  Content scripts act as a bridge between the page's MCP server and the extension:
309
309
 
310
310
  ```typescript
311
- import { TabClientTransport } from "@mcp-b/transports";
312
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
311
+ import { TabClientTransport } from '@mcp-b/transports';
312
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
313
313
 
314
314
  // Connect to the page's MCP server
315
315
  const transport = new TabClientTransport({
@@ -317,13 +317,13 @@ const transport = new TabClientTransport({
317
317
  });
318
318
 
319
319
  const client = new Client({
320
- name: "ExtensionProxyClient",
321
- version: "1.0.0",
320
+ name: 'ExtensionProxyClient',
321
+ version: '1.0.0',
322
322
  });
323
323
 
324
324
  // Connect to extension background
325
325
  const backgroundPort = chrome.runtime.connect({
326
- name: "mcp-content-script-proxy",
326
+ name: 'mcp-content-script-proxy',
327
327
  });
328
328
 
329
329
  // Discover and connect to page server
@@ -332,20 +332,20 @@ const pageTools = await client.listTools();
332
332
 
333
333
  // Register tools with background hub
334
334
  backgroundPort.postMessage({
335
- type: "register-tools",
335
+ type: 'register-tools',
336
336
  tools: pageTools.tools,
337
337
  });
338
338
 
339
339
  // Handle tool execution requests from background
340
340
  backgroundPort.onMessage.addListener(async (message) => {
341
- if (message.type === "execute-tool") {
341
+ if (message.type === 'execute-tool') {
342
342
  const result = await client.callTool({
343
343
  name: message.toolName,
344
344
  arguments: message.args || {},
345
345
  });
346
346
 
347
347
  backgroundPort.postMessage({
348
- type: "tool-result",
348
+ type: 'tool-result',
349
349
  requestId: message.requestId,
350
350
  data: { success: true, payload: result },
351
351
  });
@@ -358,18 +358,18 @@ backgroundPort.onMessage.addListener(async (message) => {
358
358
  Connect from the extension's sidebar or popup to use tools from all connected pages:
359
359
 
360
360
  ```typescript
361
- import { ExtensionClientTransport } from "@mcp-b/transports";
362
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
361
+ import { ExtensionClientTransport } from '@mcp-b/transports';
362
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
363
363
 
364
364
  // Create transport - connects to the extension's background script
365
365
  const transport = new ExtensionClientTransport({
366
- portName: "mcp",
366
+ portName: 'mcp',
367
367
  });
368
368
 
369
369
  // Create MCP client
370
370
  const client = new Client({
371
- name: "Extension Sidepanel",
372
- version: "1.0.0",
371
+ name: 'Extension Sidepanel',
372
+ version: '1.0.0',
373
373
  });
374
374
 
375
375
  // Connect and use
@@ -380,8 +380,8 @@ const tools = await client.listTools();
380
380
 
381
381
  // Call a tool from a specific website
382
382
  const result = await client.callTool({
383
- name: "website_tool_example_com_createTodo",
384
- arguments: { todoText: "Review PR" },
383
+ name: 'website_tool_example_com_createTodo',
384
+ arguments: { todoText: 'Review PR' },
385
385
  });
386
386
  ```
387
387
 
@@ -392,28 +392,28 @@ const result = await client.callTool({
392
392
  Create an MCP server in Extension 1 that can be accessed by other extensions:
393
393
 
394
394
  ```typescript
395
- import { ExtensionExternalServerTransport } from "@mcp-b/transports";
396
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
397
- import { z } from "zod";
395
+ import { ExtensionExternalServerTransport } from '@mcp-b/transports';
396
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
397
+ import { z } from 'zod';
398
398
 
399
399
  // Create MCP server with tools
400
400
  const server = new McpServer(
401
401
  {
402
- name: "MyExtensionAPI",
403
- version: "1.0.0",
402
+ name: 'MyExtensionAPI',
403
+ version: '1.0.0',
404
404
  },
405
405
  {
406
- instructions: "Extension API for cross-extension communication",
406
+ instructions: 'Extension API for cross-extension communication',
407
407
  }
408
408
  );
409
409
 
410
410
  // Register tools
411
- server.tool("getBookmarks", "Retrieves user bookmarks", {}, async () => {
411
+ server.tool('getBookmarks', 'Retrieves user bookmarks', {}, async () => {
412
412
  const bookmarks = await chrome.bookmarks.getTree();
413
413
  return {
414
414
  content: [
415
415
  {
416
- type: "text",
416
+ type: 'text',
417
417
  text: JSON.stringify(bookmarks, null, 2),
418
418
  },
419
419
  ],
@@ -422,9 +422,9 @@ server.tool("getBookmarks", "Retrieves user bookmarks", {}, async () => {
422
422
 
423
423
  // Set up external connection listener in background script
424
424
  chrome.runtime.onConnectExternal.addListener(async (port) => {
425
- if (port.name === "mcp") {
425
+ if (port.name === 'mcp') {
426
426
  // Optional: Add connection validation here
427
- if (port.sender?.id !== "allowed-extension-id") {
427
+ if (port.sender?.id !== 'allowed-extension-id') {
428
428
  port.disconnect();
429
429
  return;
430
430
  }
@@ -440,19 +440,19 @@ chrome.runtime.onConnectExternal.addListener(async (port) => {
440
440
  Connect from Extension 2 to use Extension 1's MCP server:
441
441
 
442
442
  ```typescript
443
- import { ExtensionExternalClientTransport } from "@mcp-b/transports";
444
- import { Client } from "@modelcontextprotocol/sdk/client/index.js";
443
+ import { ExtensionExternalClientTransport } from '@mcp-b/transports';
444
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
445
445
 
446
446
  // Create transport targeting Extension 1
447
447
  const transport = new ExtensionClientTransport({
448
- extensionId: "server-extension-id",
449
- portName: "mcp",
448
+ extensionId: 'server-extension-id',
449
+ portName: 'mcp',
450
450
  });
451
451
 
452
452
  // Create MCP client
453
453
  const client = new Client({
454
- name: "ClientExtension",
455
- version: "1.0.0",
454
+ name: 'ClientExtension',
455
+ version: '1.0.0',
456
456
  });
457
457
 
458
458
  // Connect and use
@@ -460,11 +460,11 @@ await client.connect(transport);
460
460
 
461
461
  // List available tools from Extension 1
462
462
  const tools = await client.listTools();
463
- console.log("Available tools:", tools.tools);
463
+ console.log('Available tools:', tools.tools);
464
464
 
465
465
  // Call a tool from Extension 1
466
466
  const result = await client.callTool({
467
- name: "getBookmarks",
467
+ name: 'getBookmarks',
468
468
  arguments: {},
469
469
  });
470
470
  ```
@@ -524,12 +524,12 @@ MCP is an open protocol that standardizes how AI applications connect to externa
524
524
 
525
525
  ### Which transport should I use?
526
526
 
527
- | Scenario | Recommended Transport |
528
- |----------|----------------------|
529
- | Same-page communication | `TabServerTransport` / `TabClientTransport` |
530
- | Parent page to iframe | `IframeParentTransport` / `IframeChildTransport` |
531
- | Browser extension to webpage | `ExtensionClientTransport` / `ExtensionServerTransport` |
532
- | Extension to extension | `ExtensionExternalClientTransport` / `ExtensionExternalServerTransport` |
527
+ | Scenario | Recommended Transport |
528
+ | ---------------------------- | ----------------------------------------------------------------------- |
529
+ | Same-page communication | `TabServerTransport` / `TabClientTransport` |
530
+ | Parent page to iframe | `IframeParentTransport` / `IframeChildTransport` |
531
+ | Browser extension to webpage | `ExtensionClientTransport` / `ExtensionServerTransport` |
532
+ | Extension to extension | `ExtensionExternalClientTransport` / `ExtensionExternalServerTransport` |
533
533
 
534
534
  ### Is this compatible with Claude Desktop, Cursor, or VS Code Copilot?
535
535
 
@@ -545,13 +545,13 @@ Yes! `TabServerTransport` and `TabClientTransport` work entirely within a web pa
545
545
 
546
546
  ## Comparison with Alternatives
547
547
 
548
- | Feature | @mcp-b/transports | Raw postMessage | WebSocket |
549
- |---------|------------------|-----------------|-----------|
550
- | MCP Protocol Support | Yes | No | Manual |
551
- | Type Safety | Full TypeScript | Manual | Manual |
552
- | Origin Validation | Built-in | Manual | N/A |
553
- | Extension Support | Native | Limited | Complex |
554
- | Server Discovery | Automatic | Manual | Manual |
548
+ | Feature | @mcp-b/transports | Raw postMessage | WebSocket |
549
+ | -------------------- | ----------------- | --------------- | --------- |
550
+ | MCP Protocol Support | Yes | No | Manual |
551
+ | Type Safety | Full TypeScript | Manual | Manual |
552
+ | Origin Validation | Built-in | Manual | N/A |
553
+ | Extension Support | Native | Limited | Complex |
554
+ | Server Discovery | Automatic | Manual | Manual |
555
555
 
556
556
  ## Related Packages
557
557
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { JSONRPCMessage, Transport, TransportSendOptions } from "@mcp-b/webmcp-ts-sdk";
2
2
 
3
3
  //#region src/browser-types.d.ts
4
-
5
4
  /**
6
5
  * Unique identifier for an event in the event store
7
6
  */
@@ -146,7 +145,7 @@ declare enum NativeMessageType {
146
145
  ERROR_FROM_NATIVE_HOST = "error_from_native_host",
147
146
  CONNECT_NATIVE = "connectNative",
148
147
  PING_NATIVE = "ping_native",
149
- DISCONNECT_NATIVE = "disconnect_native",
148
+ DISCONNECT_NATIVE = "disconnect_native"
150
149
  }
151
150
  /**
152
151
  * Chrome Extension Constants
@@ -735,15 +734,14 @@ declare class TabServerTransport implements Transport {
735
734
  private _allowedOrigins;
736
735
  private _channelId;
737
736
  private _messageHandler?;
738
- private _clientOrigin?;
739
737
  private _beforeUnloadHandler?;
740
738
  private _cleanupInterval?;
741
739
  private _pendingRequests;
740
+ private readonly SELF_TARGET_ORIGIN;
742
741
  private readonly REQUEST_TIMEOUT_MS;
743
742
  onclose?: () => void;
744
743
  onerror?: (error: Error) => void;
745
744
  onmessage?: (message: JSONRPCMessage) => void;
746
- private _resolveTargetOrigin;
747
745
  constructor(options: TabServerTransportOptions);
748
746
  start(): Promise<void>;
749
747
  send(message: JSONRPCMessage): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/browser-types.ts","../src/ExtensionClientTransport.ts","../src/ExtensionServerTransport.ts","../src/IframeChildTransport.ts","../src/IframeParentTransport.ts","../src/TabClientTransport.ts","../src/TabServerTransport.ts","../src/UserScriptClientTransport.ts","../src/UserScriptServerTransport.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/browser-types.ts","../src/ExtensionClientTransport.ts","../src/ExtensionServerTransport.ts","../src/IframeChildTransport.ts","../src/IframeParentTransport.ts","../src/TabClientTransport.ts","../src/TabServerTransport.ts","../src/UserScriptClientTransport.ts","../src/UserScriptServerTransport.ts"],"mappings":"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"}