@aalis/plugin-mcp-client 0.12.0 → 0.14.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 +6 -3
- package/dist/index.d.ts +78 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107 -107
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
package/README.md
CHANGED
|
@@ -34,13 +34,16 @@ plugins:
|
|
|
34
34
|
## 依赖
|
|
35
35
|
|
|
36
36
|
- `@modelcontextprotocol/sdk`
|
|
37
|
-
- uses:`tools`(api-tools / plugin-tools)、`logger`、`lifecycle`、`config`;可选 `
|
|
37
|
+
- uses:`tools`(api-tools / plugin-tools)、`logger`、`lifecycle`、`config`;可选 `hostConfig`(`mcp_set_server_enabled` 经它的 `applyPluginConfig` 改配置并落盘)
|
|
38
38
|
|
|
39
39
|
## 注意
|
|
40
40
|
|
|
41
|
-
- `
|
|
42
|
-
|
|
41
|
+
- `env` 声明了 `secret: true`:每个 server 的整份 `env` 算一个密钥,Node 宿主把它移进家目录的 `secrets.yaml`,配置文件里只留引用;WebUI 不回显,要改就整份重填。token 放进 `env`,不要写进 `args`(连接成功时的日志会写出全部 `args`)
|
|
42
|
+
- `args` 必须是字符串数组、`env` 必须是映射;缺省时分别补 `[]` / `{}`。显式形态错误或任一成员不能转为字符串时,该 server 记录警告且不启动,其他 server 不受影响;合法的空字符串参数会原样传递
|
|
43
|
+
- 旧版 WebUI 建的条目常带 `args: ''` / `env: ''`,删除该键或改为 `[]` / `{}`
|
|
43
44
|
- 旧版按以下规则解析字符串,改写时照此拆分:`args` 先按行、再按空白切分,如 `args: "-y @scope/pkg"` 应改为 `["-y", "@scope/pkg"]`;`env` 每行一条 `KEY=VALUE`,忽略 `#` 开头的注释行,值去首尾空白
|
|
45
|
+
- 缺少 `id` 或 `command` 的条目记录警告并跳过,其它 server 不受影响
|
|
46
|
+
- `enabled` 不是布尔值、`visibility` 不在四档选项中时,同样跳过该 server
|
|
44
47
|
- MCP `inputSchema` 顶层非 `type: 'object'` 时会被包装为 `{ input: schema }`
|
|
45
48
|
- 工具名超过 64 字符(OpenAI 限制)会被截断
|
|
46
49
|
- 非法字符(`/` `.` 等)会被替换为下划线
|
package/dist/index.d.ts
CHANGED
|
@@ -10,32 +10,89 @@
|
|
|
10
10
|
* - 每个 server 注册一个工具分组 `mcp:<server-id>`
|
|
11
11
|
* - 激活关闭时断开所有 client 连接(lifecycle.onDispose)
|
|
12
12
|
* - 档位按 server 的 visibility 配置(默认 auto,按工具注解分档)
|
|
13
|
+
* - 连不上的 server 发一条 error 提示(WebUI 的「需要处理」与插件详情),提示归属这次激活:改好配置重载后撤回
|
|
13
14
|
*/
|
|
14
15
|
import { type HostConfig } from '@aalis/api-host-config';
|
|
15
16
|
import type { BoundTools } from '@aalis/api-tools';
|
|
16
|
-
import { type
|
|
17
|
+
import { type BoundWebui } from '@aalis/api-webui';
|
|
18
|
+
import { type LifecycleCap, type Logger } from '@aalis/core';
|
|
19
|
+
import { type ConfigOf } from '@aalis/schema-config';
|
|
17
20
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
18
|
-
/** server 级档位:auto 按工具注解分档;其余三档显式覆盖全部工具。 */
|
|
19
|
-
type McpServerTier = 'auto' | 'public' | 'sensitive' | 'restricted';
|
|
20
|
-
interface ServerSpec {
|
|
21
|
-
/** 唯一 id,用于工具命名空间 */
|
|
22
|
-
id: string;
|
|
23
|
-
/** 可执行命令(如 npx / node / python) */
|
|
24
|
-
command: string;
|
|
25
|
-
/** 命令行参数 */
|
|
26
|
-
args?: string[];
|
|
27
|
-
/** 环境变量 */
|
|
28
|
-
env?: Record<string, string>;
|
|
29
|
-
/** 是否启用,默认 true */
|
|
30
|
-
enabled?: boolean;
|
|
31
|
-
/** 该 server 工具的档位,默认 'auto'(按注解分档,见 deriveMcpToolPolicy)。 */
|
|
32
|
-
visibility?: McpServerTier;
|
|
33
|
-
}
|
|
34
21
|
/** 桥接函数用到的能力:测试只需给这两样,不必伪造整个运行时 */
|
|
35
22
|
interface BridgeCaps {
|
|
36
23
|
tools: BoundTools;
|
|
37
24
|
logger: Logger;
|
|
38
25
|
}
|
|
26
|
+
declare const configSchema: {
|
|
27
|
+
readonly servers: {
|
|
28
|
+
readonly type: "array";
|
|
29
|
+
readonly label: "MCP 服务器列表";
|
|
30
|
+
readonly description: "通过 stdio 连接的 MCP 服务器。每条目至少需要 id 与 command;安全级别按需调整。";
|
|
31
|
+
readonly items: {
|
|
32
|
+
readonly id: {
|
|
33
|
+
readonly type: "string";
|
|
34
|
+
readonly label: "唯一 ID";
|
|
35
|
+
readonly description: "用于工具命名空间,最终工具名形如 mcp_<id>_<tool>。仅允许字母数字与下划线/中划线。";
|
|
36
|
+
readonly required: true;
|
|
37
|
+
};
|
|
38
|
+
readonly command: {
|
|
39
|
+
readonly type: "string";
|
|
40
|
+
readonly label: "可执行命令";
|
|
41
|
+
readonly description: "命令名(如 npx / node / python,按 PATH 查找)或绝对路径。";
|
|
42
|
+
readonly required: true;
|
|
43
|
+
readonly format: "executable";
|
|
44
|
+
readonly onInvalid: "error";
|
|
45
|
+
};
|
|
46
|
+
readonly args: {
|
|
47
|
+
readonly type: "list";
|
|
48
|
+
readonly label: "命令参数";
|
|
49
|
+
readonly description: "按顺序传给命令的参数列表,每项一个参数(可含空格)。参数里的文件路径请写绝对路径。";
|
|
50
|
+
readonly default: readonly [];
|
|
51
|
+
readonly onInvalid: "error";
|
|
52
|
+
};
|
|
53
|
+
readonly env: {
|
|
54
|
+
readonly type: "map";
|
|
55
|
+
readonly label: "环境变量";
|
|
56
|
+
readonly description: string;
|
|
57
|
+
readonly default: {};
|
|
58
|
+
readonly onInvalid: "error";
|
|
59
|
+
readonly secret: true;
|
|
60
|
+
};
|
|
61
|
+
readonly enabled: {
|
|
62
|
+
readonly type: "boolean";
|
|
63
|
+
readonly label: "启用";
|
|
64
|
+
readonly description: "关闭可临时跳过该 server 而不删除整条配置。";
|
|
65
|
+
readonly default: true;
|
|
66
|
+
readonly onInvalid: "error";
|
|
67
|
+
};
|
|
68
|
+
readonly visibility: {
|
|
69
|
+
readonly type: "select";
|
|
70
|
+
readonly label: "工具档位";
|
|
71
|
+
readonly description: string;
|
|
72
|
+
readonly default: "auto";
|
|
73
|
+
readonly onInvalid: "error";
|
|
74
|
+
readonly options: [{
|
|
75
|
+
readonly label: "auto(按注解分档)";
|
|
76
|
+
readonly value: "auto";
|
|
77
|
+
}, {
|
|
78
|
+
readonly label: "public(等级 0 全开)";
|
|
79
|
+
readonly value: "public";
|
|
80
|
+
}, {
|
|
81
|
+
readonly label: "sensitive(等级 1)";
|
|
82
|
+
readonly value: "sensitive";
|
|
83
|
+
}, {
|
|
84
|
+
readonly label: "restricted(等级 2)";
|
|
85
|
+
readonly value: "restricted";
|
|
86
|
+
}];
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
readonly default: [];
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
/** 一条 server 配置(parseConfig 解析后的形状) */
|
|
93
|
+
type ServerSpec = ConfigOf<typeof configSchema>['servers'][number];
|
|
94
|
+
/** server 级档位:auto 按工具注解分档;其余三档显式覆盖全部工具。 */
|
|
95
|
+
type McpServerTier = ServerSpec['visibility'];
|
|
39
96
|
interface ToolMeta {
|
|
40
97
|
name: string;
|
|
41
98
|
description?: string;
|
|
@@ -64,16 +121,16 @@ export declare function deriveMcpToolPolicy(annotations: ToolMeta['annotations']
|
|
|
64
121
|
};
|
|
65
122
|
/**
|
|
66
123
|
* 把一个已连接的 MCP Client 上暴露的所有工具桥接进 Aalis ToolService。
|
|
67
|
-
* 导出以便集成测试直接传入 InMemoryTransport 配对的 client
|
|
124
|
+
* 导出以便集成测试直接传入 InMemoryTransport 配对的 client;spec 只用到 id 与 visibility(缺省按 auto)。
|
|
68
125
|
*/
|
|
69
|
-
export declare function bridgeClientToTools(caps: BridgeCaps, client: Client, spec: ServerSpec, signal?: AbortSignal): Promise<void>;
|
|
126
|
+
export declare function bridgeClientToTools(caps: BridgeCaps, client: Client, spec: Pick<ServerSpec, 'id'> & Partial<ServerSpec>, signal?: AbortSignal): Promise<void>;
|
|
70
127
|
declare const _default: import("@aalis/core").PluginDefinition<{
|
|
71
128
|
tools: import("@aalis/core").ServiceDescriptor<import("@aalis/api-tools").ToolService, BoundTools>;
|
|
72
129
|
logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Logger, Logger>;
|
|
73
130
|
lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => LifecycleCap, LifecycleCap>;
|
|
74
131
|
config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
|
|
75
|
-
|
|
76
|
-
|
|
132
|
+
hostConfig: import("@aalis/core").OptionalUse<HostConfig, HostConfig>;
|
|
133
|
+
webui: import("@aalis/core").OptionalUse<import("@aalis/api-webui").WebUIService, BoundWebui>;
|
|
77
134
|
}>;
|
|
78
135
|
export default _default;
|
|
79
136
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAmC,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,MAAM,EAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,QAAQ,EAA6B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,mCAAmC;AACnC,UAAU,UAAU;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAWD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DhB,CAAC;AAEH,uCAAuC;AACvC,KAAK,UAAU,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,4CAA4C;AAC5C,KAAK,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAE9C,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;AA4MD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,EAClD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Cf;;;;;;;;;AAwDD,wBAcG"}
|
package/dist/index.js
CHANGED
|
@@ -10,14 +10,19 @@
|
|
|
10
10
|
* - 每个 server 注册一个工具分组 `mcp:<server-id>`
|
|
11
11
|
* - 激活关闭时断开所有 client 连接(lifecycle.onDispose)
|
|
12
12
|
* - 档位按 server 的 visibility 配置(默认 auto,按工具注解分档)
|
|
13
|
+
* - 连不上的 server 发一条 error 提示(WebUI 的「需要处理」与插件详情),提示归属这次激活:改好配置重载后撤回
|
|
13
14
|
*/
|
|
14
15
|
import { hostConfig as hostConfigService } from '@aalis/api-host-config';
|
|
15
|
-
import { tools as toolsService, wrapUntrustedContent } from '@aalis/api-tools';
|
|
16
|
-
import {
|
|
16
|
+
import { takenBackgroundParams, tools as toolsService, wrapUntrustedContent } from '@aalis/api-tools';
|
|
17
|
+
import { webuiServer } from '@aalis/api-webui';
|
|
18
|
+
import { config as configService, definePlugin, lifecycle as lifecycleService, logger as loggerService, optional, } from '@aalis/core';
|
|
19
|
+
import { defineConfig, parseConfig } from '@aalis/schema-config';
|
|
17
20
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
18
21
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
19
22
|
const PLUGIN_NAME = '@aalis/plugin-mcp-client';
|
|
20
|
-
|
|
23
|
+
/** setTimeout 能表示的最长延时(毫秒),工具调用的请求超时取它 */
|
|
24
|
+
const MAX_TIMEOUT_MS = 2_147_483_647;
|
|
25
|
+
const configSchema = defineConfig({
|
|
21
26
|
servers: {
|
|
22
27
|
type: 'array',
|
|
23
28
|
label: 'MCP 服务器列表',
|
|
@@ -32,26 +37,33 @@ const configSchema = {
|
|
|
32
37
|
command: {
|
|
33
38
|
type: 'string',
|
|
34
39
|
label: '可执行命令',
|
|
35
|
-
description: '
|
|
40
|
+
description: '命令名(如 npx / node / python,按 PATH 查找)或绝对路径。',
|
|
36
41
|
required: true,
|
|
42
|
+
format: 'executable',
|
|
43
|
+
onInvalid: 'error',
|
|
37
44
|
},
|
|
38
45
|
args: {
|
|
39
46
|
type: 'list',
|
|
40
47
|
label: '命令参数',
|
|
41
|
-
description: '
|
|
48
|
+
description: '按顺序传给命令的参数列表,每项一个参数(可含空格)。参数里的文件路径请写绝对路径。',
|
|
42
49
|
default: [],
|
|
50
|
+
onInvalid: 'error',
|
|
43
51
|
},
|
|
44
52
|
env: {
|
|
45
53
|
type: 'map',
|
|
46
54
|
label: '环境变量',
|
|
47
|
-
description: '额外传给子进程的环境变量(KEY → VALUE
|
|
55
|
+
description: '额外传给子进程的环境变量(KEY → VALUE)。整份作为一个密钥存进 secrets.yaml,WebUI 不回显,改时整份重填。' +
|
|
56
|
+
'token 等凭据放这里,不要放进命令参数(参数会写进日志)。',
|
|
48
57
|
default: {},
|
|
58
|
+
onInvalid: 'error',
|
|
59
|
+
secret: true,
|
|
49
60
|
},
|
|
50
61
|
enabled: {
|
|
51
62
|
type: 'boolean',
|
|
52
63
|
label: '启用',
|
|
53
64
|
description: '关闭可临时跳过该 server 而不删除整条配置。',
|
|
54
65
|
default: true,
|
|
66
|
+
onInvalid: 'error',
|
|
55
67
|
},
|
|
56
68
|
visibility: {
|
|
57
69
|
type: 'select',
|
|
@@ -59,6 +71,7 @@ const configSchema = {
|
|
|
59
71
|
description: '该 server 全部工具的档位。auto=按工具注解分档:自称只读→sensitive(等级 1),' +
|
|
60
72
|
'有破坏提示或未声明→restricted(等级 2)。public 恢复等级 0 全开(0.x 旧默认)。',
|
|
61
73
|
default: 'auto',
|
|
74
|
+
onInvalid: 'error',
|
|
62
75
|
options: [
|
|
63
76
|
{ label: 'auto(按注解分档)', value: 'auto' },
|
|
64
77
|
{ label: 'public(等级 0 全开)', value: 'public' },
|
|
@@ -69,7 +82,7 @@ const configSchema = {
|
|
|
69
82
|
},
|
|
70
83
|
default: [],
|
|
71
84
|
},
|
|
72
|
-
};
|
|
85
|
+
});
|
|
73
86
|
/**
|
|
74
87
|
* 从 MCP 工具注解推导默认档位(用户裁定 2026-08-23:按"是否可能破坏"分档):
|
|
75
88
|
* - 自称只读且无破坏提示 → `risk:'sensitive'`(等级 1,挡 level-0);
|
|
@@ -92,20 +105,20 @@ export function deriveMcpToolPolicy(annotations, serverTier) {
|
|
|
92
105
|
return { visibility: 'restricted' };
|
|
93
106
|
}
|
|
94
107
|
async function run(caps) {
|
|
95
|
-
const
|
|
96
|
-
const servers =
|
|
97
|
-
.map(
|
|
108
|
+
const cfg = parseConfig(configSchema, caps.config.use, caps.logger.use);
|
|
109
|
+
const servers = cfg.servers
|
|
110
|
+
.map(s => normalizeServerSpec(s, caps.logger.use))
|
|
98
111
|
.filter((s) => s !== undefined);
|
|
99
112
|
if (servers.length === 0) {
|
|
100
|
-
caps.logger.info('未配置任何 MCP server,仅注册元数据工具');
|
|
101
|
-
registerSelfServiceTools(caps);
|
|
113
|
+
caps.logger.use.info('未配置任何 MCP server,仅注册元数据工具');
|
|
114
|
+
registerSelfServiceTools(caps, servers);
|
|
102
115
|
return;
|
|
103
116
|
}
|
|
104
117
|
// 注册分组:每个 enabled server 一个分组,让平台可按需启用
|
|
105
118
|
for (const spec of servers) {
|
|
106
119
|
if (spec.enabled === false)
|
|
107
120
|
continue;
|
|
108
|
-
caps.tools.registerGroup({
|
|
121
|
+
caps.tools.use.registerGroup({
|
|
109
122
|
name: `mcp:${spec.id}`,
|
|
110
123
|
label: `MCP / ${spec.id}`,
|
|
111
124
|
description: `通过 plugin-mcp-client 桥接的远端 MCP server "${spec.id}"`,
|
|
@@ -115,28 +128,36 @@ async function run(caps) {
|
|
|
115
128
|
await Promise.all(servers
|
|
116
129
|
.filter(s => s.enabled !== false)
|
|
117
130
|
.map(spec => connectServer(caps, spec).catch(err => {
|
|
118
|
-
if (caps.lifecycle.signal.aborted)
|
|
131
|
+
if (caps.lifecycle.use.signal.aborted)
|
|
119
132
|
return;
|
|
120
|
-
|
|
133
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
134
|
+
caps.logger.use.error(`连接 MCP server "${spec.id}" 失败: ${reason}`);
|
|
135
|
+
caps.webui.use.notify({
|
|
136
|
+
id: `connect:${spec.id}`,
|
|
137
|
+
level: 'error',
|
|
138
|
+
title: `MCP 服务器「${spec.id}」连不上`,
|
|
139
|
+
detail: `检查这台服务器的 command、args 与 env(它要的环境变量),改好后保存配置即重连。原因:${reason}`,
|
|
140
|
+
open: 'config',
|
|
141
|
+
});
|
|
121
142
|
})));
|
|
122
|
-
caps.lifecycle.signal.throwIfAborted();
|
|
143
|
+
caps.lifecycle.use.signal.throwIfAborted();
|
|
123
144
|
// 注册 agent 自服务工具:只读列表 + toggle 已配置 server 的启用开关。
|
|
124
145
|
// 故意不提供「新增 server」工具——那等价于让 agent 任意 spawn 子进程,授权风险过大。
|
|
125
146
|
// 若要新增 server,应在 WebUI / yaml 手工配置。
|
|
126
|
-
registerSelfServiceTools(caps);
|
|
147
|
+
registerSelfServiceTools(caps, servers);
|
|
127
148
|
}
|
|
128
149
|
/**
|
|
129
150
|
* 在 ToolService 中注册 mcp_list_servers / mcp_set_server_enabled 两个 agent 自服务工具。
|
|
130
151
|
* 二者都属于 `mcp:_meta` 分组,便于平台按需开放。
|
|
131
152
|
*/
|
|
132
|
-
function registerSelfServiceTools(caps) {
|
|
153
|
+
function registerSelfServiceTools(caps, configured) {
|
|
133
154
|
const { tools } = caps;
|
|
134
|
-
tools.registerGroup({
|
|
155
|
+
tools.use.registerGroup({
|
|
135
156
|
name: 'mcp:_meta',
|
|
136
157
|
label: 'MCP / 元数据',
|
|
137
158
|
description: '让 agent 列出和切换已配置的 MCP server(不能新增/删除条目)。',
|
|
138
159
|
});
|
|
139
|
-
tools.register({
|
|
160
|
+
tools.use.register({
|
|
140
161
|
definition: {
|
|
141
162
|
type: 'function',
|
|
142
163
|
function: {
|
|
@@ -148,22 +169,18 @@ function registerSelfServiceTools(caps) {
|
|
|
148
169
|
groups: ['mcp:_meta'],
|
|
149
170
|
visibility: 'public',
|
|
150
171
|
handler: async () => {
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
// \u6863\u4f4d\u662f\u6838\u5fc3\u5b89\u5168\u65cb\u94ae\uff0c\u5217\u8868\u987b\u53ef\u89c1\uff08\u53ea\u8bfb\u56de\u663e\uff0c\u4e0d\u542b env/args \u7b49\u654f\u611f\u9879\uff09
|
|
160
|
-
visibility: typeof r.visibility === 'string' ? r.visibility : 'auto',
|
|
161
|
-
};
|
|
162
|
-
});
|
|
172
|
+
const list = configured.map((s, i) => ({
|
|
173
|
+
index: i,
|
|
174
|
+
id: s.id,
|
|
175
|
+
command: s.command,
|
|
176
|
+
enabled: s.enabled,
|
|
177
|
+
// 档位是核心安全旋钮,列表须可见(只读回显,不含 env/args 等敏感项)
|
|
178
|
+
visibility: s.visibility,
|
|
179
|
+
}));
|
|
163
180
|
return JSON.stringify(list, null, 2);
|
|
164
181
|
},
|
|
165
182
|
});
|
|
166
|
-
tools.register({
|
|
183
|
+
tools.use.register({
|
|
167
184
|
definition: {
|
|
168
185
|
type: 'function',
|
|
169
186
|
function: {
|
|
@@ -185,19 +202,25 @@ function registerSelfServiceTools(caps) {
|
|
|
185
202
|
visibility: 'restricted',
|
|
186
203
|
handler: async (args) => {
|
|
187
204
|
const id = typeof args.id === 'string' ? args.id : '';
|
|
188
|
-
const enabled = args.enabled === true;
|
|
189
205
|
if (!id)
|
|
190
206
|
return '失败:参数 id 必填';
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const
|
|
194
|
-
if (!
|
|
195
|
-
return
|
|
196
|
-
|
|
207
|
+
if (typeof args.enabled !== 'boolean')
|
|
208
|
+
return '失败:参数 enabled 必须是布尔值';
|
|
209
|
+
const enabled = args.enabled;
|
|
210
|
+
if (!configured.some(s => s.id === id))
|
|
211
|
+
return `失败:没有 id="${id}" 的 server,请先用 mcp_list_servers 查看`;
|
|
212
|
+
// 没有配置文档就不动运行态:改了却存不下,重启后会悄悄回退
|
|
213
|
+
if (!caps.hostConfig.present)
|
|
214
|
+
return '失败:host-config 服务不可用';
|
|
215
|
+
const doc = caps.hostConfig.use;
|
|
216
|
+
// 以配置文档为底改写:解析后的配置补了默认值、丢了坏值,以它为底会把这些永久写进配置文件;
|
|
217
|
+
// 文档里的 env 是密钥引用,原样交回即保持原值
|
|
218
|
+
const current = doc.getPluginConfig(PLUGIN_NAME);
|
|
197
219
|
const servers = Array.isArray(current.servers) ? [...current.servers] : [];
|
|
198
220
|
const idx = servers.findIndex(s => {
|
|
199
|
-
const
|
|
200
|
-
|
|
221
|
+
const raw = s?.id;
|
|
222
|
+
// 与解析同一口径:不加引号的数字 id 按字符串认,mcp_list_servers 列出的也是字符串
|
|
223
|
+
return ((typeof raw === 'string' || (typeof raw === 'number' && Number.isFinite(raw))) && String(raw).trim() === id);
|
|
201
224
|
});
|
|
202
225
|
if (idx < 0)
|
|
203
226
|
return `失败:没有 id="${id}" 的 server,请先用 mcp_list_servers 查看`;
|
|
@@ -207,16 +230,13 @@ function registerSelfServiceTools(caps) {
|
|
|
207
230
|
}
|
|
208
231
|
servers[idx] = { ...before, enabled };
|
|
209
232
|
const next = { ...current, servers };
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
doc.setPluginConfig(PLUGIN_NAME, next);
|
|
233
|
+
// 运行态、文档与落盘由宿主一步完成
|
|
234
|
+
const result = await doc.applyPluginConfig(PLUGIN_NAME, next);
|
|
235
|
+
if (result.status === 'refused')
|
|
236
|
+
return '失败:插件当前不接受配置更新(停机中或正在卸载)';
|
|
215
237
|
// 落盘失败时运行态已经切换、插件已在 bounce:如实说明,别报成什么都没发生(save 自己记过日志)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
catch (err) {
|
|
238
|
+
if (result.saveError !== undefined) {
|
|
239
|
+
const err = result.saveError;
|
|
220
240
|
return (`已将 server "${id}" 设置为 enabled=${enabled}(运行态已生效,插件会 bounce);` +
|
|
221
241
|
`写入配置文件失败:${err instanceof Error ? err.message : String(err)}。配置文件里仍是原值,重启或配置重新载入后可能回退`);
|
|
222
242
|
}
|
|
@@ -225,55 +245,23 @@ function registerSelfServiceTools(caps) {
|
|
|
225
245
|
});
|
|
226
246
|
}
|
|
227
247
|
/**
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
* 旧版 WebUI 存下的 args / env 多行文本不再解析:按行、按空白切分会拆坏带空格的参数,
|
|
231
|
-
* 换成列表又会悄悄改变含义,所以要求用户改写,而不是猜。
|
|
248
|
+
* 解析之后的规范化:id 去掉首尾空白,只剩空白的条目跳过并告警(只跳这一条,其它 server 照常)。
|
|
249
|
+
* command 声明了 format,parseConfig 已去掉首尾空白,只有空白的按缺失丢掉该条;args 原样保留(空字符串也是合法的独立参数)。
|
|
232
250
|
*/
|
|
233
|
-
function normalizeServerSpec(
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
const r = raw;
|
|
239
|
-
const id = typeof r.id === 'string' ? r.id.trim() : '';
|
|
240
|
-
const command = typeof r.command === 'string' ? r.command.trim() : '';
|
|
241
|
-
if (!id || !command) {
|
|
242
|
-
logger.warn(`servers[${index}] 缺少 id 或 command,跳过`);
|
|
243
|
-
return undefined;
|
|
244
|
-
}
|
|
245
|
-
let args;
|
|
246
|
-
if (Array.isArray(r.args)) {
|
|
247
|
-
args = r.args.map(x => String(x)).filter(Boolean);
|
|
248
|
-
}
|
|
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;
|
|
253
|
-
}
|
|
254
|
-
let env;
|
|
255
|
-
if (r.env && typeof r.env === 'object' && !Array.isArray(r.env)) {
|
|
256
|
-
env = Object.fromEntries(Object.entries(r.env).map(([k, v]) => [k, String(v)]));
|
|
257
|
-
}
|
|
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" }');
|
|
251
|
+
function normalizeServerSpec(spec, logger) {
|
|
252
|
+
const id = spec.id.trim();
|
|
253
|
+
if (!id) {
|
|
254
|
+
// 解析丢掉的条目不占下标,按下标报会对不上配置文件,所以报 command 帮助定位
|
|
255
|
+
logger.warn(`servers 中有一条 id 只有空白(command「${spec.command}」),跳过`);
|
|
261
256
|
return undefined;
|
|
262
257
|
}
|
|
263
|
-
|
|
264
|
-
r.visibility === 'public' ||
|
|
265
|
-
r.visibility === 'sensitive' ||
|
|
266
|
-
r.visibility === 'auto'
|
|
267
|
-
? r.visibility
|
|
268
|
-
: undefined;
|
|
269
|
-
const enabled = r.enabled !== false;
|
|
270
|
-
return { id, command, args, env, enabled, visibility };
|
|
258
|
+
return { ...spec, id };
|
|
271
259
|
}
|
|
272
260
|
async function connectServer(caps, spec) {
|
|
273
|
-
const { signal } = caps.lifecycle;
|
|
261
|
+
const { signal } = caps.lifecycle.use;
|
|
274
262
|
const transport = new StdioClientTransport({
|
|
275
263
|
command: spec.command,
|
|
276
|
-
args: spec.args
|
|
264
|
+
args: spec.args,
|
|
277
265
|
env: spec.env,
|
|
278
266
|
});
|
|
279
267
|
const client = new Client({ name: 'aalis-mcp-client', version: '0.1.0' }, { capabilities: {} });
|
|
@@ -284,18 +272,18 @@ async function connectServer(caps, spec) {
|
|
|
284
272
|
signal.addEventListener('abort', onAbort, { once: true });
|
|
285
273
|
try {
|
|
286
274
|
await client.connect(transport, { signal: bridge.signal });
|
|
287
|
-
caps.logger.info(`MCP server "${spec.id}" 已连接 (${spec.command} ${
|
|
275
|
+
caps.logger.use.info(`MCP server "${spec.id}" 已连接 (${spec.command} ${spec.args.join(' ')})`);
|
|
288
276
|
// 连接生命周期:激活关闭时关闭。握手跨 await,关闭可能已开始——迟到的清理仍会被执行
|
|
289
|
-
caps.lifecycle.onDispose(async () => {
|
|
277
|
+
caps.lifecycle.use.onDispose(async () => {
|
|
290
278
|
try {
|
|
291
279
|
await client.close();
|
|
292
|
-
caps.logger.info(`MCP server "${spec.id}" 已关闭`);
|
|
280
|
+
caps.logger.use.info(`MCP server "${spec.id}" 已关闭`);
|
|
293
281
|
}
|
|
294
282
|
catch (err) {
|
|
295
|
-
caps.logger.debug(`关闭 MCP server "${spec.id}" 抛错(已忽略):`, err);
|
|
283
|
+
caps.logger.use.debug(`关闭 MCP server "${spec.id}" 抛错(已忽略):`, err);
|
|
296
284
|
}
|
|
297
285
|
});
|
|
298
|
-
await bridgeClientToTools(caps, client, spec, bridge.signal);
|
|
286
|
+
await bridgeClientToTools({ tools: caps.tools.use, logger: caps.logger.use }, client, spec, bridge.signal);
|
|
299
287
|
}
|
|
300
288
|
finally {
|
|
301
289
|
signal.removeEventListener('abort', onAbort);
|
|
@@ -303,7 +291,7 @@ async function connectServer(caps, spec) {
|
|
|
303
291
|
}
|
|
304
292
|
/**
|
|
305
293
|
* 把一个已连接的 MCP Client 上暴露的所有工具桥接进 Aalis ToolService。
|
|
306
|
-
* 导出以便集成测试直接传入 InMemoryTransport 配对的 client
|
|
294
|
+
* 导出以便集成测试直接传入 InMemoryTransport 配对的 client;spec 只用到 id 与 visibility(缺省按 auto)。
|
|
307
295
|
*/
|
|
308
296
|
export async function bridgeClientToTools(caps, client, spec, signal) {
|
|
309
297
|
const { tools: mcpTools } = (await client.listTools(undefined, { signal }));
|
|
@@ -311,6 +299,13 @@ export async function bridgeClientToTools(caps, client, spec, signal) {
|
|
|
311
299
|
for (const t of mcpTools) {
|
|
312
300
|
const toolName = sanitizeToolName(`mcp_${spec.id}_${t.name}`);
|
|
313
301
|
const parameters = normalizeParameters(t.inputSchema);
|
|
302
|
+
// 远端工具多久结束不可知:等多久由执行器的让出时限管,停只认执行器给这次调用的中止信号。参数表里已有执行器
|
|
303
|
+
// 参数名的,执行器不会让出,不声明可转后台,请求超时照 SDK 默认(60 秒)
|
|
304
|
+
const taken = takenBackgroundParams(parameters);
|
|
305
|
+
if (taken.length > 0) {
|
|
306
|
+
caps.logger.warn(`MCP 工具 ${toolName} 的参数表里已有 ${taken.join('、')},不转后台,请求超时照 SDK 默认`);
|
|
307
|
+
}
|
|
308
|
+
const yieldable = taken.length === 0;
|
|
314
309
|
const definition = {
|
|
315
310
|
type: 'function',
|
|
316
311
|
function: {
|
|
@@ -323,17 +318,20 @@ export async function bridgeClientToTools(caps, client, spec, signal) {
|
|
|
323
318
|
definition,
|
|
324
319
|
groups: [`mcp:${spec.id}`],
|
|
325
320
|
...deriveMcpToolPolicy(t.annotations, spec.visibility),
|
|
326
|
-
|
|
321
|
+
...(yieldable ? { background: {} } : {}),
|
|
322
|
+
handler: async (args, ctx) => {
|
|
327
323
|
try {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
324
|
+
// 中止时 SDK 向服务端发 notifications/cancelled。可转后台的请求超时取 setTimeout 能表示的最大值:
|
|
325
|
+
// SDK 默认的 60 秒会把长任务截断,传 Infinity 又会被 Node 当成 1 毫秒
|
|
326
|
+
const result = await client.callTool({ name: t.name, arguments: args }, undefined, {
|
|
327
|
+
signal: ctx.signal,
|
|
328
|
+
...(yieldable ? { timeout: MAX_TIMEOUT_MS } : {}),
|
|
331
329
|
});
|
|
332
330
|
return formatToolResult(result, `${spec.id}/${t.name}`);
|
|
333
331
|
}
|
|
334
332
|
catch (err) {
|
|
335
333
|
const msg = err instanceof Error ? err.message : String(err);
|
|
336
|
-
return `MCP 调用 ${spec.id}/${t.name} 失败: ${msg}
|
|
334
|
+
return JSON.stringify({ error: `MCP 调用 ${spec.id}/${t.name} 失败: ${msg}` });
|
|
337
335
|
}
|
|
338
336
|
},
|
|
339
337
|
});
|
|
@@ -383,8 +381,10 @@ function formatToolResult(result, source) {
|
|
|
383
381
|
});
|
|
384
382
|
const body = parts.join('\n');
|
|
385
383
|
// MCP server 可信不等于它回传的内容可信——抓取型 server(fetch/search)的返回体
|
|
386
|
-
// 就是外部内容,同 http_request
|
|
387
|
-
return r.isError
|
|
384
|
+
// 就是外部内容,同 http_request 一样套不可信边界。错误信息不是抓取内容,不套,按工具报失败的约定放进 error。
|
|
385
|
+
return r.isError
|
|
386
|
+
? JSON.stringify({ error: `MCP 工具返回错误:\n${body}` })
|
|
387
|
+
: wrapUntrustedContent(body, `MCP ${source}`);
|
|
388
388
|
}
|
|
389
389
|
export default definePlugin({
|
|
390
390
|
name: PLUGIN_NAME,
|
|
@@ -395,8 +395,8 @@ export default definePlugin({
|
|
|
395
395
|
logger: loggerService,
|
|
396
396
|
lifecycle: lifecycleService,
|
|
397
397
|
config: configService,
|
|
398
|
-
plugins: optional(pluginsService),
|
|
399
398
|
hostConfig: optional(hostConfigService),
|
|
399
|
+
webui: optional(webuiServer),
|
|
400
400
|
},
|
|
401
401
|
configSchema,
|
|
402
402
|
apply: run,
|
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.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,18 +24,19 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aalis/schema-config": ">=0.
|
|
28
|
-
"@aalis/api-tools": ">=0.
|
|
27
|
+
"@aalis/schema-config": ">=0.15.0 <1.0.0",
|
|
28
|
+
"@aalis/api-tools": ">=0.11.0 <1.0.0",
|
|
29
29
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
30
|
-
"@aalis/api-host-config": ">=0.
|
|
30
|
+
"@aalis/api-host-config": ">=0.2.0 <1.0.0",
|
|
31
|
+
"@aalis/api-webui": ">=0.12.0 <1.0.0"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@types/node": "^22.0.0",
|
|
34
35
|
"typescript": "^5.7.0",
|
|
35
|
-
"@aalis/core": "0.
|
|
36
|
+
"@aalis/core": "0.20.0"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|
|
38
|
-
"@aalis/core": ">=0.
|
|
39
|
+
"@aalis/core": ">=0.20.0 <1.0.0"
|
|
39
40
|
},
|
|
40
41
|
"aalis": {
|
|
41
42
|
"service": {
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
],
|
|
48
49
|
"optional": [
|
|
49
50
|
"host-config",
|
|
50
|
-
"
|
|
51
|
+
"webui-server"
|
|
51
52
|
]
|
|
52
53
|
}
|
|
53
54
|
},
|