@supernal/interface 1.0.2 → 1.0.3

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.
Files changed (103) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/cjs/src/background/location/LocationContext.js +159 -0
  4. package/dist/cjs/src/background/location/LocationContext.js.map +1 -0
  5. package/dist/cjs/src/background/navigation/NavigationGraph.js +40 -10
  6. package/dist/cjs/src/background/navigation/NavigationGraph.js.map +1 -1
  7. package/dist/cjs/src/background/registry/ToolRegistry.js +56 -0
  8. package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -1
  9. package/dist/cjs/src/decorators/Component.js +30 -19
  10. package/dist/cjs/src/decorators/Component.js.map +1 -1
  11. package/dist/cjs/src/decorators/LocationScope.js +65 -0
  12. package/dist/cjs/src/decorators/LocationScope.js.map +1 -0
  13. package/dist/cjs/src/decorators/Tool.js +14 -1
  14. package/dist/cjs/src/decorators/Tool.js.map +1 -1
  15. package/dist/cjs/src/decorators/index.js +1 -1
  16. package/dist/cjs/src/index.js +9 -2
  17. package/dist/cjs/src/index.js.map +1 -1
  18. package/dist/cjs/src/mcp/index.js +16 -0
  19. package/dist/cjs/src/mcp/index.js.map +1 -0
  20. package/dist/cjs/src/mcp/server.js +281 -0
  21. package/dist/cjs/src/mcp/server.js.map +1 -0
  22. package/dist/cjs/src/mcp/transport.js +131 -0
  23. package/dist/cjs/src/mcp/transport.js.map +1 -0
  24. package/dist/cjs/src/mcp/types.js +23 -0
  25. package/dist/cjs/src/mcp/types.js.map +1 -0
  26. package/dist/cjs/src/mcp-cli.js +55 -0
  27. package/dist/cjs/src/mcp-cli.js.map +1 -0
  28. package/dist/cjs/src/mcp-server.js +17 -0
  29. package/dist/cjs/src/mcp-server.js.map +1 -0
  30. package/dist/cjs/src/react/useNavigationHandler.js +53 -12
  31. package/dist/cjs/src/react/useNavigationHandler.js.map +1 -1
  32. package/dist/cjs/src/state/StateSync.js +130 -0
  33. package/dist/cjs/src/state/StateSync.js.map +1 -0
  34. package/dist/cjs/src/tools/SystemTools.js +1 -1
  35. package/dist/cjs/src/tools/SystemTools.js.map +1 -1
  36. package/dist/cjs/src/ui/react/chat/ChatBubble.js +1 -1
  37. package/dist/cjs/src/ui/react/chat/ChatBubble.js.map +1 -1
  38. package/dist/esm/src/background/location/LocationContext.d.ts +118 -0
  39. package/dist/esm/src/background/location/LocationContext.d.ts.map +1 -0
  40. package/dist/esm/src/background/location/LocationContext.js +155 -0
  41. package/dist/esm/src/background/location/LocationContext.js.map +1 -0
  42. package/dist/esm/src/background/navigation/NavigationGraph.d.ts +8 -0
  43. package/dist/esm/src/background/navigation/NavigationGraph.d.ts.map +1 -1
  44. package/dist/esm/src/background/navigation/NavigationGraph.js +40 -10
  45. package/dist/esm/src/background/navigation/NavigationGraph.js.map +1 -1
  46. package/dist/esm/src/background/registry/ToolRegistry.d.ts +31 -0
  47. package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -1
  48. package/dist/esm/src/background/registry/ToolRegistry.js +56 -0
  49. package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -1
  50. package/dist/esm/src/decorators/Component.d.ts.map +1 -1
  51. package/dist/esm/src/decorators/Component.js +30 -19
  52. package/dist/esm/src/decorators/Component.js.map +1 -1
  53. package/dist/esm/src/decorators/LocationScope.d.ts +49 -0
  54. package/dist/esm/src/decorators/LocationScope.d.ts.map +1 -0
  55. package/dist/esm/src/decorators/LocationScope.js +60 -0
  56. package/dist/esm/src/decorators/LocationScope.js.map +1 -0
  57. package/dist/esm/src/decorators/Tool.d.ts +3 -1
  58. package/dist/esm/src/decorators/Tool.d.ts.map +1 -1
  59. package/dist/esm/src/decorators/Tool.js +14 -1
  60. package/dist/esm/src/decorators/Tool.js.map +1 -1
  61. package/dist/esm/src/decorators/index.d.ts +1 -1
  62. package/dist/esm/src/decorators/index.js +1 -1
  63. package/dist/esm/src/index.d.ts +3 -1
  64. package/dist/esm/src/index.d.ts.map +1 -1
  65. package/dist/esm/src/index.js +3 -1
  66. package/dist/esm/src/index.js.map +1 -1
  67. package/dist/esm/src/mcp/index.d.ts +10 -0
  68. package/dist/esm/src/mcp/index.d.ts.map +1 -0
  69. package/dist/esm/src/mcp/index.js +9 -0
  70. package/dist/esm/src/mcp/index.js.map +1 -0
  71. package/dist/esm/src/mcp/server.d.ts +84 -0
  72. package/dist/esm/src/mcp/server.d.ts.map +1 -0
  73. package/dist/esm/src/mcp/server.js +276 -0
  74. package/dist/esm/src/mcp/server.js.map +1 -0
  75. package/dist/esm/src/mcp/transport.d.ts +53 -0
  76. package/dist/esm/src/mcp/transport.d.ts.map +1 -0
  77. package/dist/esm/src/mcp/transport.js +126 -0
  78. package/dist/esm/src/mcp/transport.js.map +1 -0
  79. package/dist/esm/src/mcp/types.d.ts +175 -0
  80. package/dist/esm/src/mcp/types.d.ts.map +1 -0
  81. package/dist/esm/src/mcp/types.js +20 -0
  82. package/dist/esm/src/mcp/types.js.map +1 -0
  83. package/dist/esm/src/mcp-cli.d.ts +25 -0
  84. package/dist/esm/src/mcp-cli.d.ts.map +1 -0
  85. package/dist/esm/src/mcp-cli.js +53 -0
  86. package/dist/esm/src/mcp-cli.js.map +1 -0
  87. package/dist/esm/src/mcp-server.d.ts +10 -0
  88. package/dist/esm/src/mcp-server.d.ts.map +1 -0
  89. package/dist/esm/src/mcp-server.js +10 -0
  90. package/dist/esm/src/mcp-server.js.map +1 -0
  91. package/dist/esm/src/react/useNavigationHandler.d.ts +29 -11
  92. package/dist/esm/src/react/useNavigationHandler.d.ts.map +1 -1
  93. package/dist/esm/src/react/useNavigationHandler.js +53 -12
  94. package/dist/esm/src/react/useNavigationHandler.js.map +1 -1
  95. package/dist/esm/src/state/StateSync.d.ts +57 -0
  96. package/dist/esm/src/state/StateSync.d.ts.map +1 -0
  97. package/dist/esm/src/state/StateSync.js +123 -0
  98. package/dist/esm/src/state/StateSync.js.map +1 -0
  99. package/dist/esm/src/tools/SystemTools.js +1 -1
  100. package/dist/esm/src/tools/SystemTools.js.map +1 -1
  101. package/dist/esm/src/ui/react/chat/ChatBubble.js +1 -1
  102. package/dist/esm/src/ui/react/chat/ChatBubble.js.map +1 -1
  103. package/package.json +9 -17
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Supernal MCP Server
3
+ *
4
+ * MCP (Model Context Protocol) server that exposes Supernal Interface tools
5
+ * to external AI agents like Claude Desktop, Cursor, and custom MCP clients.
6
+ *
7
+ * Usage:
8
+ * ```typescript
9
+ * import { createSupernalMCPServer } from '@supernal/interface';
10
+ *
11
+ * const server = createSupernalMCPServer({
12
+ * name: 'my-app-tools',
13
+ * version: '1.0.0'
14
+ * });
15
+ *
16
+ * await server.start();
17
+ * ```
18
+ */
19
+ import { ToolRegistry } from '../background/registry/ToolRegistry.js';
20
+ import { ToolExecutor } from '../ai/ToolExecutor.js';
21
+ import { MCPErrorCode } from './types.js';
22
+ /**
23
+ * Default server configuration
24
+ */
25
+ const DEFAULT_CONFIG = {
26
+ name: 'supernal-interface',
27
+ version: '1.0.0',
28
+ description: 'MCP server for Supernal Interface tools',
29
+ capabilities: {
30
+ tools: {},
31
+ resources: {},
32
+ prompts: {}
33
+ }
34
+ };
35
+ /**
36
+ * Supernal MCP Server implementation
37
+ */
38
+ export class SupernalMCPServer {
39
+ constructor(config = {}) {
40
+ this.running = false;
41
+ this.config = { ...DEFAULT_CONFIG, ...config };
42
+ this.executor = new ToolExecutor();
43
+ }
44
+ /**
45
+ * Start the MCP server with given transport
46
+ */
47
+ async start(transport) {
48
+ if (this.running) {
49
+ throw new Error('Server is already running');
50
+ }
51
+ this.transport = transport;
52
+ this.running = true;
53
+ console.error(`[MCP Server] Starting: ${this.config.name} v${this.config.version}`);
54
+ // Message processing loop
55
+ while (this.running) {
56
+ try {
57
+ const request = await this.transport.receive();
58
+ const response = await this.handle(request);
59
+ // Only send response if not null (notifications return null)
60
+ if (response !== null) {
61
+ await this.transport.send(response);
62
+ }
63
+ }
64
+ catch (error) {
65
+ if (!this.running)
66
+ break; // Transport closed
67
+ console.error('[MCP Server] Error processing message:', error);
68
+ // Send error response
69
+ if (this.transport) {
70
+ await this.transport.send({
71
+ jsonrpc: '2.0',
72
+ error: {
73
+ code: MCPErrorCode.INTERNAL_ERROR,
74
+ message: error instanceof Error ? error.message : 'Internal server error',
75
+ data: error
76
+ }
77
+ });
78
+ }
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Stop the MCP server
84
+ */
85
+ async stop() {
86
+ this.running = false;
87
+ if (this.transport) {
88
+ await this.transport.close();
89
+ this.transport = undefined;
90
+ }
91
+ console.error('[MCP Server] Stopped');
92
+ }
93
+ /**
94
+ * Handle incoming MCP request
95
+ */
96
+ async handle(request) {
97
+ const { method, params, id } = request;
98
+ try {
99
+ // Handle notifications (no response needed)
100
+ if (method.startsWith('notifications/')) {
101
+ console.error(`[MCP Server] Received notification: ${method}`);
102
+ return null; // No response for notifications
103
+ }
104
+ switch (method) {
105
+ case 'tools/list':
106
+ return this.handleToolsList(id);
107
+ case 'tools/call':
108
+ return await this.handleToolCall(id, params);
109
+ case 'initialize':
110
+ return this.handleInitialize(id);
111
+ default:
112
+ return this.errorResponse(id, MCPErrorCode.METHOD_NOT_FOUND, `Method not found: ${method}`);
113
+ }
114
+ }
115
+ catch (error) {
116
+ return this.errorResponse(id, MCPErrorCode.INTERNAL_ERROR, error instanceof Error ? error.message : 'Internal error', error);
117
+ }
118
+ }
119
+ /**
120
+ * Handle tools/list request
121
+ *
122
+ * Returns location-filtered tools based on LocationContext.getCurrent()
123
+ * Uses @LocationScope decorators to determine tool availability
124
+ */
125
+ handleToolsList(id) {
126
+ const toolsByContainer = ToolRegistry.getToolsGroupedByContainerForLocation();
127
+ const mcpTools = [];
128
+ for (const [container, containerTools] of Object.entries(toolsByContainer)) {
129
+ for (const tool of containerTools) {
130
+ mcpTools.push(this.convertToMCPTool(container, tool));
131
+ }
132
+ }
133
+ const response = {
134
+ tools: mcpTools
135
+ };
136
+ return {
137
+ jsonrpc: '2.0',
138
+ id,
139
+ result: response
140
+ };
141
+ }
142
+ /**
143
+ * Handle tools/call request
144
+ */
145
+ async handleToolCall(id, params) {
146
+ const { name, arguments: args } = params;
147
+ if (!name) {
148
+ return this.errorResponse(id, MCPErrorCode.INVALID_PARAMS, 'Missing tool name');
149
+ }
150
+ // Parse tool name (format: container.toolName)
151
+ const [container, toolName] = name.split('.');
152
+ if (!container || !toolName) {
153
+ return this.errorResponse(id, MCPErrorCode.INVALID_PARAMS, `Invalid tool name format: ${name}. Expected: container.toolName`);
154
+ }
155
+ // Find tool by containerId and tool name
156
+ // The tool may be registered with its class name, but exposed with containerId
157
+ // Handle undefined containerId (treat as matching the container name used in MCP)
158
+ const tool = Array.from(ToolRegistry.getAllTools().values()).find(t => {
159
+ const toolContainer = t.containerId || 'global'; // undefined becomes 'global'
160
+ return toolContainer === container && t.name === toolName;
161
+ });
162
+ if (!tool) {
163
+ return this.errorResponse(id, MCPErrorCode.TOOL_NOT_FOUND, `Tool not found: ${name}`);
164
+ }
165
+ // Execute tool
166
+ try {
167
+ // Convert args object to array format expected by ToolExecutor
168
+ const argsArray = Object.values(args || {});
169
+ const result = await this.executor.execute(tool, argsArray);
170
+ if (!result.success) {
171
+ return this.errorResponse(id, MCPErrorCode.TOOL_EXECUTION_FAILED, result.message || 'Tool execution failed', { error: result.error, timing: result.timing });
172
+ }
173
+ // Format success response
174
+ const response = {
175
+ content: [
176
+ {
177
+ type: 'text',
178
+ text: JSON.stringify({
179
+ success: true,
180
+ result: result.data,
181
+ timing: result.timing,
182
+ message: result.message
183
+ }, null, 2)
184
+ }
185
+ ]
186
+ };
187
+ return {
188
+ jsonrpc: '2.0',
189
+ id,
190
+ result: response
191
+ };
192
+ }
193
+ catch (error) {
194
+ return this.errorResponse(id, MCPErrorCode.TOOL_EXECUTION_FAILED, error instanceof Error ? error.message : 'Tool execution failed', error);
195
+ }
196
+ }
197
+ /**
198
+ * Handle initialize request
199
+ */
200
+ handleInitialize(id) {
201
+ return {
202
+ jsonrpc: '2.0',
203
+ id,
204
+ result: {
205
+ protocolVersion: '2024-11-05',
206
+ serverInfo: {
207
+ name: this.config.name,
208
+ version: this.config.version
209
+ },
210
+ capabilities: this.config.capabilities
211
+ }
212
+ };
213
+ }
214
+ /**
215
+ * Convert Supernal tool to MCP tool format
216
+ */
217
+ convertToMCPTool(container, tool) {
218
+ // tool.inputSchema is already a full schema object {type, properties, required}
219
+ // Use it directly, or create a default if missing
220
+ const inputSchema = tool.inputSchema || {
221
+ type: 'object',
222
+ properties: {},
223
+ required: []
224
+ };
225
+ return {
226
+ name: `${container}.${tool.name}`,
227
+ description: tool.description || `Tool: ${tool.name}`,
228
+ inputSchema,
229
+ annotations: {
230
+ container,
231
+ category: tool.category,
232
+ elementId: tool.elementId,
233
+ componentName: tool.componentName,
234
+ toolType: tool.toolType,
235
+ aiEnabled: tool.aiEnabled
236
+ }
237
+ };
238
+ }
239
+ /**
240
+ * Create error response
241
+ */
242
+ errorResponse(id, code, message, data) {
243
+ const error = {
244
+ code,
245
+ message,
246
+ data
247
+ };
248
+ return {
249
+ jsonrpc: '2.0',
250
+ id,
251
+ error
252
+ };
253
+ }
254
+ }
255
+ /**
256
+ * Create and configure a Supernal MCP server
257
+ *
258
+ * @param config - Server configuration
259
+ * @returns Configured MCP server instance
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * const server = createSupernalMCPServer({
264
+ * name: 'my-app-tools',
265
+ * version: '1.0.0'
266
+ * });
267
+ *
268
+ * // Start with stdio transport
269
+ * const transport = new StdioTransport();
270
+ * await server.start(transport);
271
+ * ```
272
+ */
273
+ export function createSupernalMCPServer(config) {
274
+ return new SupernalMCPServer(config);
275
+ }
276
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Stdio Transport for MCP
3
+ *
4
+ * Implements MCP transport over stdin/stdout for integration with
5
+ * Claude Desktop, Cursor, and other MCP clients.
6
+ */
7
+ import type { MCPTransport, MCPRequest, MCPResponse } from './types';
8
+ /**
9
+ * Stdio transport implementation
10
+ *
11
+ * Reads JSON-RPC messages from stdin (one per line)
12
+ * Writes JSON-RPC responses to stdout (one per line)
13
+ */
14
+ export declare class StdioTransport implements MCPTransport {
15
+ private readline?;
16
+ private messageQueue;
17
+ private waitingResolvers;
18
+ private closed;
19
+ constructor();
20
+ /**
21
+ * Setup readline interface for stdin
22
+ */
23
+ private setupReadline;
24
+ /**
25
+ * Send message to client (write to stdout)
26
+ */
27
+ send(message: MCPResponse): Promise<void>;
28
+ /**
29
+ * Receive message from client (read from stdin)
30
+ */
31
+ receive(): Promise<MCPRequest>;
32
+ /**
33
+ * Close transport
34
+ */
35
+ close(): Promise<void>;
36
+ }
37
+ /**
38
+ * Create stdio transport
39
+ *
40
+ * @returns Stdio transport instance
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * import { createSupernalMCPServer, createStdioTransport } from '@supernal/interface';
45
+ *
46
+ * const server = createSupernalMCPServer();
47
+ * const transport = createStdioTransport();
48
+ *
49
+ * await server.start(transport);
50
+ * ```
51
+ */
52
+ export declare function createStdioTransport(): StdioTransport;
53
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/mcp/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAErE;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,CAAoB;IACrC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,MAAM,CAAkB;;IAMhC;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAgBpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Stdio Transport for MCP
3
+ *
4
+ * Implements MCP transport over stdin/stdout for integration with
5
+ * Claude Desktop, Cursor, and other MCP clients.
6
+ */
7
+ import { createInterface } from 'readline';
8
+ /**
9
+ * Stdio transport implementation
10
+ *
11
+ * Reads JSON-RPC messages from stdin (one per line)
12
+ * Writes JSON-RPC responses to stdout (one per line)
13
+ */
14
+ export class StdioTransport {
15
+ constructor() {
16
+ this.messageQueue = [];
17
+ this.waitingResolvers = [];
18
+ this.closed = false;
19
+ this.setupReadline();
20
+ }
21
+ /**
22
+ * Setup readline interface for stdin
23
+ */
24
+ setupReadline() {
25
+ this.readline = createInterface({
26
+ input: process.stdin,
27
+ output: process.stdout,
28
+ terminal: false
29
+ });
30
+ this.readline.on('line', (line) => {
31
+ try {
32
+ const message = JSON.parse(line);
33
+ // If someone is waiting for a message, give it to them immediately
34
+ if (this.waitingResolvers.length > 0) {
35
+ const resolve = this.waitingResolvers.shift();
36
+ resolve(message);
37
+ }
38
+ else {
39
+ // Otherwise queue it
40
+ this.messageQueue.push(message);
41
+ }
42
+ }
43
+ catch (error) {
44
+ console.error('[Stdio Transport] Failed to parse message:', error);
45
+ console.error('[Stdio Transport] Line:', line);
46
+ }
47
+ });
48
+ this.readline.on('close', () => {
49
+ this.closed = true;
50
+ // Reject all waiting resolvers
51
+ for (const resolve of this.waitingResolvers) {
52
+ resolve({
53
+ jsonrpc: '2.0',
54
+ method: '__transport_closed__'
55
+ });
56
+ }
57
+ this.waitingResolvers = [];
58
+ });
59
+ }
60
+ /**
61
+ * Send message to client (write to stdout)
62
+ */
63
+ async send(message) {
64
+ if (this.closed) {
65
+ throw new Error('Transport is closed');
66
+ }
67
+ const json = JSON.stringify(message);
68
+ process.stdout.write(json + '\n');
69
+ }
70
+ /**
71
+ * Receive message from client (read from stdin)
72
+ */
73
+ async receive() {
74
+ if (this.closed) {
75
+ throw new Error('Transport is closed');
76
+ }
77
+ // If we have queued messages, return the first one
78
+ if (this.messageQueue.length > 0) {
79
+ return this.messageQueue.shift();
80
+ }
81
+ // Otherwise wait for the next message
82
+ return new Promise((resolve) => {
83
+ this.waitingResolvers.push(resolve);
84
+ });
85
+ }
86
+ /**
87
+ * Close transport
88
+ */
89
+ async close() {
90
+ if (this.closed)
91
+ return;
92
+ this.closed = true;
93
+ if (this.readline) {
94
+ this.readline.close();
95
+ this.readline = undefined;
96
+ }
97
+ // Reject all waiting resolvers
98
+ for (const resolve of this.waitingResolvers) {
99
+ resolve({
100
+ jsonrpc: '2.0',
101
+ method: '__transport_closed__'
102
+ });
103
+ }
104
+ this.waitingResolvers = [];
105
+ this.messageQueue = [];
106
+ }
107
+ }
108
+ /**
109
+ * Create stdio transport
110
+ *
111
+ * @returns Stdio transport instance
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * import { createSupernalMCPServer, createStdioTransport } from '@supernal/interface';
116
+ *
117
+ * const server = createSupernalMCPServer();
118
+ * const transport = createStdioTransport();
119
+ *
120
+ * await server.start(transport);
121
+ * ```
122
+ */
123
+ export function createStdioTransport() {
124
+ return new StdioTransport();
125
+ }
126
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/mcp/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * MCP Protocol Types
3
+ *
4
+ * Type definitions for Model Context Protocol (MCP) integration.
5
+ * Based on @ai-sdk/mcp specification.
6
+ */
7
+ /**
8
+ * MCP tool parameter schema
9
+ */
10
+ export interface MCPToolParameter {
11
+ type: string;
12
+ description?: string;
13
+ required?: boolean;
14
+ properties?: Record<string, MCPToolParameter>;
15
+ items?: MCPToolParameter;
16
+ enum?: string[];
17
+ default?: any;
18
+ }
19
+ /**
20
+ * MCP tool definition
21
+ */
22
+ export interface MCPTool {
23
+ /** Unique tool identifier (container.toolName format) */
24
+ name: string;
25
+ /** Human-readable description */
26
+ description: string;
27
+ /** JSON Schema for tool parameters */
28
+ inputSchema: {
29
+ type: 'object';
30
+ properties: Record<string, MCPToolParameter>;
31
+ required?: string[];
32
+ };
33
+ /** Optional annotations for additional metadata */
34
+ annotations?: {
35
+ container?: string;
36
+ category?: string;
37
+ elementId?: string;
38
+ componentName?: string;
39
+ [key: string]: any;
40
+ };
41
+ }
42
+ /**
43
+ * MCP tools/list response
44
+ */
45
+ export interface MCPToolsListResponse {
46
+ tools: MCPTool[];
47
+ }
48
+ /**
49
+ * MCP tools/call request
50
+ */
51
+ export interface MCPToolCallRequest {
52
+ name: string;
53
+ arguments: Record<string, any>;
54
+ }
55
+ /**
56
+ * MCP content types
57
+ */
58
+ export type MCPContentType = 'text' | 'image' | 'resource';
59
+ /**
60
+ * MCP text content
61
+ */
62
+ export interface MCPTextContent {
63
+ type: 'text';
64
+ text: string;
65
+ }
66
+ /**
67
+ * MCP image content
68
+ */
69
+ export interface MCPImageContent {
70
+ type: 'image';
71
+ data: string;
72
+ mimeType: string;
73
+ }
74
+ /**
75
+ * MCP resource content
76
+ */
77
+ export interface MCPResourceContent {
78
+ type: 'resource';
79
+ resource: {
80
+ uri: string;
81
+ mimeType?: string;
82
+ text?: string;
83
+ };
84
+ }
85
+ /**
86
+ * Union of all MCP content types
87
+ */
88
+ export type MCPContent = MCPTextContent | MCPImageContent | MCPResourceContent;
89
+ /**
90
+ * MCP tools/call response
91
+ */
92
+ export interface MCPToolCallResponse {
93
+ content: MCPContent[];
94
+ isError?: boolean;
95
+ }
96
+ /**
97
+ * MCP server configuration
98
+ */
99
+ export interface MCPServerConfig {
100
+ /** Server name */
101
+ name: string;
102
+ /** Server version */
103
+ version: string;
104
+ /** Optional description */
105
+ description?: string;
106
+ /** Optional capabilities */
107
+ capabilities?: {
108
+ tools?: {};
109
+ resources?: {};
110
+ prompts?: {};
111
+ };
112
+ }
113
+ /**
114
+ * MCP error codes
115
+ */
116
+ export declare enum MCPErrorCode {
117
+ PARSE_ERROR = -32700,
118
+ INVALID_REQUEST = -32600,
119
+ METHOD_NOT_FOUND = -32601,
120
+ INVALID_PARAMS = -32602,
121
+ INTERNAL_ERROR = -32603,
122
+ TOOL_NOT_FOUND = -1,
123
+ TOOL_EXECUTION_FAILED = -2
124
+ }
125
+ /**
126
+ * MCP error
127
+ */
128
+ export interface MCPError {
129
+ code: MCPErrorCode;
130
+ message: string;
131
+ data?: any;
132
+ }
133
+ /**
134
+ * MCP request
135
+ */
136
+ export interface MCPRequest {
137
+ jsonrpc: '2.0';
138
+ id?: string | number;
139
+ method: string;
140
+ params?: any;
141
+ }
142
+ /**
143
+ * MCP response
144
+ */
145
+ export interface MCPResponse {
146
+ jsonrpc: '2.0';
147
+ id?: string | number;
148
+ result?: any;
149
+ error?: MCPError;
150
+ }
151
+ /**
152
+ * MCP transport interface
153
+ */
154
+ export interface MCPTransport {
155
+ /** Send message to client */
156
+ send(message: MCPResponse): Promise<void>;
157
+ /** Receive message from client */
158
+ receive(): Promise<MCPRequest>;
159
+ /** Close transport */
160
+ close(): Promise<void>;
161
+ }
162
+ /**
163
+ * MCP server interface
164
+ */
165
+ export interface MCPServer {
166
+ /** Server configuration */
167
+ config: MCPServerConfig;
168
+ /** Start server (transport provided externally) */
169
+ start(transport: MCPTransport): Promise<void>;
170
+ /** Stop server */
171
+ stop(): Promise<void>;
172
+ /** Handle incoming request */
173
+ handle(request: MCPRequest): Promise<MCPResponse | null>;
174
+ }
175
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/mcp/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * MCP Protocol Types
3
+ *
4
+ * Type definitions for Model Context Protocol (MCP) integration.
5
+ * Based on @ai-sdk/mcp specification.
6
+ */
7
+ /**
8
+ * MCP error codes
9
+ */
10
+ export var MCPErrorCode;
11
+ (function (MCPErrorCode) {
12
+ MCPErrorCode[MCPErrorCode["PARSE_ERROR"] = -32700] = "PARSE_ERROR";
13
+ MCPErrorCode[MCPErrorCode["INVALID_REQUEST"] = -32600] = "INVALID_REQUEST";
14
+ MCPErrorCode[MCPErrorCode["METHOD_NOT_FOUND"] = -32601] = "METHOD_NOT_FOUND";
15
+ MCPErrorCode[MCPErrorCode["INVALID_PARAMS"] = -32602] = "INVALID_PARAMS";
16
+ MCPErrorCode[MCPErrorCode["INTERNAL_ERROR"] = -32603] = "INTERNAL_ERROR";
17
+ MCPErrorCode[MCPErrorCode["TOOL_NOT_FOUND"] = -1] = "TOOL_NOT_FOUND";
18
+ MCPErrorCode[MCPErrorCode["TOOL_EXECUTION_FAILED"] = -2] = "TOOL_EXECUTION_FAILED";
19
+ })(MCPErrorCode || (MCPErrorCode = {}));
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6HH;;GAEG;AACH,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,kEAAoB,CAAA;IACpB,0EAAwB,CAAA;IACxB,4EAAyB,CAAA;IACzB,wEAAuB,CAAA;IACvB,wEAAuB,CAAA;IACvB,oEAAmB,CAAA;IACnB,kFAA0B,CAAA;AAC5B,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB"}