Discover, Install, and Proxy MCP Servers
Search, install, and proxy other MCP servers via Nacos service discovery, with vector similarity search across providers.
Maintainer of this project? Claim this page to edit the listing.
0.2.2Add to Favorites
Why it matters
This asset acts as a router for MCP servers, enabling the discovery, installation, and proxying of other MCP servers. It enhances search capabilities with vector similarity and result aggregation from multiple providers.
Outcomes
What it gets done
Search for MCP servers using advanced criteria like vector similarity.
Automate the installation and connection to new MCP servers.
Proxy requests to tools available on other MCP servers.
Convert between different MCP server transport protocols.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-nacos-mcp-router | bash Capabilities
Tools your agent gets
Search for MCP servers by task description and keywords with vector similarity search
Install and establish connections to MCP servers, returns available tools
Proxy requests to tools of target MCP servers for LLM usage
Overview
Nacos MCP Router MCP Server
Nacos-MCP-Router is an MCP server that searches, installs, and proxies other MCP servers using Nacos service discovery plus a Compass semantic search provider, and can also bridge stdio/SSE MCP servers to streamable HTTP in proxy mode. Use it when an LLM needs to dynamically discover and use other MCP servers, or to expose a stdio/SSE server over HTTP. Requires a running Nacos instance with NACOS_PASSWORD configured.
What it does
Nacos-MCP-Router is an MCP server built on Nacos (a dynamic service discovery and configuration platform) that searches, installs, and proxies other MCP servers on behalf of an LLM. It has two modes: router mode (the default - recommend, install, and proxy other MCP servers) and proxy mode (converts SSE or stdio MCP servers into streamable-HTTP MCP servers).
When to use - and when NOT to
Use it in router mode when you want an LLM to discover the right MCP server for a task by description and keywords, install/connect to it on demand, and call its tools through a single proxy interface - useful when you don't want to pre-configure every possible MCP server your agent might need. Use proxy mode when you need to expose an existing stdio- or SSE-based MCP server over streamable HTTP instead. Do not use it without a running Nacos instance - NACOS_PASSWORD is required, and NACOS_ADDR/NACOS_USERNAME default to a local standalone Nacos deployment.
Capabilities
Router mode tools:
search_mcp_server: search MCP servers bytask_descriptionandkey_words, returning matching servers and usage instructions. Search draws on two providers - the Nacos Provider (keyword and vector similarity search against the local Nacos instance) and the Compass Provider (semantic search via a configurable COMPASS API endpoint, defaulthttps://registry.mcphub.io), tunable viaSEARCH_MIN_SIMILARITY(default 0.5) andSEARCH_RESULT_LIMIT(default 10).add_mcp_server: install (for stdio servers) or connect (for SSE servers) to a named MCP server, returning its tool list and usage instructions.use_tool: proxy a call to a specific tool on a target MCP server, givenmcp_server_name,mcp_tool_name, andparams.
Proxy mode: converts a Nacos-registered stdio or SSE MCP server (PROXIED_MCP_NAME) into a streamable-HTTP server, set via MODE=proxy and TRANSPORT_TYPE=streamable_http.
How to install
Via uv (no separate install step):
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
uvx nacos-mcp-router@latest
Or via pip (pip install nacos-mcp-router then python -m nacos_mcp_router), or Docker:
docker run -i --rm --network host -e NACOS_ADDR=$NACOS_ADDR -e NACOS_USERNAME=$NACOS_USERNAME -e NACOS_PASSWORD=$NACOS_PASSWORD nacos/nacos-mcp-router:latest
For Cline, Cursor, Claude, or similar clients, configure via uvx or npx nacos-mcp-router@latest with NACOS_ADDR/NACOS_USERNAME/NACOS_PASSWORD in the env block. Other environment variables: NACOS_NAMESPACE (default public), TRANSPORT_TYPE (stdio/sse/streamable_http), PORT, and Aliyun RAM ACCESS_KEY_ID/ACCESS_KEY_SECRET for authenticated Nacos access.
Who it's for
Teams running a Nacos-based microservices platform who want an LLM to discover, install, and call other MCP servers dynamically, or who need to bridge stdio/SSE MCP servers to streamable HTTP.
Source README
nacos-mcp-router: A MCP server that provides functionalities such as search, installation, proxy, and more.
Overview
Nacos is an easy-to-use platform designed for dynamic service discovery and configuration and service management. It helps you to build cloud native applications and microservices platform easily.
This MCP(Model Context Protocol) Server provides tools to search, install, proxy other MCP servers, with advanced search capabilities including vector similarity search and multi-provider result aggregation.
Nacos-MCP-Router has two working modes:
Router mode: The default mode, which recommends, distributes, installs, and proxies the functions of other MCP Servers through the MCP Server, helping users more conveniently utilize MCP Server services.
Proxy mode: Specified by the environment variable MODE=proxy, it can convert SSE and stdio protocol MCP Servers into streamable HTTP protocol MCP Servers through simple configuration.
Search Features
Nacos-MCP-Router provides powerful search capabilities through multiple providers:
Search Providers
Nacos Provider
- Searches MCP servers using Nacos service discovery
- Supports keyword matching and vector similarity search
- Integrated with the local Nacos instance
Compass Provider
- Connects to a COMPASS API endpoint for enhanced search
- Supports semantic search and relevance scoring
- Configurable API endpoint (default: https://registry.mcphub.io)
Search Configuration
Configure search behavior using environment variables:
# 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
Search API
The search functionality is available through the MCP interface:
// Search for MCP servers
const results = await searchMcpServer(
"Find MCP servers for natural language processing",
["nlp", "language"]
);
Results include:
- Server name and description
- Provider information
- Relevance score
- Additional metadata
Quick Start
Python
router mode
Tools
search_mcp_server- Search MCP servers by task and keywords.
- Input:
task_description(string): Task descriptionkey_words(string): Keywords of task
- Returns: list of MCP servers and instructions to complete the task.
add_mcp_server- Add a MCP server. If the MCP server is a stdio server, this tool will install it and establish connection to it. If the MCP server is a sse server, this tool will establish connection to it
- Input:
mcp_server_name(string): The name of MCP server.
- Returns: tool list of the MCP server and how to use these tools.
use_tool- This tool helps LLM to use the tool of some MCP server. It will proxy requests to the target MCP server.
- Input:
mcp_server_name(string): The target MCP server name that LLM wants to call.mcp_tool_name(string): The tool name of target MCP server that LLM wants to call.params(map): The parameters of the MCP tool.
- Returns: Result returned from the target MCP server.
Usage
Using uv (recommended)
When using uv no specific installation is needed. We will
use uvx to directly run nacos-mcp-router.
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
uvx nacos-mcp-router@latest
Using PIP
Alternatively you can install nacos-mcp-router via pip:
pip install nacos-mcp-router
After installation, you can run it as a script using(As an example,Nacos is deployed in standalone mode on the local machine):
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
python -m nacos_mcp_router
Using 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
Usage with Cline、Cursor、Claude and other applications
Add this to MCP settings of your application:
- Using 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"
}
}
}
}
You may need to put the full path to the
uvxexecutable in thecommandfield. You can get this by runningwhich uvxon MacOS/Linux orwhere uvxon Windows.
- Using 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"
]
}
}
}
Proxy Mode
The proxy mode supports converting SSE and stdio protocol MCP Servers into streamable HTTP protocol MCP Servers.
Usage
The usage of proxy mode is similar to that of router mode, with slightly different parameters. Docker deployment is recommended.
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
Environment Variable Settings
| Parameter | Description | Default Value | Required | Remarks |
|---|---|---|---|---|
| NACOS_ADDR | Nacos server address | 127.0.0.1:8848 | No | the Nacos server address, e.g., 192.168.1.1:8848. Note: Include the port. |
| NACOS_USERNAME | Nacos username | nacos | No | the Nacos username, e.g., nacos. |
| NACOS_PASSWORD | Nacos password | - | Yes | the Nacos password, e.g., nacos. |
| COMPASS_API_BASE | COMPASS API endpoint for enhanced search | https://registry.mcphub.io | No | Override the default COMPASS API endpoint |
| SEARCH_MIN_SIMILARITY | Minimum similarity score (0.0-1.0) | 0.5 | No | Filter search results by minimum similarity score |
| SEARCH_RESULT_LIMIT | Maximum number of results to return | 10 | No | Limit the number of search results |
| NACOS_NAMESPACE | Nacos Namespace | public | No | Nacos namespace, e.g. public |
| TRANSPORT_TYPE | Transport protocol type | stdio | No | transport protocol type. Options: stdio, sse, streamable_http. |
| PROXIED_MCP_NAME | Proxied MCP server name | - | No | In proxy mode, specify the MCP server name to be converted. Must be registered in Nacos first. |
| MODE | Working mode | router | No | Available options: router, proxy. |
| PORT | Service port when TRANSPORT_TYPE is sse or streamable_http | 8000 | No | |
| ACCESS_KEY_ID | Aliyun ram access key id | - | No | |
| ACCESS_KEY_SECRET | Aliyun ram access key secret | - | No |
typescript
Usage with Cline、Cursor、Claude and other applications
{
"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"
}
}
}
}
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.