@vibebrowser/mcp 0.2.3 → 0.2.5

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/server.js CHANGED
@@ -3,29 +3,41 @@
3
3
  *
4
4
  * MCP server that bridges AI clients with the Vibe browser extension.
5
5
  */
6
+ import { randomUUID } from 'node:crypto';
6
7
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
+ import { createMcpExpressApp } from '@modelcontextprotocol/sdk/server/express.js';
7
9
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
- import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
10
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
11
+ import { CallToolRequestSchema, isInitializeRequest, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
12
  import { ExtensionConnection } from './connection.js';
10
- import { DEFAULT_WS_PORT } from './types.js';
11
- const SERVER_NAME = 'vibe-mcp';
12
- const SERVER_VERSION = '0.1.0';
13
+ import { DEFAULT_HTTP_PATH, DEFAULT_HTTP_PORT, DEFAULT_WS_PORT, } from './types.js';
14
+ import { getPackageVersion } from './version.js';
15
+ const SERVER_NAME = 'vibebrowser-mcp';
16
+ const SERVER_VERSION = getPackageVersion();
13
17
  const STARTUP_TOOLS_REFRESH_TIMEOUT_MS = 4_000;
14
18
  const STARTUP_TOOLS_EVENT_WAIT_TIMEOUT_MS = 1_500;
15
19
  /**
16
20
  * Vibe MCP Server
17
21
  *
18
- * Exposes Vibe browser tools to MCP clients via stdio transport.
22
+ * Exposes Vibe browser tools to MCP clients via stdio or streamable HTTP transport.
19
23
  */
20
24
  export class VibeMcpServer {
21
- server;
22
25
  connection;
23
26
  config;
27
+ sessions = new Map();
28
+ stdioServer = null;
29
+ httpApp = null;
30
+ httpServer = null;
31
+ shutdownStarted = false;
24
32
  constructor(config = {}) {
25
33
  this.config = {
26
34
  port: config.port ?? DEFAULT_WS_PORT,
27
35
  host: config.host ?? '127.0.0.1',
28
36
  debug: config.debug ?? false,
37
+ transport: config.transport ?? 'stdio',
38
+ httpPort: config.httpPort ?? DEFAULT_HTTP_PORT,
39
+ httpPath: normalizeHttpPath(config.httpPath ?? DEFAULT_HTTP_PATH),
40
+ allowedHosts: config.allowedHosts,
29
41
  remoteUuid: config.remoteUuid,
30
42
  remoteRelayUrl: config.remoteRelayUrl,
31
43
  };
@@ -33,7 +45,113 @@ export class VibeMcpServer {
33
45
  ? { uuid: this.config.remoteUuid, relayUrl: this.config.remoteRelayUrl }
34
46
  : undefined;
35
47
  this.connection = new ExtensionConnection(this.config.port, this.config.debug, remoteConfig);
36
- this.server = new Server({
48
+ this.setupConnectionEvents();
49
+ }
50
+ /**
51
+ * Start the MCP server
52
+ */
53
+ async start() {
54
+ await this.connection.start();
55
+ if (this.config.remoteUuid) {
56
+ this.log(`Connected to remote relay for UUID ${this.config.remoteUuid}`);
57
+ }
58
+ else {
59
+ this.log(`Waiting for Vibe extension connection on port ${this.config.port}...`);
60
+ }
61
+ if (this.config.transport === 'http') {
62
+ await this.startHttpServer();
63
+ }
64
+ else {
65
+ await this.startStdioServer();
66
+ }
67
+ this.registerProcessHandlers();
68
+ }
69
+ /**
70
+ * Shutdown the server
71
+ */
72
+ async stop() {
73
+ if (this.httpServer) {
74
+ await new Promise((resolve, reject) => {
75
+ this.httpServer.close((error) => {
76
+ if (error) {
77
+ reject(error);
78
+ return;
79
+ }
80
+ resolve();
81
+ });
82
+ });
83
+ this.httpServer = null;
84
+ this.httpApp = null;
85
+ }
86
+ for (const [sessionId, session] of this.sessions) {
87
+ try {
88
+ await session.transport.close();
89
+ }
90
+ catch {
91
+ // ignore shutdown cleanup errors
92
+ }
93
+ try {
94
+ await session.server.close();
95
+ }
96
+ catch {
97
+ // ignore shutdown cleanup errors
98
+ }
99
+ this.sessions.delete(sessionId);
100
+ }
101
+ if (this.stdioServer) {
102
+ try {
103
+ await this.stdioServer.close();
104
+ }
105
+ catch {
106
+ // ignore shutdown cleanup errors
107
+ }
108
+ this.stdioServer = null;
109
+ }
110
+ await this.connection.stop();
111
+ }
112
+ /**
113
+ * Return the configured MCP endpoint URL in HTTP mode.
114
+ */
115
+ getHttpUrl() {
116
+ if (this.config.transport !== 'http') {
117
+ return null;
118
+ }
119
+ const host = this.config.host.includes(':') && !this.config.host.startsWith('[')
120
+ ? `[${this.config.host}]`
121
+ : this.config.host;
122
+ return `http://${host}:${this.config.httpPort}${this.config.httpPath}`;
123
+ }
124
+ /**
125
+ * Return the configured transport mode.
126
+ */
127
+ getTransportMode() {
128
+ return this.config.transport;
129
+ }
130
+ /**
131
+ * Set up extension connection events
132
+ */
133
+ setupConnectionEvents() {
134
+ this.connection.on('connected', () => {
135
+ this.log('Extension connected');
136
+ });
137
+ this.connection.on('disconnected', () => {
138
+ this.log('Extension disconnected');
139
+ this.notifyToolListChanged();
140
+ });
141
+ this.connection.on('tools_updated', (tools) => {
142
+ this.log(`Received ${tools.length} tools from extension`);
143
+ this.notifyToolListChanged();
144
+ });
145
+ this.connection.on('extension_disconnected', () => {
146
+ this.log('Extension disconnected from relay');
147
+ this.notifyToolListChanged();
148
+ });
149
+ }
150
+ /**
151
+ * Create a configured MCP server instance.
152
+ */
153
+ createProtocolServer() {
154
+ const server = new Server({
37
155
  name: SERVER_NAME,
38
156
  version: SERVER_VERSION,
39
157
  }, {
@@ -43,18 +161,9 @@ export class VibeMcpServer {
43
161
  },
44
162
  },
45
163
  });
46
- this.setupHandlers();
47
- this.setupConnectionEvents();
48
- }
49
- /**
50
- * Set up MCP request handlers
51
- */
52
- setupHandlers() {
53
- // List available tools
54
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
164
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
55
165
  if (this.connection.getTools().length === 0 && this.connection.isExtensionConnected()) {
56
166
  try {
57
- // Keep startup tool discovery under client startup budgets (e.g. Codex 10s).
58
167
  await this.connection.refreshTools(STARTUP_TOOLS_REFRESH_TIMEOUT_MS);
59
168
  }
60
169
  catch (error) {
@@ -65,17 +174,15 @@ export class VibeMcpServer {
65
174
  if (this.connection.getTools().length === 0 && this.connection.isExtensionConnected()) {
66
175
  await this.connection.waitForToolsUpdate(STARTUP_TOOLS_EVENT_WAIT_TIMEOUT_MS);
67
176
  }
68
- const tools = this.connection.getTools();
69
177
  return {
70
- tools: tools.map((tool) => ({
178
+ tools: this.connection.getTools().map((tool) => ({
71
179
  name: tool.name,
72
180
  description: tool.description,
73
181
  inputSchema: tool.inputSchema,
74
182
  })),
75
183
  };
76
184
  });
77
- // Call a tool
78
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
185
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
79
186
  const { name, arguments: args } = request.params;
80
187
  try {
81
188
  const result = await this.connection.callTool(name, args ?? {});
@@ -92,59 +199,175 @@ export class VibeMcpServer {
92
199
  };
93
200
  }
94
201
  });
202
+ return server;
95
203
  }
96
204
  /**
97
- * Set up extension connection events
205
+ * Start stdio MCP transport.
98
206
  */
99
- setupConnectionEvents() {
100
- this.connection.on('connected', () => {
101
- this.log('Extension connected');
207
+ async startStdioServer() {
208
+ const server = this.createProtocolServer();
209
+ const transport = new StdioServerTransport();
210
+ await server.connect(transport);
211
+ this.stdioServer = server;
212
+ this.log('MCP server started on stdio');
213
+ }
214
+ /**
215
+ * Start streamable HTTP MCP transport.
216
+ */
217
+ async startHttpServer() {
218
+ this.httpApp = createMcpExpressApp({
219
+ host: this.config.host,
220
+ allowedHosts: this.config.allowedHosts,
102
221
  });
103
- this.connection.on('disconnected', () => {
104
- this.log('Extension disconnected');
105
- this.notifyToolListChanged();
222
+ const healthHandler = (_req, res) => {
223
+ res.statusCode = 200;
224
+ res.setHeader('content-type', 'application/json');
225
+ res.end(JSON.stringify({
226
+ name: SERVER_NAME,
227
+ version: SERVER_VERSION,
228
+ transport: 'http',
229
+ mcpPath: this.config.httpPath,
230
+ extensionConnected: this.connection.isExtensionConnected(),
231
+ cachedTools: this.connection.getTools().length,
232
+ }));
233
+ };
234
+ this.httpApp.get('/health', healthHandler);
235
+ this.httpApp.get('/', healthHandler);
236
+ this.httpApp.post(this.config.httpPath, async (req, res) => {
237
+ await this.handleHttpRequest(req, res, req.body);
106
238
  });
107
- this.connection.on('tools_updated', (tools) => {
108
- this.log(`Received ${tools.length} tools from extension`);
109
- this.notifyToolListChanged();
239
+ this.httpApp.get(this.config.httpPath, async (req, res) => {
240
+ await this.handleHttpRequest(req, res);
110
241
  });
111
- this.connection.on('extension_disconnected', () => {
112
- this.log('Extension disconnected from relay');
113
- this.notifyToolListChanged();
242
+ this.httpApp.delete(this.config.httpPath, async (req, res) => {
243
+ await this.handleHttpRequest(req, res);
114
244
  });
245
+ this.httpServer = await new Promise((resolve, reject) => {
246
+ const server = this.httpApp.listen(this.config.httpPort, this.config.host, () => resolve(server));
247
+ server.once('error', reject);
248
+ });
249
+ this.log(`MCP server started on ${this.getHttpUrl()}`);
115
250
  }
116
251
  /**
117
- * Start the MCP server
252
+ * Handle a streamable HTTP request.
118
253
  */
119
- async start() {
120
- // Start connection to extension (local relay or remote)
121
- await this.connection.start();
122
- if (this.config.remoteUuid) {
123
- this.log(`Connected to remote relay for UUID ${this.config.remoteUuid}`);
254
+ async handleHttpRequest(req, res, parsedBody) {
255
+ try {
256
+ const transport = await this.resolveHttpTransport(req, res, parsedBody);
257
+ if (!transport) {
258
+ return;
259
+ }
260
+ await transport.handleRequest(req, res, parsedBody);
124
261
  }
125
- else {
126
- this.log(`Waiting for Vibe extension connection on port ${this.config.port}...`);
262
+ catch (error) {
263
+ const message = error instanceof Error ? error.message : String(error);
264
+ this.log(`Error handling HTTP MCP request: ${message}`);
265
+ if (!res.headersSent) {
266
+ res.statusCode = 500;
267
+ res.setHeader('content-type', 'application/json');
268
+ res.end(JSON.stringify({
269
+ jsonrpc: '2.0',
270
+ error: {
271
+ code: -32603,
272
+ message: 'Internal server error',
273
+ },
274
+ id: null,
275
+ }));
276
+ }
127
277
  }
128
- // Connect MCP server to stdio transport
129
- const transport = new StdioServerTransport();
130
- await this.server.connect(transport);
131
- this.log('MCP server started on stdio');
132
- // Handle process termination
133
- process.on('SIGINT', () => this.shutdown());
134
- process.on('SIGTERM', () => this.shutdown());
135
- process.stdin.on('close', () => this.shutdown());
136
278
  }
137
279
  /**
138
- * Shutdown the server
280
+ * Resolve or create the HTTP session transport for a request.
281
+ */
282
+ async resolveHttpTransport(req, res, parsedBody) {
283
+ const sessionId = getSessionId(req);
284
+ if (sessionId) {
285
+ const existing = this.sessions.get(sessionId);
286
+ if (!existing) {
287
+ writeJsonRpcError(res, 404, 'Session not found');
288
+ return null;
289
+ }
290
+ return existing.transport;
291
+ }
292
+ if (req.method === 'POST' && parsedBody && isInitializeRequest(parsedBody)) {
293
+ const session = await this.createHttpSession();
294
+ return session.transport;
295
+ }
296
+ writeJsonRpcError(res, 400, 'Bad Request: No valid session ID provided');
297
+ return null;
298
+ }
299
+ /**
300
+ * Create a new streamable HTTP session.
301
+ */
302
+ async createHttpSession() {
303
+ const server = this.createProtocolServer();
304
+ const transport = new StreamableHTTPServerTransport({
305
+ sessionIdGenerator: () => randomUUID(),
306
+ onsessioninitialized: (sessionId) => {
307
+ this.sessions.set(sessionId, { server, transport });
308
+ this.log(`HTTP session initialized: ${sessionId}`);
309
+ },
310
+ });
311
+ transport.onclose = () => {
312
+ const sessionId = transport.sessionId;
313
+ if (sessionId) {
314
+ this.sessions.delete(sessionId);
315
+ this.log(`HTTP session closed: ${sessionId}`);
316
+ }
317
+ // Do not call server.close() here: server.close() closes the transport,
318
+ // which re-enters transport.onclose() and can recurse until stack overflow.
319
+ };
320
+ transport.onerror = (error) => {
321
+ const sessionId = transport.sessionId ?? 'unknown';
322
+ this.log(`HTTP transport error (${sessionId}): ${error.message}`);
323
+ };
324
+ await server.connect(transport);
325
+ return { server, transport };
326
+ }
327
+ /**
328
+ * Notify all connected transports that the tool list changed.
329
+ */
330
+ notifyToolListChanged() {
331
+ if (this.stdioServer) {
332
+ this.sendToolListChanged(this.stdioServer);
333
+ }
334
+ for (const { server } of this.sessions.values()) {
335
+ this.sendToolListChanged(server);
336
+ }
337
+ }
338
+ sendToolListChanged(server) {
339
+ if (!server.transport) {
340
+ return;
341
+ }
342
+ server.sendToolListChanged().catch((error) => {
343
+ const message = error instanceof Error ? error.message : String(error);
344
+ this.log(`Failed to send tools/list_changed: ${message}`);
345
+ });
346
+ }
347
+ /**
348
+ * Handle process termination.
139
349
  */
350
+ registerProcessHandlers() {
351
+ const onSignal = () => {
352
+ void this.shutdown();
353
+ };
354
+ process.on('SIGINT', onSignal);
355
+ process.on('SIGTERM', onSignal);
356
+ if (this.config.transport === 'stdio') {
357
+ process.stdin.on('close', onSignal);
358
+ }
359
+ }
140
360
  async shutdown() {
361
+ if (this.shutdownStarted) {
362
+ return;
363
+ }
364
+ this.shutdownStarted = true;
141
365
  this.log('Shutting down...');
142
366
  try {
143
- await this.connection.stop();
144
- await this.server.close();
367
+ await this.stop();
145
368
  }
146
- catch (error) {
147
- // Ignore errors during shutdown
369
+ catch {
370
+ // ignore shutdown errors
148
371
  }
149
372
  process.exit(0);
150
373
  }
@@ -156,15 +379,6 @@ export class VibeMcpServer {
156
379
  console.error(`[${SERVER_NAME}] ${message}`);
157
380
  }
158
381
  }
159
- notifyToolListChanged() {
160
- if (!this.server.transport) {
161
- return;
162
- }
163
- this.server.sendToolListChanged().catch((error) => {
164
- const message = error instanceof Error ? error.message : String(error);
165
- this.log(`Failed to send tools/list_changed: ${message}`);
166
- });
167
- }
168
382
  }
169
383
  /**
170
384
  * Create and start the MCP server
@@ -174,4 +388,29 @@ export async function createServer(config) {
174
388
  await server.start();
175
389
  return server;
176
390
  }
391
+ function normalizeHttpPath(path) {
392
+ if (!path || path === '/') {
393
+ return DEFAULT_HTTP_PATH;
394
+ }
395
+ return path.startsWith('/') ? path : `/${path}`;
396
+ }
397
+ function getSessionId(req) {
398
+ const value = req.headers['mcp-session-id'];
399
+ if (Array.isArray(value)) {
400
+ return value[0] ?? null;
401
+ }
402
+ return typeof value === 'string' && value.length > 0 ? value : null;
403
+ }
404
+ function writeJsonRpcError(res, statusCode, message) {
405
+ res.statusCode = statusCode;
406
+ res.setHeader('content-type', 'application/json');
407
+ res.end(JSON.stringify({
408
+ jsonrpc: '2.0',
409
+ error: {
410
+ code: -32000,
411
+ message,
412
+ },
413
+ id: null,
414
+ }));
415
+ }
177
416
  //# sourceMappingURL=server.js.map
@@ -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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"}
package/dist/types.d.ts CHANGED
@@ -11,6 +11,18 @@ export declare const MCP_PROTOCOL_VERSION = "2024-11-05";
11
11
  * Default WebSocket port for local relay (agent) connection
12
12
  */
13
13
  export declare const DEFAULT_WS_PORT = 19888;
14
+ /**
15
+ * Default HTTP port for streamable HTTP MCP transport
16
+ */
17
+ export declare const DEFAULT_HTTP_PORT = 8788;
18
+ /**
19
+ * Default HTTP path for streamable HTTP MCP transport
20
+ */
21
+ export declare const DEFAULT_HTTP_PATH = "/mcp";
22
+ /**
23
+ * MCP server transport mode
24
+ */
25
+ export type ServerTransportMode = 'stdio' | 'http';
14
26
  /**
15
27
  * Connection status
16
28
  */
@@ -94,6 +106,10 @@ export interface ServerConfig {
94
106
  port: number;
95
107
  host: string;
96
108
  debug: boolean;
109
+ transport: ServerTransportMode;
110
+ httpPort: number;
111
+ httpPath: string;
112
+ allowedHosts?: string[];
97
113
  /** Remote relay UUID — when set, connects to public relay instead of local */
98
114
  remoteUuid?: string;
99
115
  /** Remote relay URL — defaults to wss://relay.api.vibebrowser.app */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,kBAAkB,GAAG,wBAAwB,CAAC;IACzI,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -11,4 +11,12 @@ export const MCP_PROTOCOL_VERSION = '2024-11-05';
11
11
  * Default WebSocket port for local relay (agent) connection
12
12
  */
13
13
  export const DEFAULT_WS_PORT = 19888;
14
+ /**
15
+ * Default HTTP port for streamable HTTP MCP transport
16
+ */
17
+ export const DEFAULT_HTTP_PORT = 8788;
18
+ /**
19
+ * Default HTTP path for streamable HTTP MCP transport
20
+ */
21
+ export const DEFAULT_HTTP_PATH = '/mcp';
14
22
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getPackageVersion(): string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C"}
@@ -0,0 +1,15 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ let cachedVersion = null;
5
+ export function getPackageVersion() {
6
+ if (cachedVersion) {
7
+ return cachedVersion;
8
+ }
9
+ const moduleDir = dirname(fileURLToPath(import.meta.url));
10
+ const packageJsonPath = join(moduleDir, '..', 'package.json');
11
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
12
+ cachedVersion = packageJson.version || '0.0.0';
13
+ return cachedVersion;
14
+ }
15
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC,MAAM,UAAU,iBAAiB;IAC/B,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAyB,CAAC;IAC/F,aAAa,GAAG,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IAC/C,OAAO,aAAa,CAAC;AACvB,CAAC"}