关于 Nacos Mcp Router
nacos-mcp-router 是一个 MCP 服务,提供 MCP 服务的搜索、安装与代理功能,并支持向量相似度搜索和多来源结果聚合。适合需要在 Nacos 环境中管理 MCP 服务的开发者。
主要功能
- 01按任务与关键词搜索 MCP 服务
- 02安装并连接 stdio 或 SSE 服务
- 03代理调用目标 MCP 服务的工具
- 04将 SSE 与 stdio 服务转换为 streamable HTTP
- 05支持 Nacos 与 Compass 两种搜索来源
适用场景
- 01根据任务描述查找合适的 MCP 服务
- 02通过统一入口调用多个 MCP 服务的工具
- 03将旧协议的 MCP 服务转换为 streamable HTTP
MCP 相关
该项目本身是 MCP 服务,向客户端暴露 search_mcp_server、add_mcp_server 和 use_tool 等工具,并可代理其他 MCP 服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key_words | string | 是 | 用户任务的关键词,可包含多个,最多 4 个,须包含中英文关键词,并以英文逗号分隔 |
| task_description | string | 是 | 用户任务的中文和英文描述,中英文描述各占单独一行。如果任务描述只包含中文,请同时输入英文描述;反之亦然。 |
详细介绍
nacos-mcp-router:提供搜索、安装、代理等功能的 MCP 服务。
概述
Nacos 是一个易于使用的平台,旨在实现动态服务发现、配置和服务管理。它可以帮助你轻松构建云原生应用和微服务平台。
此 MCP(Model Context Protocol)服务提供用于搜索、安装和代理其他 MCP 服务的工具,并具备高级搜索功能,包括向量相似度搜索和多提供商结果聚合。
Nacos-MCP-Router 有两种工作模式:
路由模式:默认模式,通过 MCP 服务推荐、分发、安装和代理其他 MCP 服务的功能,帮助用户更便捷地使用 MCP 服务。
代理模式:通过环境变量 MODE=proxy 指定,可通过简单配置将 SSE 和 stdio 协议的 MCP 服务转换为可流式传输的 HTTP 协议 MCP 服务。
搜索功能
Nacos-MCP-Router 通过多个提供商提供强大的搜索能力:
搜索提供商
-
Nacos 提供商
- 使用 Nacos 服务发现搜索 MCP 服务
- 支持关键词匹配和向量相似度搜索
- 与本地 Nacos 实例集成
-
Compass 提供商
- 连接到 COMPASS API 端点以增强搜索能力
- 支持语义搜索和相关性评分
- API 端点可配置(默认值:https://registry.mcphub.io)
搜索配置
使用环境变量配置搜索行为:
# YOUR COMPASS API endpoint (for Outer Provider called Compass Provider)
COMPASS_API_BASE=https://registry.mcphub.io
# Minimum similarity score for results (0.0 to 1.0)
SEARCH_MIN_SIMILARITY=0.5
# Maximum number of results to return
SEARCH_RESULT_LIMIT=10
搜索 API
可通过 MCP 接口使用搜索功能:
// Search for MCP servers
const results = await searchMcpServer(
"Find MCP servers for natural language processing",
["nlp", "language"]
);
结果包括:
- 服务名称和描述
- 提供商信息
- 相关性评分
- 其他元数据
快速开始
Python
路由模式
工具
search_mcp_server- 按任务和关键词搜索 MCP 服务。
- 输入:
task_description(string):任务描述key_words(string):任务关键词
- 返回:MCP 服务列表以及完成任务的说明。
add_mcp_server- 添加 MCP 服务。如果 MCP 服务是 stdio 服务,此工具会安装该服务并与其建立连接。如果 MCP 服务是 sse 服务,此工具会与其建立连接。
- 输入:
mcp_server_name(string):MCP 服务名称。
- 返回:该 MCP 服务的工具列表及其使用方法。
use_tool- 此工具可帮助大模型使用某个 MCP 服务的工具,并将请求代理到目标 MCP 服务。
- 输入:
mcp_server_name(string):大模型要调用的目标 MCP 服务名称。mcp_tool_name(string):大模型要调用的目标 MCP 服务工具名称。params(map):MCP 工具的参数。
- 返回:目标 MCP 服务返回的结果。
使用方法
使用 uv(推荐)
使用 uv 时无需特殊安装。我们将使用
uvx 直接运行 nacos-mcp-router。
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
uvx nacos-mcp-router@latest
使用 PIP
或者,你可以通过 pip 安装 nacos-mcp-router:
pip install nacos-mcp-router
安装后,你可以将其作为脚本运行(例如,Nacos 以独立模式部署在本地机器上):
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
python -m nacos_mcp_router
使用 Docker
docker run -i --rm --network host -e NACOS_ADDR=$NACOS_ADDR -e NACOS_USERNAME=$NACOS_USERNAME -e NACOS_PASSWORD=$NACOS_PASSWORD -e TRANSPORT_TYPE=$TRANSPORT_TYPE nacos/nacos-mcp-router:latest
与 Cline、Cursor、Claude 和其他应用搭配使用
将以下内容添加到应用的 MCP 设置中:
- 使用 uvx
{
"mcpServers":
{
"nacos-mcp-router":
{
"command": "uvx",
"args":
[
"nacos-mcp-router@latest"
],
"env":
{
"NACOS_ADDR": "<NACOS-ADDR>, optional, default is 127.0.0.1:8848",
"NACOS_USERNAME": "<NACOS-USERNAME>, optional, default is nacos",
"NACOS_PASSWORD": "<NACOS-PASSWORD>, required"
}
}
}
}
你可能需要在
command字段中填写uvx可执行文件的完整路径。你可以在 MacOS/Linux 上运行which uvx,或在 Windows 上运行where uvx来获取该路径。
- 使用 docker
{
"mcpServers": {
"nacos-mcp-router": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--network", "host", "-e", "NACOS_ADDR=<NACOS-ADDR>", "-e", "NACOS_USERNAME=<NACOS-USERNAME>", "-e", "NACOS_PASSWORD=<NACOS-PASSWORD>" ,"-e", "TRANSPORT_TYPE=stdio", "nacos/nacos-mcp-router:latest"
]
}
}
}
代理模式
代理模式支持将 SSE 和 stdio 协议的 MCP 服务转换为 streamable HTTP 协议的 MCP 服务。
用法
代理模式的用法与路由器模式类似,但参数略有不同。建议使用 Docker 部署。
docker run -i --rm --network host -e NACOS_ADDR=$NACOS_ADDR -e NACOS_USERNAME=$NACOS_USERNAME -e NACOS_PASSWORD=$NACOS_PASSWORD -e TRANSPORT_TYPE=streamable_http -e MODE=proxy -e PROXIED_MCP_NAME=$PROXIED_MCP_NAME nacos/nacos-mcp-router:latest
环境变量设置
| 参数 | 描述 | 默认值 | 必填 | 备注 |
|---|---|---|---|---|
| NACOS_ADDR | Nacos 服务地址 | 127.0.0.1:8848 | 否 | Nacos 服务地址,例如 192.168.1.1:8848。注意:请包含端口。 |
| NACOS_USERNAME | Nacos 用户名 | nacos | 否 | Nacos 用户名,例如 nacos。 |
| NACOS_PASSWORD | Nacos 密码 | - | 是 | Nacos 密码,例如 nacos。 |
| COMPASS_API_BASE | 用于增强搜索的 COMPASS API 端点 | https://registry.mcphub.io | 否 | 覆盖默认的 COMPASS API 端点 |
| SEARCH_MIN_SIMILARITY | 最低相似度分数(0.0-1.0) | 0.5 | 否 | 按最低相似度分数筛选搜索结果 |
| SEARCH_RESULT_LIMIT | 返回结果的最大数量 | 10 | 否 | 限制搜索结果的数量 |
| NACOS_NAMESPACE | Nacos 命名空间 | public | 否 | Nacos 命名空间,例如 public |
| TRANSPORT_TYPE | 传输协议类型 | stdio | 否 | 传输协议类型。可选项:stdio、sse、streamable_http。 |
| PROXIED_MCP_NAME | 被代理的 MCP 服务名称 | - | 否 | 在代理模式下,指定要转换的 MCP 服务名称。必须先在 Nacos 中注册。 |
| MODE | 工作模式 | router | 否 | 可选项:router、proxy。 |
| PORT | TRANSPORT_TYPE 为 sse 或 streamable_http 时的服务端口 | 8000 | 否 | |
| ACCESS_KEY_ID | Aliyun RAM 访问密钥 ID | - | 否 | |
| ACCESS_KEY_SECRET | Aliyun RAM 访问密钥 Secret | - | 否 |
typescript
与 Cline、Cursor、Claude 和其他应用搭配使用
{
"mcpServers": {
"nacos-mcp-router": {
"command": "npx",
"args": [
"nacos-mcp-router@latest"
],
"env": {
"NACOS_ADDR": "<NACOS-ADDR>, optional, default is 127.0.0.1:8848",
"NACOS_USERNAME": "<NACOS-USERNAME>, optional, default is nacos",
"NACOS_PASSWORD": "<NACOS-PASSWORD>, required"
}
}
}
}
许可证
nacos-mcp-router 采用 Apache 2.0 许可证。这意味着你可以自由使用、修改和分发该软件,但须遵守 Apache 2.0 许可证的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。