@aalis/plugin-mcp-client 0.10.3 → 0.12.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
@@ -7,7 +7,7 @@
7
7
  - 每个 server 在 config 中独立一项(`id` / `command` / `args` / `env`)
8
8
  - 工具名会加前缀 `mcp_<server-id>_<tool-name>` 避免与本地工具命名冲突
9
9
  - 每个 server 注册一个工具分组 `mcp:<server-id>`,可在 platform 配置中按需启用
10
- - `ctx.onDispose` 注册了 client 关闭回调,插件卸载时自动断开
10
+ - `lifecycle.onDispose` 注册了 client 关闭回调,插件卸载时自动断开
11
11
  - 工具档位默认 `auto`——按 MCP 工具注解分档:自称只读(`readOnlyHint`)→ `sensitive`
12
12
  (等级 1),有破坏提示或未声明 → `restricted`(等级 2,未知按可破坏算)。
13
13
  server 级 `visibility` 可显式覆盖为 `public` / `sensitive` / `restricted`
@@ -34,10 +34,13 @@ plugins:
34
34
  ## 依赖
35
35
 
36
36
  - `@modelcontextprotocol/sdk`
37
- - inject.required: `tools`(api-tools / plugin-tools)
37
+ - uses:`tools`(api-tools / plugin-tools)、`logger`、`lifecycle`、`config`;可选 `plugins`、`hostConfig`
38
38
 
39
39
  ## 注意
40
40
 
41
+ - `args` 必须是字符串数组、`env` 必须是映射;字符串(含空串)或其它形态会让该 server 记录警告且不启动,需按上面的示例改写
42
+ - 旧版 WebUI 建的条目常带 `args: ''` / `env: ''`,请删除该键或改为 `[]` / `{}`
43
+ - 旧版按以下规则解析字符串,改写时照此拆分:`args` 先按行、再按空白切分,如 `args: "-y @scope/pkg"` 应改为 `["-y", "@scope/pkg"]`;`env` 每行一条 `KEY=VALUE`,忽略 `#` 开头的注释行,值去首尾空白
41
44
  - MCP `inputSchema` 顶层非 `type: 'object'` 时会被包装为 `{ input: schema }`
42
45
  - 工具名超过 64 字符(OpenAI 限制)会被截断
43
46
  - 非法字符(`/` `.` 等)会被替换为下划线
package/dist/index.d.ts CHANGED
@@ -8,11 +8,12 @@
8
8
  * - 每个 server 在 config.servers 里独立一项(id / command / args / env)
9
9
  * - 工具名加前缀 `mcp_<server-id>_<tool-name>` 避免与本地工具冲突
10
10
  * - 每个 server 注册一个工具分组 `mcp:<server-id>`
11
- * - dispose 时关闭所有 client 连接(通过 ctx.onDispose)
12
- * - 安全级别由 config 中按 server 配置(默认 safe);高危 server 应显式设为 dangerous
11
+ * - 激活关闭时断开所有 client 连接(lifecycle.onDispose)
12
+ * - 档位按 server 的 visibility 配置(默认 auto,按工具注解分档)
13
13
  */
14
- import type { Context } from '@aalis/core';
15
- import type { ConfigSchema } from '@aalis/schema-config';
14
+ import { type HostConfig } from '@aalis/api-host-config';
15
+ import type { BoundTools } from '@aalis/api-tools';
16
+ import { type LifecycleCap, type Logger, type PluginManagerService, type ServiceRef } from '@aalis/core';
16
17
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
17
18
  /** server 级档位:auto 按工具注解分档;其余三档显式覆盖全部工具。 */
18
19
  type McpServerTier = 'auto' | 'public' | 'sensitive' | 'restricted';
@@ -30,13 +31,11 @@ interface ServerSpec {
30
31
  /** 该 server 工具的档位,默认 'auto'(按注解分档,见 deriveMcpToolPolicy)。 */
31
32
  visibility?: McpServerTier;
32
33
  }
33
- export declare const name = "@aalis/plugin-mcp-client";
34
- export declare const displayName = "MCP \u5BA2\u6237\u7AEF";
35
- export declare const subsystem = "tools";
36
- export declare const inject: {
37
- required: string[];
38
- };
39
- export declare const configSchema: ConfigSchema;
34
+ /** 桥接函数用到的能力:测试只需给这两样,不必伪造整个运行时 */
35
+ interface BridgeCaps {
36
+ tools: BoundTools;
37
+ logger: Logger;
38
+ }
40
39
  interface ToolMeta {
41
40
  name: string;
42
41
  description?: string;
@@ -63,11 +62,18 @@ export declare function deriveMcpToolPolicy(annotations: ToolMeta['annotations']
63
62
  visibility?: 'restricted';
64
63
  risk?: 'sensitive';
65
64
  };
66
- export declare function apply(ctx: Context, rawConfig: Record<string, unknown>): Promise<void>;
67
65
  /**
68
66
  * 把一个已连接的 MCP Client 上暴露的所有工具桥接进 Aalis ToolService。
69
67
  * 导出以便集成测试直接传入 InMemoryTransport 配对的 client。
70
68
  */
71
- export declare function bridgeClientToTools(ctx: Context, client: Client, spec: ServerSpec): Promise<void>;
72
- export {};
69
+ export declare function bridgeClientToTools(caps: BridgeCaps, client: Client, spec: ServerSpec, signal?: AbortSignal): Promise<void>;
70
+ declare const _default: import("@aalis/core").PluginDefinition<{
71
+ tools: import("@aalis/core").ServiceDescriptor<import("@aalis/api-tools").ToolService, BoundTools>;
72
+ logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Logger, Logger>;
73
+ lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => LifecycleCap, LifecycleCap>;
74
+ config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
75
+ plugins: import("@aalis/core").OptionalUse<PluginManagerService, ServiceRef<PluginManagerService>>;
76
+ hostConfig: import("@aalis/core").OptionalUse<HostConfig, ServiceRef<HostConfig>>;
77
+ }>;
78
+ export default _default;
73
79
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAc,OAAO,EAAwB,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,4CAA4C;AAC5C,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpE,UAAU,UAAU;IAClB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAMD,eAAO,MAAM,IAAI,6BAA6B,CAAC;AAC/C,eAAO,MAAM,WAAW,2BAAY,CAAC;AACrC,eAAO,MAAM,SAAS,UAAU,CAAC;AAEjC,eAAO,MAAM,MAAM;;CAA0B,CAAC;AAE9C,eAAO,MAAM,YAAY,EAAE,YAqD1B,CAAC;AAEF,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,iDAAiD;IACjD,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,EACpC,UAAU,CAAC,EAAE,aAAa,GACzB;IAAE,UAAU,CAAC,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAMnD;AAED,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC3F;AA8KD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCvG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAmC,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,MAAM,EAIX,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,4CAA4C;AAC5C,KAAK,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpE,UAAU,UAAU;IAClB,qBAAqB;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW;IACX,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAID,mCAAmC;AACnC,UAAU,UAAU;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAgED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,iDAAiD;IACjD,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,EACpC,UAAU,CAAC,EAAE,aAAa,GACzB;IAAE,UAAU,CAAC,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAA;CAAE,CAMnD;AA2OD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAqCf;;;;;;;;;AAsDD,wBAcG"}
package/dist/index.js CHANGED
@@ -8,17 +8,16 @@
8
8
  * - 每个 server 在 config.servers 里独立一项(id / command / args / env)
9
9
  * - 工具名加前缀 `mcp_<server-id>_<tool-name>` 避免与本地工具冲突
10
10
  * - 每个 server 注册一个工具分组 `mcp:<server-id>`
11
- * - dispose 时关闭所有 client 连接(通过 ctx.onDispose)
12
- * - 安全级别由 config 中按 server 配置(默认 safe);高危 server 应显式设为 dangerous
11
+ * - 激活关闭时断开所有 client 连接(lifecycle.onDispose)
12
+ * - 档位按 server 的 visibility 配置(默认 auto,按工具注解分档)
13
13
  */
14
- import { useToolService, wrapUntrustedContent } from '@aalis/api-tools';
14
+ import { hostConfig as hostConfigService } from '@aalis/api-host-config';
15
+ import { tools as toolsService, wrapUntrustedContent } from '@aalis/api-tools';
16
+ import { config as configService, definePlugin, lifecycle as lifecycleService, logger as loggerService, optional, pluginsService, } from '@aalis/core';
15
17
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
16
18
  import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
17
- export const name = '@aalis/plugin-mcp-client';
18
- export const displayName = 'MCP 客户端';
19
- export const subsystem = 'tools';
20
- export const inject = { required: ['tools'] };
21
- export const configSchema = {
19
+ const PLUGIN_NAME = '@aalis/plugin-mcp-client';
20
+ const configSchema = {
22
21
  servers: {
23
22
  type: 'array',
24
23
  label: 'MCP 服务器列表',
@@ -37,16 +36,16 @@ export const configSchema = {
37
36
  required: true,
38
37
  },
39
38
  args: {
40
- type: 'textarea',
39
+ type: 'list',
41
40
  label: '命令参数',
42
- description: '每行一个参数;或用空格分隔。会按行优先解析,行内再按空格切分。',
43
- default: '',
41
+ description: '按顺序传给命令的参数列表,每项一个参数(可含空格)。',
42
+ default: [],
44
43
  },
45
44
  env: {
46
- type: 'textarea',
45
+ type: 'map',
47
46
  label: '环境变量',
48
- description: '每行一个 KEY=VALUE。',
49
- default: '',
47
+ description: '额外传给子进程的环境变量(KEY → VALUE)。',
48
+ default: {},
50
49
  },
51
50
  enabled: {
52
51
  type: 'boolean',
@@ -92,43 +91,46 @@ export function deriveMcpToolPolicy(annotations, serverTier) {
92
91
  return { risk: 'sensitive' };
93
92
  return { visibility: 'restricted' };
94
93
  }
95
- export async function apply(ctx, rawConfig) {
96
- const rawServers = (rawConfig.servers ?? []);
94
+ async function run(caps) {
95
+ const rawServers = (caps.config.servers ?? []);
97
96
  const servers = rawServers
98
- .map((s, i) => normalizeServerSpec(s, i, ctx))
97
+ .map((s, i) => normalizeServerSpec(s, i, caps.logger))
99
98
  .filter((s) => s !== undefined);
100
99
  if (servers.length === 0) {
101
- ctx.logger.info('未配置任何 MCP server,仅注册元数据工具');
102
- registerSelfServiceTools(ctx);
100
+ caps.logger.info('未配置任何 MCP server,仅注册元数据工具');
101
+ registerSelfServiceTools(caps);
103
102
  return;
104
103
  }
105
104
  // 注册分组:每个 enabled server 一个分组,让平台可按需启用
106
105
  for (const spec of servers) {
107
106
  if (spec.enabled === false)
108
107
  continue;
109
- useToolService(ctx).registerGroup({
108
+ caps.tools.registerGroup({
110
109
  name: `mcp:${spec.id}`,
111
110
  label: `MCP / ${spec.id}`,
112
111
  description: `通过 plugin-mcp-client 桥接的远端 MCP server "${spec.id}"`,
113
112
  });
114
113
  }
115
- // 并发连接所有 enabled servers;失败的不影响其他
114
+ // 并发连接所有 enabled servers;失败的不影响其他。停用或停机时中止,中止不记失败
116
115
  await Promise.all(servers
117
116
  .filter(s => s.enabled !== false)
118
- .map(spec => connectServer(ctx, spec).catch(err => {
119
- ctx.logger.error(`连接 MCP server "${spec.id}" 失败: ${err instanceof Error ? err.message : String(err)}`);
117
+ .map(spec => connectServer(caps, spec).catch(err => {
118
+ if (caps.lifecycle.signal.aborted)
119
+ return;
120
+ caps.logger.error(`连接 MCP server "${spec.id}" 失败: ${err instanceof Error ? err.message : String(err)}`);
120
121
  })));
122
+ caps.lifecycle.signal.throwIfAborted();
121
123
  // 注册 agent 自服务工具:只读列表 + toggle 已配置 server 的启用开关。
122
124
  // 故意不提供「新增 server」工具——那等价于让 agent 任意 spawn 子进程,授权风险过大。
123
125
  // 若要新增 server,应在 WebUI / yaml 手工配置。
124
- registerSelfServiceTools(ctx);
126
+ registerSelfServiceTools(caps);
125
127
  }
126
128
  /**
127
129
  * 在 ToolService 中注册 mcp_list_servers / mcp_set_server_enabled 两个 agent 自服务工具。
128
130
  * 二者都属于 `mcp:_meta` 分组,便于平台按需开放。
129
131
  */
130
- function registerSelfServiceTools(ctx) {
131
- const tools = useToolService(ctx);
132
+ function registerSelfServiceTools(caps) {
133
+ const { tools } = caps;
132
134
  tools.registerGroup({
133
135
  name: 'mcp:_meta',
134
136
  label: 'MCP / 元数据',
@@ -146,7 +148,7 @@ function registerSelfServiceTools(ctx) {
146
148
  groups: ['mcp:_meta'],
147
149
  visibility: 'public',
148
150
  handler: async () => {
149
- const cfg = ctx.config.getPluginConfig(name);
151
+ const cfg = caps.config;
150
152
  const list = (cfg.servers ?? []).map((s, i) => {
151
153
  const r = s ?? {};
152
154
  return {
@@ -186,11 +188,12 @@ function registerSelfServiceTools(ctx) {
186
188
  const enabled = args.enabled === true;
187
189
  if (!id)
188
190
  return '失败:参数 id 必填';
189
- const pm = ctx.getService('plugins');
190
- const app = ctx.getService('app');
191
- if (!pm || !app)
192
- return '失败:app/plugins 服务不可用';
193
- const current = ctx.config.getPluginConfig(name);
191
+ // 缺任一服务就不动运行态:改了却存不下,重启后会悄悄回退
192
+ const pm = caps.plugins.current;
193
+ const doc = caps.hostConfig.current;
194
+ if (!pm || !doc)
195
+ return '失败:plugins/host-config 服务不可用';
196
+ const current = caps.config;
194
197
  const servers = Array.isArray(current.servers) ? [...current.servers] : [];
195
198
  const idx = servers.findIndex(s => {
196
199
  const r = s ?? {};
@@ -203,57 +206,59 @@ function registerSelfServiceTools(ctx) {
203
206
  return `无变化:server "${id}" 当前 enabled=${enabled}`;
204
207
  }
205
208
  servers[idx] = { ...before, enabled };
206
- const ok = await pm.updateConfig(name, { ...current, servers });
209
+ const next = { ...current, servers };
210
+ const ok = await pm.updateConfig(PLUGIN_NAME, next);
207
211
  if (!ok)
208
212
  return `失败:updateConfig 返回 false`;
209
- await app.saveConfig();
213
+ // 管理动作只改运行态;跨重启保留要自己写文档并落盘
214
+ doc.setPluginConfig(PLUGIN_NAME, next);
215
+ // 落盘失败时运行态已经切换、插件已在 bounce:如实说明,别报成什么都没发生(save 自己记过日志)
216
+ try {
217
+ await doc.save();
218
+ }
219
+ catch (err) {
220
+ return (`已将 server "${id}" 设置为 enabled=${enabled}(运行态已生效,插件会 bounce);` +
221
+ `写入配置文件失败:${err instanceof Error ? err.message : String(err)}。配置文件里仍是原值,重启或配置重新载入后可能回退`);
222
+ }
210
223
  return `已将 server "${id}" 设置为 enabled=${enabled},插件会 bounce 后生效`;
211
224
  },
212
225
  });
213
226
  }
214
227
  /**
215
- * 把来自 WebUI(textarea 字符串)/ yaml(数组对象)两种形态的 server 配置项统一成 ServerSpec。
216
- * 非法条目(缺 id 或 command)跳过并日志警告,避免整插件挂掉。
228
+ * 把一条 server 配置项统一成 ServerSpec。
229
+ * 非法条目(缺 id 或 command、args 不是数组、env 不是对象)跳过并日志警告,避免整插件挂掉。
230
+ * 旧版 WebUI 存下的 args / env 多行文本不再解析:按行、按空白切分会拆坏带空格的参数,
231
+ * 换成列表又会悄悄改变含义,所以要求用户改写,而不是猜。
217
232
  */
218
- function normalizeServerSpec(raw, index, ctx) {
233
+ function normalizeServerSpec(raw, index, logger) {
219
234
  if (!raw || typeof raw !== 'object') {
220
- ctx.logger.warn(`servers[${index}] 不是对象,跳过`);
235
+ logger.warn(`servers[${index}] 不是对象,跳过`);
221
236
  return undefined;
222
237
  }
223
238
  const r = raw;
224
239
  const id = typeof r.id === 'string' ? r.id.trim() : '';
225
240
  const command = typeof r.command === 'string' ? r.command.trim() : '';
226
241
  if (!id || !command) {
227
- ctx.logger.warn(`servers[${index}] 缺少 id 或 command,跳过`);
242
+ logger.warn(`servers[${index}] 缺少 id 或 command,跳过`);
228
243
  return undefined;
229
244
  }
230
- // args: 支持 string[] | string(每行一参数 / 空格分隔)
231
245
  let args;
232
246
  if (Array.isArray(r.args)) {
233
247
  args = r.args.map(x => String(x)).filter(Boolean);
234
248
  }
235
- else if (typeof r.args === 'string' && r.args.trim()) {
236
- args = r.args
237
- .split('\n')
238
- .flatMap(line => line.trim().split(/\s+/))
239
- .filter(Boolean);
249
+ else if (r.args !== undefined && r.args !== null) {
250
+ logger.warn(`servers[${index}](${id})的 args 必须是字符串数组,得到 ${typeof r.args},该 server 不启动。` +
251
+ '旧版 WebUI 存下的多行文本请改写为数组,每项一个参数,例如 args: ["-y", "@scope/pkg"]');
252
+ return undefined;
240
253
  }
241
- // env: 支持 Record<string,string> | string(KEY=VALUE 每行一条)
242
254
  let env;
243
255
  if (r.env && typeof r.env === 'object' && !Array.isArray(r.env)) {
244
256
  env = Object.fromEntries(Object.entries(r.env).map(([k, v]) => [k, String(v)]));
245
257
  }
246
- else if (typeof r.env === 'string' && r.env.trim()) {
247
- env = {};
248
- for (const line of r.env.split('\n')) {
249
- const trimmed = line.trim();
250
- if (!trimmed || trimmed.startsWith('#'))
251
- continue;
252
- const eq = trimmed.indexOf('=');
253
- if (eq <= 0)
254
- continue;
255
- env[trimmed.slice(0, eq).trim()] = trimmed.slice(eq + 1).trim();
256
- }
258
+ else if (r.env !== undefined && r.env !== null) {
259
+ logger.warn(`servers[${index}](${id})的 env 必须是 KEY: VALUE 映射,得到 ${Array.isArray(r.env) ? 'array' : typeof r.env},该 server 不启动。` +
260
+ '旧版 WebUI 存下的 KEY=VALUE 多行文本请改写为映射,例如 env: { TOKEN: "xxx" }');
261
+ return undefined;
257
262
  }
258
263
  const visibility = r.visibility === 'restricted' ||
259
264
  r.visibility === 'public' ||
@@ -264,34 +269,45 @@ function normalizeServerSpec(raw, index, ctx) {
264
269
  const enabled = r.enabled !== false;
265
270
  return { id, command, args, env, enabled, visibility };
266
271
  }
267
- async function connectServer(ctx, spec) {
272
+ async function connectServer(caps, spec) {
273
+ const { signal } = caps.lifecycle;
268
274
  const transport = new StdioClientTransport({
269
275
  command: spec.command,
270
276
  args: spec.args ?? [],
271
277
  env: spec.env,
272
278
  });
273
279
  const client = new Client({ name: 'aalis-mcp-client', version: '0.1.0' }, { capabilities: {} });
274
- await client.connect(transport);
275
- ctx.logger.info(`MCP server "${spec.id}" 已连接 (${spec.command} ${(spec.args ?? []).join(' ')})`);
276
- // 连接生命周期:ctx dispose 时关闭
277
- ctx.onDispose(async () => {
278
- try {
279
- await client.close();
280
- ctx.logger.info(`MCP server "${spec.id}" 已关闭`);
281
- }
282
- catch (err) {
283
- ctx.logger.debug(`关闭 MCP server "${spec.id}" 抛错(已忽略):`, err);
284
- }
285
- });
286
- await bridgeClientToTools(ctx, client, spec);
280
+ // 握手与列工具随停用或停机中止(握手中止时 SDK 自己关掉子进程)。SDK 给传入的 signal 挂 abort 监听且从不摘除,
281
+ // 直接传长寿的 lifecycle.signal 会逐次累积监听器:这里经本段专用的 controller 桥接,结束时摘掉桥
282
+ const bridge = new AbortController();
283
+ const onAbort = () => bridge.abort(signal.reason);
284
+ signal.addEventListener('abort', onAbort, { once: true });
285
+ try {
286
+ await client.connect(transport, { signal: bridge.signal });
287
+ caps.logger.info(`MCP server "${spec.id}" 已连接 (${spec.command} ${(spec.args ?? []).join(' ')})`);
288
+ // 连接生命周期:激活关闭时关闭。握手跨 await,关闭可能已开始——迟到的清理仍会被执行
289
+ caps.lifecycle.onDispose(async () => {
290
+ try {
291
+ await client.close();
292
+ caps.logger.info(`MCP server "${spec.id}" 已关闭`);
293
+ }
294
+ catch (err) {
295
+ caps.logger.debug(`关闭 MCP server "${spec.id}" 抛错(已忽略):`, err);
296
+ }
297
+ });
298
+ await bridgeClientToTools(caps, client, spec, bridge.signal);
299
+ }
300
+ finally {
301
+ signal.removeEventListener('abort', onAbort);
302
+ }
287
303
  }
288
304
  /**
289
305
  * 把一个已连接的 MCP Client 上暴露的所有工具桥接进 Aalis ToolService。
290
306
  * 导出以便集成测试直接传入 InMemoryTransport 配对的 client。
291
307
  */
292
- export async function bridgeClientToTools(ctx, client, spec) {
293
- const { tools: mcpTools } = (await client.listTools());
294
- ctx.logger.info(` 发现 ${mcpTools.length} 个工具`);
308
+ export async function bridgeClientToTools(caps, client, spec, signal) {
309
+ const { tools: mcpTools } = (await client.listTools(undefined, { signal }));
310
+ caps.logger.info(` 发现 ${mcpTools.length} 个工具`);
295
311
  for (const t of mcpTools) {
296
312
  const toolName = sanitizeToolName(`mcp_${spec.id}_${t.name}`);
297
313
  const parameters = normalizeParameters(t.inputSchema);
@@ -303,7 +319,7 @@ export async function bridgeClientToTools(ctx, client, spec) {
303
319
  parameters,
304
320
  },
305
321
  };
306
- useToolService(ctx).register({
322
+ caps.tools.register({
307
323
  definition,
308
324
  groups: [`mcp:${spec.id}`],
309
325
  ...deriveMcpToolPolicy(t.annotations, spec.visibility),
@@ -321,7 +337,7 @@ export async function bridgeClientToTools(ctx, client, spec) {
321
337
  }
322
338
  },
323
339
  });
324
- ctx.logger.debug(` - 工具已注册: ${toolName}`);
340
+ caps.logger.debug(` - 工具已注册: ${toolName}`);
325
341
  }
326
342
  }
327
343
  /**
@@ -370,4 +386,19 @@ function formatToolResult(result, source) {
370
386
  // 就是外部内容,同 http_request 一样套不可信边界。错误信息不是抓取内容,不套。
371
387
  return r.isError ? `MCP 工具返回错误:\n${body}` : wrapUntrustedContent(body, `MCP ${source}`);
372
388
  }
389
+ export default definePlugin({
390
+ name: PLUGIN_NAME,
391
+ displayName: 'MCP 客户端',
392
+ subsystem: 'tools',
393
+ uses: {
394
+ tools: toolsService,
395
+ logger: loggerService,
396
+ lifecycle: lifecycleService,
397
+ config: configService,
398
+ plugins: optional(pluginsService),
399
+ hostConfig: optional(hostConfigService),
400
+ },
401
+ configSchema,
402
+ apply: run,
403
+ });
373
404
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aalis/plugin-mcp-client",
3
- "version": "0.10.3",
3
+ "version": "0.12.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,22 +24,30 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@aalis/schema-config": ">=0.9.0 <1.0.0",
28
- "@aalis/api-tools": ">=0.6.0 <1.0.0",
29
- "@modelcontextprotocol/sdk": "^1.0.4"
27
+ "@aalis/schema-config": ">=0.13.0 <1.0.0",
28
+ "@aalis/api-tools": ">=0.10.0 <1.0.0",
29
+ "@modelcontextprotocol/sdk": "^1.29.0",
30
+ "@aalis/api-host-config": ">=0.1.0 <1.0.0"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@types/node": "^22.0.0",
33
34
  "typescript": "^5.7.0",
34
- "@aalis/core": "0.14.0"
35
+ "@aalis/core": "0.18.0"
35
36
  },
36
37
  "peerDependencies": {
37
- "@aalis/core": ">=0.14.0 <1.0.0"
38
+ "@aalis/core": ">=0.18.0 <1.0.0"
38
39
  },
39
40
  "aalis": {
40
41
  "service": {
41
42
  "required": [
43
+ "config",
44
+ "lifecycle",
45
+ "logger",
42
46
  "tools"
47
+ ],
48
+ "optional": [
49
+ "host-config",
50
+ "plugins"
43
51
  ]
44
52
  }
45
53
  },