@opensumi/ide-ai-native 3.8.1-next-1741262660.0 → 3.8.1-next-1741331921.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.
Files changed (59) hide show
  1. package/lib/browser/components/ChatInput.js +1 -1
  2. package/lib/browser/components/ChatInput.js.map +1 -1
  3. package/lib/browser/mcp/config/components/mcp-config.module.less +13 -0
  4. package/lib/browser/mcp/config/components/mcp-config.view.d.ts.map +1 -1
  5. package/lib/browser/mcp/config/components/mcp-config.view.js +46 -21
  6. package/lib/browser/mcp/config/components/mcp-config.view.js.map +1 -1
  7. package/lib/browser/mcp/config/components/mcp-server-form.d.ts +8 -4
  8. package/lib/browser/mcp/config/components/mcp-server-form.d.ts.map +1 -1
  9. package/lib/browser/mcp/config/components/mcp-server-form.js +113 -38
  10. package/lib/browser/mcp/config/components/mcp-server-form.js.map +1 -1
  11. package/lib/browser/mcp/config/components/mcp-server-form.module.less +24 -1
  12. package/lib/browser/mcp/mcp-server-proxy.service.d.ts +1 -1
  13. package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +1 -1
  14. package/lib/browser/mcp/mcp-server-proxy.service.js +1 -1
  15. package/lib/browser/mcp/mcp-server-proxy.service.js.map +1 -1
  16. package/lib/browser/types.d.ts.map +1 -1
  17. package/lib/browser/types.js.map +1 -1
  18. package/lib/common/index.d.ts +2 -0
  19. package/lib/common/index.d.ts.map +1 -1
  20. package/lib/common/index.js.map +1 -1
  21. package/lib/common/mcp-server-manager.d.ts +21 -3
  22. package/lib/common/mcp-server-manager.d.ts.map +1 -1
  23. package/lib/common/mcp-server-manager.js.map +1 -1
  24. package/lib/common/types.d.ts +14 -1
  25. package/lib/common/types.d.ts.map +1 -1
  26. package/lib/common/types.js +7 -1
  27. package/lib/common/types.js.map +1 -1
  28. package/lib/node/mcp/sumi-mcp-server.d.ts +14 -3
  29. package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -1
  30. package/lib/node/mcp/sumi-mcp-server.js +30 -12
  31. package/lib/node/mcp/sumi-mcp-server.js.map +1 -1
  32. package/lib/node/mcp-server-manager-impl.d.ts.map +1 -1
  33. package/lib/node/mcp-server-manager-impl.js +22 -8
  34. package/lib/node/mcp-server-manager-impl.js.map +1 -1
  35. package/lib/node/mcp-server.sse.d.ts +192 -0
  36. package/lib/node/mcp-server.sse.d.ts.map +1 -0
  37. package/lib/node/mcp-server.sse.js +93 -0
  38. package/lib/node/mcp-server.sse.js.map +1 -0
  39. package/lib/node/{mcp-server.d.ts → mcp-server.stdio.d.ts} +2 -2
  40. package/lib/node/mcp-server.stdio.d.ts.map +1 -0
  41. package/lib/node/{mcp-server.js → mcp-server.stdio.js} +8 -6
  42. package/lib/node/mcp-server.stdio.js.map +1 -0
  43. package/package.json +24 -23
  44. package/src/browser/components/ChatInput.tsx +1 -1
  45. package/src/browser/mcp/config/components/mcp-config.module.less +13 -0
  46. package/src/browser/mcp/config/components/mcp-config.view.tsx +128 -91
  47. package/src/browser/mcp/config/components/mcp-server-form.module.less +24 -1
  48. package/src/browser/mcp/config/components/mcp-server-form.tsx +188 -70
  49. package/src/browser/mcp/mcp-server-proxy.service.ts +1 -1
  50. package/src/browser/types.ts +0 -1
  51. package/src/common/index.ts +2 -0
  52. package/src/common/mcp-server-manager.ts +22 -3
  53. package/src/common/types.ts +16 -1
  54. package/src/node/mcp/sumi-mcp-server.ts +31 -14
  55. package/src/node/mcp-server-manager-impl.ts +20 -9
  56. package/src/node/mcp-server.sse.ts +103 -0
  57. package/src/node/{mcp-server.ts → mcp-server.stdio.ts} +4 -3
  58. package/lib/node/mcp-server.d.ts.map +0 -1
  59. package/lib/node/mcp-server.js.map +0 -1
@@ -137,6 +137,8 @@ export interface ISumiMCPServerBackend {
137
137
  getServers(): Promise<Array<{ name: string; isStarted: boolean }>>;
138
138
  startServer(serverName: string): Promise<void>;
139
139
  stopServer(serverName: string): Promise<void>;
140
+ addOrUpdateServer(description: MCPServerDescription): void;
141
+ removeServer(name: string): void;
140
142
  }
141
143
 
142
144
  export const SumiMCPServerProxyServicePath = 'SumiMCPServerProxyServicePath';
@@ -1,5 +1,7 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
 
3
+ import { MCP_SERVER_TYPE } from './types';
4
+
3
5
  export interface IMCPServer {
4
6
  isStarted(): boolean;
5
7
  start(): Promise<void>;
@@ -36,7 +38,18 @@ export type MCPTool = Awaited<ReturnType<MCPServerManager['getTools']>>['tools']
36
38
 
37
39
  export type MCPToolParameter = Awaited<ReturnType<MCPServerManager['getTools']>>['tools'][number]['inputSchema'];
38
40
 
39
- export interface MCPServerDescription {
41
+ export interface BaseMCPServerDescription {
42
+ /**
43
+ * The unique name of the MCP server.
44
+ */
45
+ name: string;
46
+ /**
47
+ * Whether to enable the MCP server.
48
+ */
49
+ enabled?: boolean;
50
+ }
51
+
52
+ export interface StdioMCPServerDescription extends BaseMCPServerDescription {
40
53
  /**
41
54
  * The unique name of the MCP server.
42
55
  */
@@ -56,12 +69,18 @@ export interface MCPServerDescription {
56
69
  * Optional environment variables to set when starting the server.
57
70
  */
58
71
  env?: { [key: string]: string };
72
+ }
59
73
 
74
+ export interface SSEMCPServerDescription extends BaseMCPServerDescription {
60
75
  /**
61
- * Whether to enable the MCP server.
76
+ * The host of the MCP server.
62
77
  */
63
- enabled?: boolean;
78
+ serverHost: string;
64
79
  }
65
80
 
81
+ export type MCPServerDescription =
82
+ | ({ type: MCP_SERVER_TYPE.STDIO } & StdioMCPServerDescription)
83
+ | ({ type: MCP_SERVER_TYPE.SSE } & SSEMCPServerDescription);
84
+
66
85
  export const MCPServerManager = Symbol('MCPServerManager');
67
86
  export const MCPServerManagerPath = 'ServicesMCPServerManager';
@@ -31,7 +31,7 @@ export interface IMCPServerProxyService {
31
31
  isError?: boolean;
32
32
  }>;
33
33
  // 获取 browser 层注册的 MCP 工具列表 (Browser tab 维度)
34
- $getMCPTools(): Promise<MCPTool[]>;
34
+ $getBuiltinMCPTools(): Promise<MCPTool[]>;
35
35
  // 通知前端 MCP 服务注册表发生了变化
36
36
  $updateMCPServers(): Promise<void>;
37
37
  // 获取所有 MCP 服务器列表
@@ -42,6 +42,15 @@ export interface IMCPServerProxyService {
42
42
  $stopServer(serverName: string): Promise<void>;
43
43
  }
44
44
 
45
+ export interface MCPServer {
46
+ name: string;
47
+ isStarted: boolean;
48
+ tools?: string[];
49
+ command?: string;
50
+ type?: string;
51
+ serverHost?: string;
52
+ }
53
+
45
54
  export interface MCPTool {
46
55
  name: string;
47
56
  description: string;
@@ -49,6 +58,12 @@ export interface MCPTool {
49
58
  providerName: string;
50
59
  }
51
60
 
61
+ export enum MCP_SERVER_TYPE {
62
+ STDIO = 'stdio',
63
+ SSE = 'sse',
64
+ BUILTIN = 'builtin',
65
+ }
66
+
52
67
  export interface CodeBlockData {
53
68
  messageId: string;
54
69
  toolCallId: string;
@@ -10,12 +10,14 @@ import { RPCService } from '@opensumi/ide-connection';
10
10
  import { ILogger } from '@opensumi/ide-core-common';
11
11
  import { INodeLogger } from '@opensumi/ide-core-node';
12
12
 
13
+ import pkg from '../../../package.json';
13
14
  import { BUILTIN_MCP_SERVER_NAME, ISumiMCPServerBackend } from '../../common';
14
15
  import { IMCPServer, MCPServerDescription } from '../../common/mcp-server-manager';
15
16
  import { IToolInvocationRegistryManager, ToolInvocationRegistryManager } from '../../common/tool-invocation-registry';
16
- import { IMCPServerProxyService, MCPTool } from '../../common/types';
17
- import { StdioMCPServerImpl } from '../mcp-server';
17
+ import { IMCPServerProxyService, MCPTool, MCP_SERVER_TYPE } from '../../common/types';
18
18
  import { MCPServerManagerImpl } from '../mcp-server-manager-impl';
19
+ import { SSEMCPServer } from '../mcp-server.sse';
20
+ import { StdioMCPServer } from '../mcp-server.stdio';
19
21
 
20
22
  // 每个 BrowserTab 都对应了一个 SumiMCPServerBackend 实例
21
23
  // SumiMCPServerBackend 需要做的事情:
@@ -49,12 +51,12 @@ export class SumiMCPServerBackend extends RPCService<IMCPServerProxyService> imp
49
51
  this.mcpServerManager.setClientId(clientId);
50
52
  }
51
53
 
52
- async getMCPTools() {
54
+ async $getMCPTools() {
53
55
  if (!this.client) {
54
56
  throw new Error('SUMI MCP RPC Client not initialized');
55
57
  }
56
- // 获取 MCP 工具
57
- const tools = await this.client.$getMCPTools();
58
+ // 获取 MCP 工具,这里的 client 为 MCPServerProxyService
59
+ const tools = await this.client.$getBuiltinMCPTools();
58
60
  return tools;
59
61
  }
60
62
 
@@ -98,7 +100,7 @@ export class SumiMCPServerBackend extends RPCService<IMCPServerProxyService> imp
98
100
  this.server = new Server(
99
101
  {
100
102
  name: 'sumi-ide-mcp-server',
101
- version: '0.2.0',
103
+ version: pkg.version,
102
104
  },
103
105
  {
104
106
  capabilities: {
@@ -108,8 +110,8 @@ export class SumiMCPServerBackend extends RPCService<IMCPServerProxyService> imp
108
110
  );
109
111
 
110
112
  // 设置工具列表请求处理器
111
- this.server.setRequestHandler(ListToolsRequestSchema, async () => {
112
- const tools = await this.getMCPTools();
113
+ this.server.setRequestHandler(ListToolsRequestSchema, async (event) => {
114
+ const tools = await this.$getMCPTools();
113
115
  return { tools };
114
116
  });
115
117
 
@@ -138,6 +140,7 @@ export class SumiMCPServerBackend extends RPCService<IMCPServerProxyService> imp
138
140
  if (server.isStarted()) {
139
141
  // 只获取正在运行的 MCP Server 的工具列表
140
142
  const toolsResponse = await server.getTools();
143
+ this.logger.log(`Server ${serverName} tools:`, toolsResponse.tools);
141
144
  toolNames = toolsResponse.tools.map((tool) => tool.name);
142
145
  }
143
146
 
@@ -146,24 +149,30 @@ export class SumiMCPServerBackend extends RPCService<IMCPServerProxyService> imp
146
149
  return {
147
150
  name: server.getServerName(),
148
151
  isStarted: server.isStarted(),
149
- type: 'builtin rpc',
152
+ type: MCP_SERVER_TYPE.BUILTIN,
150
153
  tools: toolNames,
151
154
  };
152
155
  }
153
156
 
154
157
  // 第三方 Stdio 类型的 MCP Server
155
- if (server instanceof StdioMCPServerImpl) {
158
+ if (server instanceof StdioMCPServer) {
156
159
  return {
157
160
  name: server.getServerName(),
158
161
  isStarted: server.isStarted(),
159
- type: 'stdio',
162
+ type: MCP_SERVER_TYPE.STDIO,
160
163
  command: server.command + ' ' + (server.args?.join(' ') || ''),
161
164
  tools: toolNames,
162
165
  };
166
+ } else if (server instanceof SSEMCPServer) {
167
+ return {
168
+ name: server.getServerName(),
169
+ isStarted: server.isStarted(),
170
+ type: MCP_SERVER_TYPE.SSE,
171
+ serverHost: server.serverHost,
172
+ tools: toolNames,
173
+ };
163
174
  }
164
175
 
165
- // TODO SSE 类型的 MCP Server
166
-
167
176
  return {
168
177
  name: server.getServerName(),
169
178
  isStarted: server.isStarted(),
@@ -189,6 +198,14 @@ export class SumiMCPServerBackend extends RPCService<IMCPServerProxyService> imp
189
198
  await this.mcpServerManager.stopServer(serverName);
190
199
  this.client?.$updateMCPServers();
191
200
  }
201
+
202
+ public addOrUpdateServer(description: MCPServerDescription) {
203
+ this.mcpServerManager.addOrUpdateServer(description);
204
+ }
205
+
206
+ public removeServer(name: string) {
207
+ this.mcpServerManager.removeServer(name);
208
+ }
192
209
  }
193
210
 
194
211
  export const TokenBuiltinMCPServer = Symbol('TokenBuiltinMCPServer');
@@ -240,7 +257,7 @@ export class BuiltinMCPServer implements IMCPServer {
240
257
  if (!this.started) {
241
258
  throw new Error('MCP Server not started');
242
259
  }
243
- const tools = await this.sumiMCPServer.getMCPTools();
260
+ const tools = await this.sumiMCPServer.$getMCPTools();
244
261
  return { tools } as any;
245
262
  }
246
263
 
@@ -4,10 +4,12 @@ import { ILogger } from '@opensumi/ide-core-common';
4
4
 
5
5
  import { IMCPServer, MCPServerDescription, MCPServerManager, MCPTool } from '../common/mcp-server-manager';
6
6
  import { IToolInvocationRegistryManager, ToolRequest } from '../common/tool-invocation-registry';
7
+ import { MCP_SERVER_TYPE } from '../common/types';
7
8
  import { getToolName } from '../common/utils';
8
9
 
9
10
  import { BuiltinMCPServer } from './mcp/sumi-mcp-server';
10
- import { StdioMCPServerImpl } from './mcp-server';
11
+ import { SSEMCPServer } from './mcp-server.sse';
12
+ import { StdioMCPServer } from './mcp-server.stdio';
11
13
  // 这应该是 Browser Tab 维度的,每个 Tab 对应一个 MCPServerManagerImpl
12
14
  export class MCPServerManagerImpl implements MCPServerManager {
13
15
  protected servers: Map<string, IMCPServer> = new Map();
@@ -127,14 +129,23 @@ export class MCPServerManagerImpl implements MCPServerManager {
127
129
  }
128
130
 
129
131
  addOrUpdateServer(description: MCPServerDescription): void {
130
- const { name, command, args, env } = description;
131
- const existingServer = this.servers.get(name);
132
-
133
- if (existingServer) {
134
- existingServer.update(command, args, env);
135
- } else {
136
- const newServer = new StdioMCPServerImpl(name, command, args, env, this.logger);
137
- this.servers.set(name, newServer);
132
+ const existingServer = this.servers.get(description.name);
133
+ if (description.type === MCP_SERVER_TYPE.STDIO) {
134
+ const { name, command, args, env } = description;
135
+ if (existingServer) {
136
+ existingServer.update(command, args, env);
137
+ } else {
138
+ const newServer = new StdioMCPServer(name, command, args, env, this.logger);
139
+ this.servers.set(name, newServer);
140
+ }
141
+ } else if (description.type === MCP_SERVER_TYPE.SSE) {
142
+ const { name, serverHost } = description;
143
+ if (existingServer) {
144
+ existingServer.update(serverHost);
145
+ } else {
146
+ const newServer = new SSEMCPServer(name, serverHost, this.logger);
147
+ this.servers.set(name, newServer);
148
+ }
138
149
  }
139
150
  }
140
151
 
@@ -0,0 +1,103 @@
1
+ // have to import with extension since the exports map is ./* -> ./dist/cjs/*
2
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
3
+ import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
4
+ import { EventSource } from 'eventsource';
5
+
6
+ import { ILogger } from '@opensumi/ide-core-common';
7
+
8
+ import pkg from '../../package.json';
9
+ import { IMCPServer } from '../common/mcp-server-manager';
10
+
11
+ global.EventSource = EventSource as any;
12
+ export class SSEMCPServer implements IMCPServer {
13
+ private name: string;
14
+ public serverHost: string;
15
+ private client: Client;
16
+ private started: boolean = false;
17
+
18
+ constructor(name: string, serverHost: string, private readonly logger?: ILogger) {
19
+ this.name = name;
20
+ this.serverHost = serverHost;
21
+ }
22
+
23
+ isStarted(): boolean {
24
+ return this.started;
25
+ }
26
+
27
+ getServerName(): string {
28
+ return this.name;
29
+ }
30
+
31
+ async start(): Promise<void> {
32
+ if (this.started) {
33
+ return;
34
+ }
35
+ this.logger?.log(`Starting server "${this.name}" with serverHost: ${this.serverHost}`);
36
+
37
+ const transport = new SSEClientTransport(new URL(this.serverHost), {
38
+ eventSourceInit: {},
39
+ });
40
+ transport.onerror = (error) => {
41
+ this.logger?.error('Transport Error:', error);
42
+ };
43
+
44
+ this.client = new Client(
45
+ {
46
+ name: 'sumi-ide-sse-mcp-client',
47
+ version: pkg.version,
48
+ },
49
+ {
50
+ capabilities: {},
51
+ },
52
+ );
53
+ this.client.onerror = (error) => {
54
+ this.logger?.error('Error in MCP client:', error);
55
+ };
56
+
57
+ await this.client.connect(transport);
58
+ this.started = true;
59
+ }
60
+
61
+ async callTool(toolName: string, toolCallId: string, arg_string: string) {
62
+ let args;
63
+ try {
64
+ args = JSON.parse(arg_string);
65
+ } catch (error) {
66
+ this.logger?.error(
67
+ `Failed to parse arguments for calling tool "${toolName}" in MCP server "${this.name}" with serverHost "${this.serverHost}".
68
+ Invalid JSON: ${arg_string}`,
69
+ error,
70
+ );
71
+ }
72
+ const params = {
73
+ name: toolName,
74
+ arguments: args,
75
+ toolCallId,
76
+ };
77
+ return this.client.callTool(params);
78
+ }
79
+
80
+ async getTools() {
81
+ const tools = await this.client.listTools();
82
+ this.logger?.log(`Got tools from MCP server "${this.name}" with serverHost "${this.serverHost}":`, tools);
83
+ return tools;
84
+ }
85
+
86
+ update(serverHost: string): void {
87
+ this.serverHost = serverHost;
88
+ }
89
+
90
+ async stop(): Promise<void> {
91
+ if (!this.started || !this.client) {
92
+ return;
93
+ }
94
+ this.logger?.log(`Stopping MCP server "${this.name}"`);
95
+ try {
96
+ await this.client.close();
97
+ } catch (error) {
98
+ this.logger?.error(`Failed to stop MCP server "${this.name}":`, error);
99
+ }
100
+ this.logger?.log(`MCP server "${this.name}" stopped`);
101
+ this.started = false;
102
+ }
103
+ }
@@ -4,9 +4,10 @@ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'
4
4
 
5
5
  import { ILogger } from '@opensumi/ide-core-common';
6
6
 
7
+ import pkg from '../../package.json';
7
8
  import { IMCPServer } from '../common/mcp-server-manager';
8
9
 
9
- export class StdioMCPServerImpl implements IMCPServer {
10
+ export class StdioMCPServer implements IMCPServer {
10
11
  private name: string;
11
12
  public command: string;
12
13
  public args?: string[];
@@ -64,8 +65,8 @@ export class StdioMCPServerImpl implements IMCPServer {
64
65
 
65
66
  this.client = new Client(
66
67
  {
67
- name: 'opensumi-mcp-client',
68
- version: '1.0.0',
68
+ name: 'sumi-ide-stdio-mcp-client',
69
+ version: pkg.version,
69
70
  },
70
71
  {
71
72
  capabilities: {},
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/node/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/node/mcp-server.ts"],"names":[],"mappings":"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"}