【技术文档摘要】
Nacos 是一个易于使用的平台,旨在实现动态服务发现、配置和服务管理。它帮助您轻松构建云原生应用和微服务平台。
此MCP(模型上下文协议)服务器提供了搜索、安装、代理其他MCP服务器的工具,并具有高级搜索功能,包括向量相似性搜索和多提供商结果聚合。
Nacos-MCP-Router有两种工作模式:
路由器模式:默认模式,通过MCP服务器推荐、分发、安装和代理其他MCP服务器的功能,帮助用户更方便地利用MCP服务器服务。
代理模式:由环境变量MODE=proxy指定,可以通过简单的配置将SSE和stdio协议的MCP服务器转换为可流式传输的HTTP协议MCP服务器。
Nacos-MCP-Router通过多个提供商提供强大的搜索能力:
Nacos 提供商
Compass 提供商
使用环境变量配置搜索行为:
# 您的COMPASS API端点(用于外部提供商Compass提供商)
COMPASS_API_BASE=https://registry.mcphub.io
# 结果的最小相似度分数(0.0到1.0)
SEARCH_MIN_SIMILARITY=0.5
# 返回的最大结果数
SEARCH_RESULT_LIMIT=10
搜索功能可通过MCP接口访问:
// 搜索MCP服务器
const results = await searchMcpServer(
"查找自然语言处理的MCP服务器",
["nlp", "language"]
);
结果包括:
search_mcp_server
task_description(字符串):任务描述key_words(字符串):任务关键词add_mcp_server
mcp_server_name(字符串):MCP服务器名称。use_tool
mcp_server_name(字符串):LLM想要调用的目标MCP服务器名称。mcp_tool_name(字符串):LLM想要调用的目标MCP服务器的工具名称。params(映射):MCP工具的参数。当使用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安装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 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
在你的应用程序的MCP设置中添加以下内容:
{
"mcpServers":
{
"nacos-mcp-router":
{
"command": "uvx",
"args":
[
"nacos-mcp-router@latest"
],
"env":
{
"NACOS_ADDR": "<NACOS-ADDR>, 可选,默认值为127.0.0.1:8848",
"NACOS_USERNAME": "<NACOS-USERNAME>, 可选,默认值为nacos",
"NACOS_PASSWORD": "<NACOS-PASSWORD>, 必需"
}
}
}
}
你可能需要在
command字段中放置uvx可执行文件的完整路径。你可以在MacOS/Linux上通过运行which uvx或在Windows上运行where uvx来获取这个路径。
{
"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服务器转换为可流式传输的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 | 阿里云RAM访问密钥ID | - | 否 | |
| ACCESS_KEY_SECRET | 阿里云RAM访问密钥秘密 | - | 否 |
{
"mcpServers": {
"nacos-mcp-router": {
"command": "npx",
"args": [
"nacos-mcp-router@latest"
],
"env": {
"NACOS_ADDR": "<NACOS-ADDR>, 可选,默认值为127.0.0.1:8848",
"NACOS_USERNAME": "<NACOS-USERNAME>, 可选,默认值为nacos",
"NACOS_PASSWORD": "<NACOS-PASSWORD>, 必需"
}
}
}
}
nacos-mcp-router根据Apache 2.0许可证发布。这意味着您可以自由使用、修改和分发该软件,但须遵守Apache 2.0许可证的条款和条件。更多详情,请参见项目仓库中的LICENSE文件。