@aalis/plugin-mcp-server 0.10.1 → 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 +8 -8
- package/dist/index.d.ts +9 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -38
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -16,21 +16,21 @@ HTTP + SSE。Aalis 是常驻进程,stdio 已被日志占用,因此不走 Ant
|
|
|
16
16
|
- 默认 `bind: 127.0.0.1`(仅本机访问)—— **不要随便暴露到公网**
|
|
17
17
|
- 默认 `allowRestricted: false`,可见性为 `restricted` 的工具一律拒绝
|
|
18
18
|
- `ListTools` 与 `CallTool` 两端都过滤,防止 client 越界
|
|
19
|
-
- `toolGroups` 白名单:仅暴露指定分组(空数组或 `'*'` = 全部允许,但仍受 `allowRestricted` 约束)
|
|
20
|
-
-
|
|
19
|
+
- `toolGroups` 白名单:仅暴露指定分组(空数组或 `['*']` = 全部允许,但仍受 `allowRestricted` 约束)
|
|
20
|
+
- 必须是分组名的字符串数组;非数组、含非字符串元素(包括旧版 WebUI 存下的 `[{ name }]`)时记录错误且不启动
|
|
21
|
+
- 工具执行仍走 Aalis 的 `ToolService.execute`,因此 authority 注入的 ExecutionGuard 同样生效
|
|
21
22
|
|
|
22
23
|
## 配置示例
|
|
23
24
|
|
|
24
25
|
```yaml
|
|
25
26
|
plugins:
|
|
26
27
|
"@aalis/plugin-mcp-server":
|
|
27
|
-
enabled: true
|
|
28
28
|
port: 39870
|
|
29
29
|
bind: 127.0.0.1
|
|
30
30
|
toolGroups:
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
31
|
+
- search
|
|
32
|
+
- system
|
|
33
|
+
allowRestricted: false
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
Claude Desktop 客户端配置(仅供参考;MCP client 配置因 host app 而异):
|
|
@@ -48,8 +48,8 @@ Claude Desktop 客户端配置(仅供参考;MCP client 配置因 host app
|
|
|
48
48
|
|
|
49
49
|
## 依赖
|
|
50
50
|
|
|
51
|
-
- `@modelcontextprotocol/sdk` ^1.0
|
|
52
|
-
-
|
|
51
|
+
- `@modelcontextprotocol/sdk` ^1.29.0
|
|
52
|
+
- required 依赖:`tools`(在插件定义的 `uses` 里声明)
|
|
53
53
|
|
|
54
54
|
## 工具调用上下文
|
|
55
55
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { Context } from '@aalis/core';
|
|
3
|
-
import type { ConfigSchema } from '@aalis/schema-config';
|
|
1
|
+
import { type ToolService } from '@aalis/api-tools';
|
|
4
2
|
import { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js';
|
|
5
3
|
interface Config {
|
|
6
4
|
/** 监听端口(必须 1-65535)。要暂停服务请在插件列表里禁用本插件。 */
|
|
@@ -12,19 +10,17 @@ interface Config {
|
|
|
12
10
|
/** 是否允许暴露 visibility='restricted' 的工具 */
|
|
13
11
|
allowRestricted: boolean;
|
|
14
12
|
}
|
|
15
|
-
export declare const name = "@aalis/plugin-mcp-server";
|
|
16
|
-
export declare const displayName = "MCP \u670D\u52A1\u7AEF";
|
|
17
|
-
export declare const subsystem = "tools";
|
|
18
|
-
export declare const inject: {
|
|
19
|
-
required: string[];
|
|
20
|
-
};
|
|
21
|
-
export declare const configSchema: ConfigSchema;
|
|
22
|
-
export declare function apply(ctx: Context, rawConfig: Record<string, unknown>): Promise<void>;
|
|
23
13
|
/**
|
|
24
14
|
* 构造一个 MCP server 实例并装好 ListTools / CallTool 路由。
|
|
25
15
|
* 不绑定 transport;调用方负责 `server.connect(transport)`。
|
|
26
16
|
* 导出以便集成测试通过 InMemoryTransport 直连,避开 HTTP/SSE 层。
|
|
27
17
|
*/
|
|
28
|
-
export declare function buildMcpServer(
|
|
29
|
-
|
|
18
|
+
export declare function buildMcpServer(tools: ToolService, config: Config): McpServer;
|
|
19
|
+
declare const _default: import("@aalis/core").PluginDefinition<{
|
|
20
|
+
tools: import("@aalis/core").ServiceDescriptor<ToolService, import("@aalis/api-tools").BoundTools>;
|
|
21
|
+
logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
|
|
22
|
+
lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").LifecycleCap, import("@aalis/core").LifecycleCap>;
|
|
23
|
+
config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
|
|
24
|
+
}>;
|
|
25
|
+
export default _default;
|
|
30
26
|
//# 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":"AAeA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAwB,KAAK,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AAUjG,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAIhF,UAAU,MAAM;IACd,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,yCAAyC;IACzC,eAAe,EAAE,OAAO,CAAC;CAC1B;AAsJD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAmE5E;;;;;;;AAED,wBAOG"}
|
package/dist/index.js
CHANGED
|
@@ -13,15 +13,12 @@
|
|
|
13
13
|
* - config.bind 默认 127.0.0.1(仅本机访问)
|
|
14
14
|
*/
|
|
15
15
|
import { createServer } from 'node:http';
|
|
16
|
-
import {
|
|
16
|
+
import { tools as toolsService } from '@aalis/api-tools';
|
|
17
|
+
import { config as configService, definePlugin, lifecycle as lifecycleService, logger as loggerService, } from '@aalis/core';
|
|
17
18
|
import { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js';
|
|
18
19
|
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
|
19
20
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
20
|
-
|
|
21
|
-
export const displayName = 'MCP 服务端';
|
|
22
|
-
export const subsystem = 'tools';
|
|
23
|
-
export const inject = { required: ['tools'] };
|
|
24
|
-
export const configSchema = {
|
|
21
|
+
const configSchema = {
|
|
25
22
|
port: {
|
|
26
23
|
type: 'number',
|
|
27
24
|
label: '监听端口',
|
|
@@ -33,17 +30,11 @@ export const configSchema = {
|
|
|
33
30
|
},
|
|
34
31
|
bind: { type: 'string', label: '监听地址', default: '127.0.0.1' },
|
|
35
32
|
toolGroups: {
|
|
36
|
-
type: '
|
|
33
|
+
type: 'multiselect',
|
|
37
34
|
label: '允许的工具分组(空=全部,受受限开关约束)',
|
|
38
|
-
description: "
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
type: 'string',
|
|
42
|
-
label: '分组名',
|
|
43
|
-
description: '如 mcp:godot / file / system。',
|
|
44
|
-
required: true,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
35
|
+
description: "空列表或 ['*'] = 暴露所有分组的工具(仍受 allowRestricted 约束)。",
|
|
36
|
+
dynamicOptions: 'toolGroups',
|
|
37
|
+
allowCustom: true,
|
|
47
38
|
default: [],
|
|
48
39
|
},
|
|
49
40
|
allowRestricted: {
|
|
@@ -52,23 +43,25 @@ export const configSchema = {
|
|
|
52
43
|
default: false,
|
|
53
44
|
},
|
|
54
45
|
};
|
|
55
|
-
|
|
46
|
+
const uses = {
|
|
47
|
+
tools: toolsService,
|
|
48
|
+
logger: loggerService,
|
|
49
|
+
lifecycle: lifecycleService,
|
|
50
|
+
config: configService,
|
|
51
|
+
};
|
|
52
|
+
async function run({ tools, logger, lifecycle, config: rawConfig }) {
|
|
56
53
|
const config = rawConfig;
|
|
54
|
+
// 配置非法时抛出、激活失败:实例转入 error,WebUI 与 doctor 直接看得到原因(只记日志的话显示运行中,实际没有监听)
|
|
57
55
|
if (!Number.isInteger(config.port) || config.port <= 0 || config.port > 65535) {
|
|
58
|
-
|
|
59
|
-
return;
|
|
56
|
+
throw new Error(`plugin-mcp-server 端口非法:port=${config.port}。请设置 1-65535 之间的整数;要停服务请在插件列表里禁用本插件。`);
|
|
60
57
|
}
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
ctx.logger.error('tools 服务不可用');
|
|
68
|
-
return;
|
|
58
|
+
// 空数组 = 全部暴露,所以任何认不出的形态都不能退化成空数组(那是 fail-open):
|
|
59
|
+
// 非数组、含非字符串元素(包括旧版 WebUI 存下的 [{ name }])一律报错不启动。
|
|
60
|
+
const toolGroups = config.toolGroups;
|
|
61
|
+
if (!Array.isArray(toolGroups) || toolGroups.some(g => typeof g !== 'string')) {
|
|
62
|
+
throw new Error(`plugin-mcp-server toolGroups 非法:必须是分组名的字符串数组(如 ['search', 'system'];全部暴露写 [] 或 ['*']),` +
|
|
63
|
+
`当前值 ${JSON.stringify(toolGroups)}。旧版 WebUI 存下的 [{ name: ... }] 请改写为字符串数组。`);
|
|
69
64
|
}
|
|
70
|
-
// handle 是函数声明(可提升),TS 不把上面的窄化带进去;固化成非可选类型的常量
|
|
71
|
-
const toolService = tools;
|
|
72
65
|
// SSE 同时只支持一个活跃连接(标准约束);新连接挤掉旧的
|
|
73
66
|
let currentTransport;
|
|
74
67
|
let mcpServer;
|
|
@@ -82,7 +75,7 @@ export async function apply(ctx, rawConfig) {
|
|
|
82
75
|
catch (err) {
|
|
83
76
|
// 回调是 async 且这里是它唯一的出口:漏一个异常就是一条 unhandledRejection,
|
|
84
77
|
// 而 runtime 的处理器会判致命并结束进程(webui 走 express 自带兜底,这条没有)。
|
|
85
|
-
|
|
78
|
+
logger.warn(`MCP 请求处理失败: ${err instanceof Error ? err.message : String(err)}`);
|
|
86
79
|
if (!res.headersSent)
|
|
87
80
|
res.writeHead(500, { 'content-type': 'application/json' });
|
|
88
81
|
res.end(JSON.stringify({ error: 'internal' }));
|
|
@@ -90,6 +83,14 @@ export async function apply(ctx, rawConfig) {
|
|
|
90
83
|
});
|
|
91
84
|
async function handle(req, res, url) {
|
|
92
85
|
if (req.method === 'GET' && url.pathname === '/sse') {
|
|
86
|
+
// 每条新连接按当前提供者构建:工具服务换人之后连上来的 client 直接用新实例。
|
|
87
|
+
// 提供者短暂缺席(换人的空档)时不建会话,让 client 重连。
|
|
88
|
+
const toolService = tools.current;
|
|
89
|
+
if (!toolService) {
|
|
90
|
+
res.writeHead(503, { 'content-type': 'application/json' });
|
|
91
|
+
res.end(JSON.stringify({ error: 'tools service unavailable' }));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
93
94
|
// 新 SSE 连接
|
|
94
95
|
if (currentTransport) {
|
|
95
96
|
try {
|
|
@@ -101,14 +102,14 @@ export async function apply(ctx, rawConfig) {
|
|
|
101
102
|
}
|
|
102
103
|
const transport = new SSEServerTransport('/messages', res);
|
|
103
104
|
currentTransport = transport;
|
|
104
|
-
mcpServer = buildMcpServer(
|
|
105
|
+
mcpServer = buildMcpServer(toolService, config);
|
|
105
106
|
await mcpServer.connect(transport);
|
|
106
|
-
|
|
107
|
+
logger.info('MCP client 已通过 SSE 连接');
|
|
107
108
|
req.on('close', () => {
|
|
108
109
|
if (currentTransport === transport) {
|
|
109
110
|
currentTransport = undefined;
|
|
110
111
|
mcpServer = undefined;
|
|
111
|
-
|
|
112
|
+
logger.info('MCP client 已断开');
|
|
112
113
|
}
|
|
113
114
|
});
|
|
114
115
|
return;
|
|
@@ -132,8 +133,8 @@ export async function apply(ctx, rawConfig) {
|
|
|
132
133
|
resolve();
|
|
133
134
|
});
|
|
134
135
|
});
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
logger.info(`MCP server 监听 http://${config.bind}:${config.port}/sse (allowRestricted=${config.allowRestricted}, groups=${config.toolGroups.length === 0 ? '*' : config.toolGroups.join(',')})`);
|
|
137
|
+
lifecycle.onDispose(async () => {
|
|
137
138
|
if (currentTransport) {
|
|
138
139
|
try {
|
|
139
140
|
await currentTransport.close();
|
|
@@ -143,7 +144,7 @@ export async function apply(ctx, rawConfig) {
|
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
await new Promise(resolve => httpServer.close(() => resolve()));
|
|
146
|
-
|
|
147
|
+
logger.info('MCP server 已停止');
|
|
147
148
|
});
|
|
148
149
|
}
|
|
149
150
|
/**
|
|
@@ -151,7 +152,7 @@ export async function apply(ctx, rawConfig) {
|
|
|
151
152
|
* 不绑定 transport;调用方负责 `server.connect(transport)`。
|
|
152
153
|
* 导出以便集成测试通过 InMemoryTransport 直连,避开 HTTP/SSE 层。
|
|
153
154
|
*/
|
|
154
|
-
export function buildMcpServer(
|
|
155
|
+
export function buildMcpServer(tools, config) {
|
|
155
156
|
const server = new McpServer({ name: 'aalis-mcp-server', version: '0.1.0' }, { capabilities: { tools: {} } });
|
|
156
157
|
// 暴露策略(allowRestricted + toolGroups 白名单):ListTools 与 CallTool 必须共用同一谓词,
|
|
157
158
|
// 否则分组限制只在发现期生效、执行期可被知道工具名的 client 绕过。
|
|
@@ -202,7 +203,7 @@ export function buildMcpServer(_ctx, tools, config) {
|
|
|
202
203
|
platform: 'mcp',
|
|
203
204
|
};
|
|
204
205
|
try {
|
|
205
|
-
const result =
|
|
206
|
+
const result = await tools.execute(toolName, args, callCtx);
|
|
206
207
|
// MCP 侧只透传文本:工具交给主模型看的图(images)是 agent 回合内的载荷,不在此暴露
|
|
207
208
|
return { content: [{ type: 'text', text: result.content }] };
|
|
208
209
|
}
|
|
@@ -213,4 +214,12 @@ export function buildMcpServer(_ctx, tools, config) {
|
|
|
213
214
|
});
|
|
214
215
|
return server;
|
|
215
216
|
}
|
|
217
|
+
export default definePlugin({
|
|
218
|
+
name: '@aalis/plugin-mcp-server',
|
|
219
|
+
displayName: 'MCP 服务端',
|
|
220
|
+
subsystem: 'tools',
|
|
221
|
+
configSchema,
|
|
222
|
+
uses,
|
|
223
|
+
apply: run,
|
|
224
|
+
});
|
|
216
225
|
//# 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":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;
|
|
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-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,21 +24,25 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aalis/schema-config": ">=0.
|
|
28
|
-
"@aalis/api-tools": ">=0.
|
|
29
|
-
"@modelcontextprotocol/sdk": "^1.0
|
|
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
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^22.0.0",
|
|
33
33
|
"typescript": "^5.7.0",
|
|
34
|
-
"@aalis/
|
|
34
|
+
"@aalis/api-webui": "0.11.0",
|
|
35
|
+
"@aalis/core": "0.18.0"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
37
|
-
"@aalis/core": ">=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"
|
|
43
47
|
]
|
|
44
48
|
}
|