mcp-multi-bridge 2.5.0 → 2.6.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/lib/preset.js +25 -3
- package/package.json +4 -1
package/lib/preset.js
CHANGED
|
@@ -16,21 +16,43 @@
|
|
|
16
16
|
import fs from 'node:fs';
|
|
17
17
|
import path from 'node:path';
|
|
18
18
|
import { fileURLToPath } from 'node:url';
|
|
19
|
+
import { createRequire } from 'node:module';
|
|
19
20
|
|
|
20
21
|
const HERE = path.dirname(fileURLToPath(import.meta.url));
|
|
21
22
|
/** 本包位于 <node_modules>/mcp-multi-bridge/lib,往上两层是 node_modules */
|
|
22
23
|
const NODE_MODULES = path.resolve(HERE, '..', '..');
|
|
24
|
+
const require = createRequire(import.meta.url);
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
|
-
* preset
|
|
27
|
+
* preset 目录的查找顺序
|
|
26
28
|
*
|
|
27
29
|
* 1. 环境变量 MCP_BRIDGE_PRESETS —— 自定义目录,或本机没装 login 包时指过去
|
|
28
|
-
* 2.
|
|
30
|
+
* 2. 按模块解析定位已安装的 mcp-multi-login —— 不猜目录层级,
|
|
31
|
+
* npm 提升/嵌套安装都能找到
|
|
32
|
+
* 3. 兄弟目录 mcp-multi-login/presets —— npm 全局安装的常见形态
|
|
33
|
+
* 4. 兄弟目录 mes-login-cli/presets —— 源码工作区(仓库目录名与包名不同)
|
|
34
|
+
*
|
|
35
|
+
* 返回第一个真实存在的目录;都不存在时返回第 3 项,
|
|
36
|
+
* 让调用方的报错里给出「按默认位置找不到」的提示。
|
|
29
37
|
*/
|
|
30
38
|
export function resolvePresetsDir() {
|
|
31
39
|
const env = (process.env.MCP_BRIDGE_PRESETS || '').trim();
|
|
32
40
|
if (env) return env;
|
|
33
|
-
|
|
41
|
+
|
|
42
|
+
const candidates = [];
|
|
43
|
+
try {
|
|
44
|
+
const pkgPath = require.resolve('mcp-multi-login/package.json');
|
|
45
|
+
candidates.push(path.join(path.dirname(pkgPath), 'presets'));
|
|
46
|
+
} catch (e) {
|
|
47
|
+
// login 包未安装(optionalDependencies 被跳过),继续试兄弟目录
|
|
48
|
+
}
|
|
49
|
+
candidates.push(path.join(NODE_MODULES, 'mcp-multi-login', 'presets'));
|
|
50
|
+
candidates.push(path.join(NODE_MODULES, 'mes-login-cli', 'presets'));
|
|
51
|
+
|
|
52
|
+
for (const dir of candidates) {
|
|
53
|
+
if (fs.existsSync(dir)) return dir;
|
|
54
|
+
}
|
|
55
|
+
return candidates[1];
|
|
34
56
|
}
|
|
35
57
|
|
|
36
58
|
/** 列出可用的预设名,目录不存在时返回空数组 */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-multi-bridge",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "多后端 MCP 桥接:把网关后多个后端、多个租户的工具集合并成一个 MCP 服务,凭据由登录 CLI 提供",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -30,5 +30,8 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@modelcontextprotocol/sdk": "^1.20.2"
|
|
33
|
+
},
|
|
34
|
+
"optionalDependencies": {
|
|
35
|
+
"mcp-multi-login": "^3.5.0"
|
|
33
36
|
}
|
|
34
37
|
}
|