Nacos MCP Router

Um servidor MCP para Nacos que fornece funcionalidades de busca, instalação e proxy. Conecta-se a um servidor Nacos por meio de variáveis de ambiente.

Documentação

nacos-mcp-router: Um servidor MCP que fornece funcionalidades como busca, instalação, proxy e muito mais.

Model Context Protocol Ask DeepWiki NPM Version NPM Downloads

English | 简体中文

Visão Geral

Nacos é uma plataforma fácil de usar projetada para descoberta dinâmica de serviços, gerenciamento de configuração e serviços. Ela ajuda você a construir aplicações nativas em nuvem e plataformas de microsserviços facilmente.

Este servidor MCP (Model Context Protocol) fornece ferramentas para buscar, instalar e fazer proxy de outros servidores MCP, com recursos avançados de busca, incluindo busca por similaridade vetorial e agregação de resultados de múltiplos provedores.

O Nacos-MCP-Router possui dois modos de funcionamento:

Modo Roteador: O modo padrão, que recomenda, distribui, instala e faz proxy das funções de outros servidores MCP através do servidor MCP, ajudando os usuários a utilizar os serviços do servidor MCP de forma mais conveniente.

Modo Proxy: Especificado pela variável de ambiente MODE=proxy, pode converter servidores MCP com protocolo SSE e stdio em servidores MCP com protocolo HTTP streamable através de configuração simples.

Recursos de Busca

O Nacos-MCP-Router fornece recursos poderosos de busca através de múltiplos provedores:

Provedores de Busca

  1. Provedor Nacos

    • Busca servidores MCP usando a descoberta de serviços do Nacos
    • Suporta correspondência por palavras-chave e busca por similaridade vetorial
    • Integrado com a instância local do Nacos
  2. Provedor Compass

    • Conecta-se a um endpoint da API COMPASS para busca aprimorada
    • Suporta busca semântica e pontuação de relevância
    • Endpoint de API configurável (padrão: https://registry.mcphub.io)

Configuração de Busca

Configure o comportamento da busca usando variáveis de ambiente:

# 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 Busca

A funcionalidade de busca está disponível através da interface MCP:

// Search for MCP servers
const results = await searchMcpServer(
  "Find MCP servers for natural language processing",
  ["nlp", "language"]
);

Os resultados incluem:

  • Nome e descrição do servidor
  • Informações do provedor
  • Pontuação de relevância
  • Metadados adicionais

Início Rápido

Python

Modo roteador

Ferramentas
  1. search_mcp_server
    • Busca servidores MCP por tarefa e palavras-chave.
    • Entrada:
      • task_description(string): Descrição da tarefa
      • key_words(string): Palavras-chave da tarefa
    • Retorna: lista de servidores MCP e instruções para concluir a tarefa.
  2. add_mcp_server
    • Adiciona um servidor MCP. Se o servidor MCP for um servidor stdio, esta ferramenta o instalará e estabelecerá conexão com ele. Se o servidor MCP for um servidor sse, esta ferramenta estabelecerá conexão com ele.
    • Entrada:
      • mcp_server_name(string): O nome do servidor MCP.
    • Retorna: lista de ferramentas do servidor MCP e como usar essas ferramentas.
  3. use_tool
    • Esta ferramenta ajuda o LLM a usar a ferramenta de algum servidor MCP. Ela fará proxy das solicitações para o servidor MCP de destino.
    • Entrada:
      • mcp_server_name(string): O nome do servidor MCP de destino que o LLM deseja chamar.
      • mcp_tool_name(string): O nome da ferramenta do servidor MCP de destino que o LLM deseja chamar.
      • params(map): Os parâmetros da ferramenta MCP.
    • Retorna: Resultado retornado do servidor MCP de destino.
Uso
Usando uv (recomendado)

Ao usar uv, nenhuma instalação específica é necessária. Usaremos uvx para executar diretamente o 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, você pode instalar o nacos-mcp-router via pip:

pip install nacos-mcp-router

Após a instalação, você pode executá-lo como um script usando (Como exemplo, o Nacos é implantado em modo standalone na 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 com Cline, Cursor, Claude e outros aplicativos

Adicione isto às configurações de MCP do seu aplicativo:

  • 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"
            }
        }
    }
}

Você pode precisar colocar o caminho completo para o executável uvx no campo command. Você pode obter isso executando which uvx no MacOS/Linux ou where uvx no 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

O modo proxy suporta a conversão de servidores MCP com protocolo SSE e stdio em servidores MCP com protocolo HTTP streamable.

Uso

O uso do modo proxy é semelhante ao do modo roteador, com parâmetros ligeiramente diferentes. A implantação com Docker é recomendada.

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

Configurações de Variáveis de Ambiente

ParâmetroDescriçãoValor PadrãoObrigatórioObservações
NACOS_ADDREndereço do servidor Nacos127.0.0.1:8848Nãoo endereço do servidor Nacos, ex., 192.168.1.1:8848. Observação: Inclua a porta.
NACOS_USERNAMENome de usuário do NacosnacosNãoo nome de usuário do Nacos, ex., nacos.
NACOS_PASSWORDSenha do Nacos-Sima senha do Nacos, ex., nacos.
COMPASS_API_BASEEndpoint da API COMPASS para busca aprimoradahttps://registry.mcphub.ioNãoSubstitui o endpoint padrão da API COMPASS
SEARCH_MIN_SIMILARITYPontuação mínima de similaridade (0.0-1.0)0.5NãoFiltra resultados de busca pela pontuação mínima de similaridade
SEARCH_RESULT_LIMITNúmero máximo de resultados a retornar10NãoLimita o número de resultados de busca
NACOS_NAMESPACENamespace do NacospublicNãoNamespace do Nacos, ex. public
TRANSPORT_TYPETipo de protocolo de transportestdioNãotipo de protocolo de transporte. Opções: stdio, sse, streamable_http.
PROXIED_MCP_NAMENome do servidor MCP com proxy-NãoNo modo proxy, especifique o nome do servidor MCP a ser convertido. Deve ser registrado no Nacos primeiro.
MODEModo de funcionamentorouterNãoOpções disponíveis: router, proxy.
PORTPorta do serviço quando TRANSPORT_TYPE é sse ou streamable_http8000Não
ACCESS_KEY_IDID da chave de acesso Aliyun ram-Não
ACCESS_KEY_SECRETSegredo da chave de acesso Aliyun ram-Não

typescript

Uso com Cline, Cursor, Claude e outros aplicativos

{
  "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"
      }
    }
  }
}

Licença

O nacos-mcp-router é licenciado sob a Licença Apache 2.0. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença Apache 2.0. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.