Nacos MCP Router
Un servidor MCP para Nacos que proporciona funcionalidades de búsqueda, instalación y proxy. Se conecta a un servidor Nacos mediante variables de entorno.
Documentación
nacos-mcp-router: Un servidor MCP que proporciona funcionalidades como búsqueda, instalación, proxy y más.
Resumen
Nacos es una plataforma fácil de usar diseñada para el descubrimiento dinámico de servicios, la gestión de configuración y de servicios. Te ayuda a crear aplicaciones cloud native y plataformas de microservicios fácilmente.
Este servidor MCP (Model Context Protocol) proporciona herramientas para buscar, instalar y hacer proxy de otros servidores MCP, con capacidades de búsqueda avanzada que incluyen búsqueda por similitud vectorial y agregación de resultados de múltiples proveedores.
Nacos-MCP-Router tiene dos modos de funcionamiento:
Modo Router: El modo predeterminado, que recomienda, distribuye, instala y hace proxy de las funciones de otros servidores MCP a través del servidor MCP, ayudando a los usuarios a utilizar los servicios del servidor MCP de manera más conveniente.
Modo Proxy: Especificado por la variable de entorno MODE=proxy, puede convertir servidores MCP con protocolo SSE y stdio en servidores MCP con protocolo HTTP transmisible mediante una configuración simple.
Funciones de búsqueda
Nacos-MCP-Router proporciona potentes capacidades de búsqueda a través de múltiples proveedores:
Proveedores de búsqueda
-
Proveedor Nacos
- Busca servidores MCP utilizando el descubrimiento de servicios de Nacos
- Soporta coincidencia de palabras clave y búsqueda por similitud vectorial
- Integrado con la instancia local de Nacos
-
Proveedor Compass
- Se conecta a un endpoint de API COMPASS para una búsqueda mejorada
- Soporta búsqueda semántica y puntuación de relevancia
- Endpoint de API configurable (predeterminado: https://registry.mcphub.io)
Configuración de búsqueda
Configura el comportamiento de búsqueda usando variables de entorno:
# 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 de búsqueda
La funcionalidad de búsqueda está disponible a través de la interfaz MCP:
// Search for MCP servers
const results = await searchMcpServer(
"Find MCP servers for natural language processing",
["nlp", "language"]
);
Los resultados incluyen:
- Nombre y descripción del servidor
- Información del proveedor
- Puntuación de relevancia
- Metadatos adicionales
Inicio rápido
Python
Modo router
Herramientas
search_mcp_server- Busca servidores MCP por tarea y palabras clave.
- Entrada:
task_description(cadena): Descripción de la tareakey_words(cadena): Palabras clave de la tarea
- Devuelve: lista de servidores MCP e instrucciones para completar la tarea.
add_mcp_server- Agrega un servidor MCP. Si el servidor MCP es un servidor stdio, esta herramienta lo instalará y establecerá conexión con él. Si el servidor MCP es un servidor sse, esta herramienta establecerá conexión con él.
- Entrada:
mcp_server_name(cadena): El nombre del servidor MCP.
- Devuelve: lista de herramientas del servidor MCP y cómo usar estas herramientas.
use_tool- Esta herramienta ayuda al LLM a usar la herramienta de algún servidor MCP. Hará proxy de las solicitudes al servidor MCP de destino.
- Entrada:
mcp_server_name(cadena): El nombre del servidor MCP de destino que el LLM quiere llamar.mcp_tool_name(cadena): El nombre de la herramienta del servidor MCP de destino que el LLM quiere llamar.params(mapa): Los parámetros de la herramienta MCP.
- Devuelve: Resultado devuelto por el servidor MCP de destino.
Uso
Usando uv (recomendado)
Cuando se usa uv no se necesita instalación específica. Usaremos uvx para ejecutar directamente nacos-mcp-router.
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
uvx nacos-mcp-router@latest
Usando PIP
Alternativamente, puedes instalar nacos-mcp-router vía pip:
pip install nacos-mcp-router
Después de la instalación, puedes ejecutarlo como un script usando (como ejemplo, Nacos está desplegado en modo independiente en la máquina local):
export NACOS_ADDR=127.0.0.1:8848
export NACOS_USERNAME=nacos
export NACOS_PASSWORD=$PASSWORD
python -m nacos_mcp_router
Usando 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
Uso con Cline, Cursor, Claude y otras aplicaciones
Agrega esto a la configuración MCP de tu aplicación:
- Usando 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"
}
}
}
}
Es posible que necesites poner la ruta completa al ejecutable de
uvxen el campocommand. Puedes obtenerla ejecutandowhich uvxen MacOS/Linux owhere uvxen Windows.
- Usando 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"
]
}
}
}
Modo Proxy
El modo proxy soporta la conversión de servidores MCP con protocolo SSE y stdio en servidores MCP con protocolo HTTP transmisible.
Uso
El uso del modo proxy es similar al del modo router, con parámetros ligeramente diferentes. Se recomienda el despliegue con 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
Configuración de variables de entorno
| Parámetro | Descripción | Valor predeterminado | Requerido | Observaciones |
|---|---|---|---|---|
| NACOS_ADDR | Dirección del servidor Nacos | 127.0.0.1:8848 | No | La dirección del servidor Nacos, p. ej., 192.168.1.1:8848. Nota: Incluye el puerto. |
| NACOS_USERNAME | Nombre de usuario de Nacos | nacos | No | El nombre de usuario de Nacos, p. ej., nacos. |
| NACOS_PASSWORD | Contraseña de Nacos | - | Sí | La contraseña de Nacos, p. ej., nacos. |
| COMPASS_API_BASE | Endpoint de API COMPASS para búsqueda mejorada | https://registry.mcphub.io | No | Sobrescribe el endpoint de API COMPASS predeterminado |
| SEARCH_MIN_SIMILARITY | Puntuación mínima de similitud (0.0-1.0) | 0.5 | No | Filtra los resultados de búsqueda por puntuación mínima de similitud |
| SEARCH_RESULT_LIMIT | Número máximo de resultados a devolver | 10 | No | Limita el número de resultados de búsqueda |
| NACOS_NAMESPACE | Espacio de nombres de Nacos | public | No | Espacio de nombres de Nacos, p. ej. public |
| TRANSPORT_TYPE | Tipo de protocolo de transporte | stdio | No | Tipo de protocolo de transporte. Opciones: stdio, sse, streamable_http. |
| PROXIED_MCP_NAME | Nombre del servidor MCP con proxy | - | No | En modo proxy, especifica el nombre del servidor MCP a convertir. Debe estar registrado en Nacos primero. |
| MODE | Modo de funcionamiento | router | No | Opciones disponibles: router, proxy. |
| PORT | Puerto del servicio cuando TRANSPORT_TYPE es sse o streamable_http | 8000 | No | |
| ACCESS_KEY_ID | ID de clave de acceso de Aliyun RAM | - | No | |
| ACCESS_KEY_SECRET | Secreto de clave de acceso de Aliyun RAM | - | No |
TypeScript
Uso con Cline, Cursor, Claude y otras aplicaciones
{
"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"
}
}
}
}
Licencia
nacos-mcp-router está licenciado bajo la Licencia Apache 2.0. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia Apache 2.0. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.