@samanhappy/mcphub 0.6.1 → 0.7.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 +40 -18
- package/README.zh.md +40 -17
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/controllers/configController.js +28 -0
- package/dist/controllers/configController.js.map +1 -0
- package/dist/controllers/serverController.js +83 -2
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/db/connection.js +279 -0
- package/dist/db/connection.js.map +1 -0
- package/dist/db/entities/VectorEmbedding.js +62 -0
- package/dist/db/entities/VectorEmbedding.js.map +1 -0
- package/dist/db/entities/index.js +6 -0
- package/dist/db/entities/index.js.map +1 -0
- package/dist/db/index.js +32 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/repositories/BaseRepository.js +58 -0
- package/dist/db/repositories/BaseRepository.js.map +1 -0
- package/dist/db/repositories/VectorEmbeddingRepository.js +173 -0
- package/dist/db/repositories/VectorEmbeddingRepository.js.map +1 -0
- package/dist/db/repositories/index.js +4 -0
- package/dist/db/repositories/index.js.map +1 -0
- package/dist/db/subscribers/VectorEmbeddingSubscriber.js +56 -0
- package/dist/db/subscribers/VectorEmbeddingSubscriber.js.map +1 -0
- package/dist/db/types/postgresVectorType.js +33 -0
- package/dist/db/types/postgresVectorType.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/middlewares/index.js +18 -8
- package/dist/middlewares/index.js.map +1 -1
- package/dist/routes/index.js +13 -9
- package/dist/routes/index.js.map +1 -1
- package/dist/server.js +20 -11
- package/dist/server.js.map +1 -1
- package/dist/services/logService.js +54 -50
- package/dist/services/logService.js.map +1 -1
- package/dist/services/mcpService.js +209 -10
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/sseService.js +17 -10
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/vectorSearchService.js +603 -0
- package/dist/services/vectorSearchService.js.map +1 -0
- package/dist/utils/version.js +23 -0
- package/dist/utils/version.js.map +1 -0
- package/frontend/dist/assets/favicon-DJnZjsC8.ico +0 -0
- package/frontend/dist/assets/index-D9p3VMBc.css +1 -0
- package/frontend/dist/assets/index-D_eNkDvW.js +148 -0
- package/frontend/dist/assets/index-D_eNkDvW.js.map +1 -0
- package/frontend/dist/index.html +3 -3
- package/package.json +15 -7
- package/frontend/dist/assets/favicon-DKeT5aEu.ico +0 -0
- package/frontend/dist/assets/index-2ChivQin.js +0 -148
- package/frontend/dist/assets/index-2ChivQin.js.map +0 -1
- package/frontend/dist/assets/index-DlUYoMya.css +0 -1
package/README.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
# MCPHub:
|
|
1
|
+
# MCPHub: The Unified Hub for Model Context Protocol (MCP) Servers
|
|
2
2
|
|
|
3
3
|
English | [中文版](README.zh.md)
|
|
4
4
|
|
|
5
|
-
MCPHub
|
|
5
|
+
MCPHub makes it easy to manage and scale multiple MCP (Model Context Protocol) servers by organizing them into flexible Streamable HTTP (SSE) endpoints—supporting access to all servers, individual servers, or logical server groups.
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
9
|
## 🚀 Features
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **Broadened MCP Server Support**: Seamlessly integrate any MCP server with minimal configuration.
|
|
12
12
|
- **Centralized Dashboard**: Monitor real-time status and performance metrics from one sleek web UI.
|
|
13
13
|
- **Flexible Protocol Handling**: Full compatibility with both stdio and SSE MCP protocols.
|
|
14
14
|
- **Hot-Swappable Configuration**: Add, remove, or update MCP servers on the fly — no downtime required.
|
|
@@ -18,7 +18,7 @@ MCPHub is a unified management platform that aggregates multiple MCP (Model Cont
|
|
|
18
18
|
|
|
19
19
|
## 🔧 Quick Start
|
|
20
20
|
|
|
21
|
-
###
|
|
21
|
+
### Configuration
|
|
22
22
|
|
|
23
23
|
Create a `mcp_settings.json` file to customize your server settings:
|
|
24
24
|
|
|
@@ -48,23 +48,10 @@ Create a `mcp_settings.json` file to customize your server settings:
|
|
|
48
48
|
"SLACK_TEAM_ID": "your-team-id"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
}
|
|
52
|
-
"users": [
|
|
53
|
-
{
|
|
54
|
-
"username": "admin",
|
|
55
|
-
"password": "$2b$10$Vt7krIvjNgyN67LXqly0uOcTpN0LI55cYRbcKC71pUDAP0nJ7RPa.",
|
|
56
|
-
"isAdmin": true
|
|
57
|
-
}
|
|
58
|
-
]
|
|
51
|
+
}
|
|
59
52
|
}
|
|
60
53
|
```
|
|
61
54
|
|
|
62
|
-
> **Note**: Default credentials are `admin` / `admin123`. Passwords are securely hashed with bcrypt. Generate a new hash with:
|
|
63
|
-
>
|
|
64
|
-
> ```bash
|
|
65
|
-
> npx bcryptjs your-password
|
|
66
|
-
> ```
|
|
67
|
-
|
|
68
55
|
### Docker Deployment
|
|
69
56
|
|
|
70
57
|
**Recommended**: Mount your custom config:
|
|
@@ -109,6 +96,31 @@ This endpoint provides a unified streamable HTTP interface for all your MCP serv
|
|
|
109
96
|
- Easily integrate with various AI clients and tools
|
|
110
97
|
- Use the same endpoint for all servers, simplifying your integration process
|
|
111
98
|
|
|
99
|
+
**Smart Routing (Experimental)**:
|
|
100
|
+
|
|
101
|
+
Smart Routing is MCPHub's intelligent tool discovery system that uses vector semantic search to automatically find the most relevant tools for any given task.
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
http://localhost:3000/mcp/$smart
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**How it Works:**
|
|
108
|
+
|
|
109
|
+
1. **Tool Indexing**: All MCP tools are automatically converted to vector embeddings and stored in PostgreSQL with pgvector
|
|
110
|
+
2. **Semantic Search**: User queries are converted to vectors and matched against tool embeddings using cosine similarity
|
|
111
|
+
3. **Intelligent Filtering**: Dynamic thresholds ensure relevant results without noise
|
|
112
|
+
4. **Precise Execution**: Found tools can be directly executed with proper parameter validation
|
|
113
|
+
|
|
114
|
+
**Setup Requirements:**
|
|
115
|
+
|
|
116
|
+

|
|
117
|
+
|
|
118
|
+
To enable Smart Routing, you need:
|
|
119
|
+
|
|
120
|
+
- PostgreSQL with pgvector extension
|
|
121
|
+
- OpenAI API key (or compatible embedding service)
|
|
122
|
+
- Enable Smart Routing in MCPHub settings
|
|
123
|
+
|
|
112
124
|
**Group-Specific Endpoints (Recommended)**:
|
|
113
125
|
|
|
114
126
|

|
|
@@ -144,6 +156,12 @@ Connect AI clients (e.g., Claude Desktop, Cursor, DeepChat, etc.) via:
|
|
|
144
156
|
http://localhost:3000/sse
|
|
145
157
|
```
|
|
146
158
|
|
|
159
|
+
For smart routing, use:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
http://localhost:3000/sse/$smart
|
|
163
|
+
```
|
|
164
|
+
|
|
147
165
|
For targeted access to specific server groups, use the group-based SSE endpoint:
|
|
148
166
|
|
|
149
167
|
```
|
|
@@ -203,6 +221,10 @@ If you like this project, maybe you can consider:
|
|
|
203
221
|
|
|
204
222
|
[](https://ko-fi.com/samanhappy)
|
|
205
223
|
|
|
224
|
+
## 🌟 Star History
|
|
225
|
+
|
|
226
|
+
[](https://www.star-history.com/#samanhappy/mcphub&Date)
|
|
227
|
+
|
|
206
228
|
## 📄 License
|
|
207
229
|
|
|
208
230
|
Licensed under the [Apache 2.0 License](LICENSE).
|
package/README.zh.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
[English Version](README.md) | 中文版
|
|
4
4
|
|
|
5
|
-
MCPHub
|
|
5
|
+
MCPHub 通过将多个 MCP(Model Context Protocol)服务器组织为灵活的流式 HTTP(SSE)端点,简化了管理与扩展工作。系统支持按需访问全部服务器、单个服务器或按场景分组的服务器集合。
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
9
|
## 🚀 功能亮点
|
|
10
10
|
|
|
11
|
-
-
|
|
11
|
+
- **广泛的 MCP 服务器支持**:无缝集成任何 MCP 服务器,配置简单。
|
|
12
12
|
- **集中式管理控制台**:在一个简洁的 Web UI 中实时监控所有服务器的状态和性能指标。
|
|
13
13
|
- **灵活的协议兼容**:完全支持 stdio 和 SSE 两种 MCP 协议。
|
|
14
14
|
- **热插拔式配置**:在运行时动态添加、移除或更新服务器配置,无需停机。
|
|
@@ -18,7 +18,7 @@ MCPHub 是一个统一的 MCP(Model Context Protocol,模型上下文协议
|
|
|
18
18
|
|
|
19
19
|
## 🔧 快速开始
|
|
20
20
|
|
|
21
|
-
###
|
|
21
|
+
### 配置
|
|
22
22
|
|
|
23
23
|
通过创建 `mcp_settings.json` 自定义服务器设置:
|
|
24
24
|
|
|
@@ -48,23 +48,10 @@ MCPHub 是一个统一的 MCP(Model Context Protocol,模型上下文协议
|
|
|
48
48
|
"SLACK_TEAM_ID": "your-team-id"
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
}
|
|
52
|
-
"users": [
|
|
53
|
-
{
|
|
54
|
-
"username": "admin",
|
|
55
|
-
"password": "$2b$10$Vt7krIvjNgyN67LXqly0uOcTpN0LI55cYRbcKC71pUDAP0nJ7RPa.",
|
|
56
|
-
"isAdmin": true
|
|
57
|
-
}
|
|
58
|
-
]
|
|
51
|
+
}
|
|
59
52
|
}
|
|
60
53
|
```
|
|
61
54
|
|
|
62
|
-
> **提示**:默认用户名/密码为 `admin` / `admin123`。密码已通过 bcrypt 安全哈希。生成新密码哈希:
|
|
63
|
-
>
|
|
64
|
-
> ```bash
|
|
65
|
-
> npx bcryptjs your-password
|
|
66
|
-
> ```
|
|
67
|
-
|
|
68
55
|
### Docker 部署
|
|
69
56
|
|
|
70
57
|
**推荐**:挂载自定义配置:
|
|
@@ -109,6 +96,31 @@ http://localhost:3000/mcp
|
|
|
109
96
|
- 轻松与各种 AI 客户端和工具集成
|
|
110
97
|
- 对所有服务器使用相同的端点,简化集成过程
|
|
111
98
|
|
|
99
|
+
**智能路由(实验性功能)**:
|
|
100
|
+
|
|
101
|
+
智能路由是 MCPHub 的智能工具发现系统,使用向量语义搜索自动为任何给定任务找到最相关的工具。
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
http://localhost:3000/mcp/$smart
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**工作原理:**
|
|
108
|
+
|
|
109
|
+
1. **工具索引**:所有 MCP 工具自动转换为向量嵌入并存储在 PostgreSQL 与 pgvector 中
|
|
110
|
+
2. **语义搜索**:用户查询转换为向量并使用余弦相似度与工具嵌入匹配
|
|
111
|
+
3. **智能筛选**:动态阈值确保相关结果且无噪声
|
|
112
|
+
4. **精确执行**:找到的工具可以直接执行并进行适当的参数验证
|
|
113
|
+
|
|
114
|
+
**设置要求:**
|
|
115
|
+
|
|
116
|
+

|
|
117
|
+
|
|
118
|
+
为了启用智能路由,您需要:
|
|
119
|
+
|
|
120
|
+
- 支持 pgvector 扩展的 PostgreSQL
|
|
121
|
+
- OpenAI API 密钥(或兼容的嵌入服务)
|
|
122
|
+
- 在 MCPHub 设置中启用智能路由
|
|
123
|
+
|
|
112
124
|
**基于分组的 HTTP 端点(推荐)**:
|
|
113
125
|

|
|
114
126
|
要针对特定服务器分组进行访问,请使用基于分组的 HTTP 端点:
|
|
@@ -144,6 +156,12 @@ http://localhost:3000/mcp/{server}
|
|
|
144
156
|
http://localhost:3000/sse
|
|
145
157
|
```
|
|
146
158
|
|
|
159
|
+
要启用智能路由,请使用:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
http://localhost:3000/sse/$smart
|
|
163
|
+
```
|
|
164
|
+
|
|
147
165
|
要针对特定服务器分组进行访问,请使用基于分组的 SSE 端点:
|
|
148
166
|
|
|
149
167
|
```
|
|
@@ -204,8 +222,13 @@ proxy_buffering off
|
|
|
204
222
|
<img src="assets/reward.png" width="350">
|
|
205
223
|
|
|
206
224
|
## 致谢
|
|
225
|
+
|
|
207
226
|
感谢以下人员的赞赏:小白、琛。你们的支持是我继续前进的动力!
|
|
208
227
|
|
|
228
|
+
## 🌟 Star 历史趋势
|
|
229
|
+
|
|
230
|
+
[](https://www.star-history.com/#samanhappy/mcphub&Date)
|
|
231
|
+
|
|
209
232
|
## 📄 许可证
|
|
210
233
|
|
|
211
234
|
本项目采用 [Apache 2.0 许可证](LICENSE)。
|
package/dist/config/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import dotenv from 'dotenv';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { getConfigFilePath } from '../utils/path.js';
|
|
4
|
+
import { getPackageVersion } from '../utils/version.js';
|
|
4
5
|
dotenv.config();
|
|
5
6
|
const defaultConfig = {
|
|
6
7
|
port: process.env.PORT || 3000,
|
|
7
8
|
initTimeout: process.env.INIT_TIMEOUT || 300000,
|
|
8
9
|
timeout: process.env.REQUEST_TIMEOUT || 60000,
|
|
10
|
+
basePath: process.env.BASE_PATH || '',
|
|
9
11
|
mcpHubName: 'mcphub',
|
|
10
|
-
mcpHubVersion:
|
|
12
|
+
mcpHubVersion: getPackageVersion(),
|
|
11
13
|
};
|
|
12
14
|
export const getSettingsPath = () => {
|
|
13
15
|
return getConfigFilePath('mcp_settings.json', 'Settings');
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI;IAC9B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM;IAC/C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK;IAC7C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;IACrC,UAAU,EAAE,QAAQ;IACpB,aAAa,EAAE,iBAAiB,EAAE;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE;IAC1C,OAAO,iBAAiB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAgB,EAAE;IAC5C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAqB,EAAW,EAAE;IAC7D,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import config from '../config/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get runtime configuration for frontend
|
|
4
|
+
*/
|
|
5
|
+
export const getRuntimeConfig = (req, res) => {
|
|
6
|
+
try {
|
|
7
|
+
const runtimeConfig = {
|
|
8
|
+
basePath: config.basePath,
|
|
9
|
+
version: config.mcpHubVersion,
|
|
10
|
+
name: config.mcpHubName,
|
|
11
|
+
};
|
|
12
|
+
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
|
|
13
|
+
res.setHeader('Pragma', 'no-cache');
|
|
14
|
+
res.setHeader('Expires', '0');
|
|
15
|
+
res.json({
|
|
16
|
+
success: true,
|
|
17
|
+
data: runtimeConfig,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error('Error getting runtime config:', error);
|
|
22
|
+
res.status(500).json({
|
|
23
|
+
success: false,
|
|
24
|
+
message: 'Failed to get runtime configuration',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=configController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configController.js","sourceRoot":"","sources":["../../src/controllers/configController.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAAE,GAAa,EAAQ,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,aAAa,GAAG;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,aAAa;YAC7B,IAAI,EAAE,MAAM,CAAC,UAAU;SACxB,CAAC;QAEF,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAC;QACtE,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE9B,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qCAAqC;SAC/C,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getServersInfo, addServer, removeServer, updateMcpServer, notifyToolChanged, toggleServerStatus, } from '../services/mcpService.js';
|
|
2
2
|
import { loadSettings, saveSettings } from '../config/index.js';
|
|
3
|
+
import { syncAllServerToolsEmbeddings } from '../services/vectorSearchService.js';
|
|
3
4
|
export const getAllServers = (_, res) => {
|
|
4
5
|
try {
|
|
5
6
|
const serversInfo = getServersInfo();
|
|
@@ -262,14 +263,20 @@ export const toggleServer = async (req, res) => {
|
|
|
262
263
|
};
|
|
263
264
|
export const updateSystemConfig = (req, res) => {
|
|
264
265
|
try {
|
|
265
|
-
const { routing, install } = req.body;
|
|
266
|
+
const { routing, install, smartRouting } = req.body;
|
|
266
267
|
if ((!routing ||
|
|
267
268
|
(typeof routing.enableGlobalRoute !== 'boolean' &&
|
|
268
269
|
typeof routing.enableGroupNameRoute !== 'boolean' &&
|
|
269
270
|
typeof routing.enableBearerAuth !== 'boolean' &&
|
|
270
271
|
typeof routing.bearerAuthKey !== 'string')) &&
|
|
271
272
|
(!install ||
|
|
272
|
-
(typeof install.pythonIndexUrl !== 'string' && typeof install.npmRegistry !== 'string'))
|
|
273
|
+
(typeof install.pythonIndexUrl !== 'string' && typeof install.npmRegistry !== 'string')) &&
|
|
274
|
+
(!smartRouting ||
|
|
275
|
+
(typeof smartRouting.enabled !== 'boolean' &&
|
|
276
|
+
typeof smartRouting.dbUrl !== 'string' &&
|
|
277
|
+
typeof smartRouting.openaiApiBaseUrl !== 'string' &&
|
|
278
|
+
typeof smartRouting.openaiApiKey !== 'string' &&
|
|
279
|
+
typeof smartRouting.openaiApiEmbeddingModel !== 'string'))) {
|
|
273
280
|
res.status(400).json({
|
|
274
281
|
success: false,
|
|
275
282
|
message: 'Invalid system configuration provided',
|
|
@@ -289,6 +296,13 @@ export const updateSystemConfig = (req, res) => {
|
|
|
289
296
|
pythonIndexUrl: '',
|
|
290
297
|
npmRegistry: '',
|
|
291
298
|
},
|
|
299
|
+
smartRouting: {
|
|
300
|
+
enabled: false,
|
|
301
|
+
dbUrl: '',
|
|
302
|
+
openaiApiBaseUrl: '',
|
|
303
|
+
openaiApiKey: '',
|
|
304
|
+
openaiApiEmbeddingModel: '',
|
|
305
|
+
},
|
|
292
306
|
};
|
|
293
307
|
}
|
|
294
308
|
if (!settings.systemConfig.routing) {
|
|
@@ -305,6 +319,15 @@ export const updateSystemConfig = (req, res) => {
|
|
|
305
319
|
npmRegistry: '',
|
|
306
320
|
};
|
|
307
321
|
}
|
|
322
|
+
if (!settings.systemConfig.smartRouting) {
|
|
323
|
+
settings.systemConfig.smartRouting = {
|
|
324
|
+
enabled: false,
|
|
325
|
+
dbUrl: '',
|
|
326
|
+
openaiApiBaseUrl: '',
|
|
327
|
+
openaiApiKey: '',
|
|
328
|
+
openaiApiEmbeddingModel: '',
|
|
329
|
+
};
|
|
330
|
+
}
|
|
308
331
|
if (routing) {
|
|
309
332
|
if (typeof routing.enableGlobalRoute === 'boolean') {
|
|
310
333
|
settings.systemConfig.routing.enableGlobalRoute = routing.enableGlobalRoute;
|
|
@@ -327,12 +350,70 @@ export const updateSystemConfig = (req, res) => {
|
|
|
327
350
|
settings.systemConfig.install.npmRegistry = install.npmRegistry;
|
|
328
351
|
}
|
|
329
352
|
}
|
|
353
|
+
// Track smartRouting state and configuration changes
|
|
354
|
+
const wasSmartRoutingEnabled = settings.systemConfig.smartRouting.enabled || false;
|
|
355
|
+
const previousSmartRoutingConfig = { ...settings.systemConfig.smartRouting };
|
|
356
|
+
let needsSync = false;
|
|
357
|
+
if (smartRouting) {
|
|
358
|
+
if (typeof smartRouting.enabled === 'boolean') {
|
|
359
|
+
// If enabling Smart Routing, validate required fields
|
|
360
|
+
if (smartRouting.enabled) {
|
|
361
|
+
const currentDbUrl = smartRouting.dbUrl || settings.systemConfig.smartRouting.dbUrl;
|
|
362
|
+
const currentOpenaiApiKey = smartRouting.openaiApiKey || settings.systemConfig.smartRouting.openaiApiKey;
|
|
363
|
+
if (!currentDbUrl || !currentOpenaiApiKey) {
|
|
364
|
+
const missingFields = [];
|
|
365
|
+
if (!currentDbUrl)
|
|
366
|
+
missingFields.push('Database URL');
|
|
367
|
+
if (!currentOpenaiApiKey)
|
|
368
|
+
missingFields.push('OpenAI API Key');
|
|
369
|
+
res.status(400).json({
|
|
370
|
+
success: false,
|
|
371
|
+
message: `Smart Routing requires the following fields: ${missingFields.join(', ')}`,
|
|
372
|
+
});
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
settings.systemConfig.smartRouting.enabled = smartRouting.enabled;
|
|
377
|
+
}
|
|
378
|
+
if (typeof smartRouting.dbUrl === 'string') {
|
|
379
|
+
settings.systemConfig.smartRouting.dbUrl = smartRouting.dbUrl;
|
|
380
|
+
}
|
|
381
|
+
if (typeof smartRouting.openaiApiBaseUrl === 'string') {
|
|
382
|
+
settings.systemConfig.smartRouting.openaiApiBaseUrl = smartRouting.openaiApiBaseUrl;
|
|
383
|
+
}
|
|
384
|
+
if (typeof smartRouting.openaiApiKey === 'string') {
|
|
385
|
+
settings.systemConfig.smartRouting.openaiApiKey = smartRouting.openaiApiKey;
|
|
386
|
+
}
|
|
387
|
+
if (typeof smartRouting.openaiApiEmbeddingModel === 'string') {
|
|
388
|
+
settings.systemConfig.smartRouting.openaiApiEmbeddingModel =
|
|
389
|
+
smartRouting.openaiApiEmbeddingModel;
|
|
390
|
+
}
|
|
391
|
+
// Check if we need to sync embeddings
|
|
392
|
+
const isNowEnabled = settings.systemConfig.smartRouting.enabled || false;
|
|
393
|
+
const hasConfigChanged = previousSmartRoutingConfig.dbUrl !== settings.systemConfig.smartRouting.dbUrl ||
|
|
394
|
+
previousSmartRoutingConfig.openaiApiBaseUrl !==
|
|
395
|
+
settings.systemConfig.smartRouting.openaiApiBaseUrl ||
|
|
396
|
+
previousSmartRoutingConfig.openaiApiKey !==
|
|
397
|
+
settings.systemConfig.smartRouting.openaiApiKey ||
|
|
398
|
+
previousSmartRoutingConfig.openaiApiEmbeddingModel !==
|
|
399
|
+
settings.systemConfig.smartRouting.openaiApiEmbeddingModel;
|
|
400
|
+
// Sync if: first time enabling OR smart routing is enabled and any config changed
|
|
401
|
+
needsSync = (!wasSmartRoutingEnabled && isNowEnabled) || (isNowEnabled && hasConfigChanged);
|
|
402
|
+
}
|
|
330
403
|
if (saveSettings(settings)) {
|
|
331
404
|
res.json({
|
|
332
405
|
success: true,
|
|
333
406
|
data: settings.systemConfig,
|
|
334
407
|
message: 'System configuration updated successfully',
|
|
335
408
|
});
|
|
409
|
+
// If smart routing configuration changed, sync all existing server tools
|
|
410
|
+
if (needsSync) {
|
|
411
|
+
console.log('SmartRouting configuration changed - syncing all existing server tools...');
|
|
412
|
+
// Run sync asynchronously to avoid blocking the response
|
|
413
|
+
syncAllServerToolsEmbeddings().catch((error) => {
|
|
414
|
+
console.error('Failed to sync server tools embeddings:', error);
|
|
415
|
+
});
|
|
416
|
+
}
|
|
336
417
|
}
|
|
337
418
|
else {
|
|
338
419
|
res.status(500).json({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverController.js","sourceRoot":"","sources":["../../src/controllers/serverController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serverController.js","sourceRoot":"","sources":["../../src/controllers/serverController.ts"],"names":[],"mappings":"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"}
|