8000 GitHub - willy3087/MCP-connect: Enables cloud-based AI services to access local Stdio based MCP servers via HTTP requests
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Enables cloud-based AI services to access local Stdio based MCP servers via HTTP requests

License

Notifications You must be signed in to change notification settings

willy3087/MCP-connect

 
 

Repository files navigation

MCP Connect

Licença: MIT

███╗   ███╗ ██████╗██████╗      ██████╗ ██████╗ ███╗   ██╗███╗   ██╗███████╗ ██████╗████████╗
████╗ ████║██╔════╝██╔══██╗    ██╔════╝██╔═══██╗████╗  ██║████╗  ██║██╔════╝██╔════╝╚══██╔══╝
██╔████╔██║██║     ██████╔╝    ██║     ██║   ██║██╔██╗ ██║██╔██╗ ██║█████╗  ██║        ██║
██║╚██╔╝██║██║     ██╔═══╝     ██║     ██║   ██║██║╚██╗██║██║╚██╗██║██╔══╝  ██║        ██║
██║ ╚═╝ ██║╚██████╗██║         ╚██████╗╚██████╔╝
8000
█║ ╚████║██║ ╚████║███████╗╚██████╗   ██║
╚═╝     ╚═╝ ╚═════╝╚═╝          ╚═════╝ ╚═════╝ ╚═╝  ╚═══╝╚═╝  ╚═══╝╚══════╝ ╚═════╝   ╚═╝

O Model Context Protocol (MCP) introduzido pela Anthropic é interessante. No entanto, a maioria dos servidores MCP são construídos em transporte Stdio, que, embora excelente para acessar recursos locais, limita seu uso em aplicações baseadas em nuvem.

O MCP Connect é uma pequena ferramenta criada para resolver este problema:

  • Integração com Nuvem: Permite que serviços de IA baseados em nuvem interajam com servidores MCP locais baseados em Stdio
  • Tradução de Protocolo: Converte requisições HTTP/HTTPS em comunicação Stdio
  • Segurança: Fornece acesso seguro a recursos locais mantendo o controle
  • Flexibilidade: Suporta vários servidores MCP sem modificar sua implementação
  • Fácil de usar: Basta executar o MCP Connect localmente, sem necessidade de modificar o servidor MCP
  • Túnel: Suporte integrado para túnel Ngrok

Ao preencher esta lacuna, podemos aproveitar todo o potencial das ferramentas MCP locais em aplicações de IA baseadas em nuvem sem comprometer a segurança.

Como funciona

+-----------------+     HTTPS/SSE      +------------------+      stdio      +------------------+
|                 |                    |                  |                 |                  |
|  Ferramentas IA | <--------------->  |  Ponte Node.js   | <------------>  |    Servidor MCP  |
|   (Remoto)      |       Túneis       |    (Local)       |                 |     (Local)      |
|                 |                    |                  |                 |                  |
+-----------------+                    +------------------+                 +------------------+

Pré-requisitos

  • Node.js

Início Rápido

  1. Clone o repositório

    git clone https://github.com/EvalsOne/MCP-connect.git

    e entre no diretório

    cd MCP-connect
  2. Copie .env.example para .env e configure a porta e o token de autenticação:

    cp .env.example .env
  3. Instale as dependências:

    npm install
  4. Execute o MCP Connect

    # construa o MCP Connect
    npm run build
    # execute o MCP Connect
    npm run start
    # ou, execute em modo de desenvolvimento (suporta recarregamento automático via nodemon)
    npm run dev

    Agora o MCP Connect deve estar rodando em http://localhost:3000/bridge.

Observação:

  • A ponte é projetada para ser executada em uma máquina local, então você ainda precisa construir um túnel para o servidor MCP local que seja acessível da nuvem.
  • Ngrok, Cloudflare Zero Trust e LocalTunnel são recomendados para construir o túnel.

Executando com Túnel Ngrok

O MCP Connect tem suporte integrado para túnel Ngrok. Para executar a ponte com uma URL pública usando Ngrok:

  1. Obtenha seu token de autenticação Ngrok em https://dashboard.ngrok.com/authtokens

  2. Adicione ao seu arquivo .env:

    NGROK_AUTH_TOKEN=seu_token_ngrok
    
  3. Execute com túnel:

    # Modo de produção com túnel
    npm run start:tunnel
    
    # Modo de desenvolvimento com túnel
    npm run dev:tunnel

    Após o MCP Connect estar em execução, você pode ver a URL da ponte MCP no console.

Endpoints da API

Após o MCP Connect estar em execução, existem dois endpoints expostos:

  • GET /health: Endpoint de verificação de saúde
  • POST /bridge: Endpoint principal da ponte para receber requisições da nuvem

Por exemplo, a seguir está uma configuração do MCP GitHub oficial:

{
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-github"],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "<seu_token_de_acesso_pessoal_github>"
  }
}

Você pode enviar uma requisição para a ponte da seguinte forma para listar as ferramentas do servidor MCP e chamar uma ferramenta específica.

Listando ferramentas:

curl -X POST http://localhost:3004/bridge \
     -d '{
       "method": "tools/list",
       "serverPath": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-github"
       ],
       "params": {},
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<seu_token_de_acesso_pessoal_github>"
       }
     }'

Chamando uma ferramenta:

Usando a ferramenta search_repositories para procurar repositórios relacionados ao modelcontextprotocol

curl -X POST http://localhost:3004/bridge \
     -d '{
       "method": "tools/call",
       "serverPath": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-github"
       ],
       "params": {
         "name": "search_repositories",
         "arguments": {
            "query": "modelcontextprotocol"
         },
       },
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<seu_token_de_acesso_pessoal_github>"
       }
     }'

Autenticação

O MCP Connect usa um sistema simples de autenticação baseado em token. O token é armazenado no arquivo .env. Se o token estiver definido, o MCP Connect o usará para autenticar a requisição.

Exemplo de requisição com token:

curl -X POST http://localhost:3004/bridge \
     -H "Authorization: Bearer <seu_token>" \
     -d '{
       "method": "tools/list",
       "serverPath": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-github"
       ],
       "params": {},
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<seu_token_de_acesso_pessoal_github>"
       }
     }'

Configuração

Variáveis de ambiente necessárias:

  • AUTH_TOKEN: Token de autenticação para a API da ponte (Opcional)
  • PORT: Porta do servidor HTTP (padrão: 3004, obrigatório)
  • LOG_LEVEL: Nível de log (padrão: info, obrigatório)
  • NGROK_AUTH_TOKEN: Token de autenticação Ngrok (Opcional)

Usando o MCP Connect com ConsoleX AI para acessar o Servidor MCP Local

A seguir está uma demonstração do uso do MCP Connect para acessar um Servidor MCP local no ConsoleX AI:

demo-mcp.mp4

Licença

Licença MIT

About

Enables cloud-based AI services to access local Stdio based MCP servers via HTTP requests

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
30F6

Languages

  • TypeScript 97.5%
  • Shell 2.5%
0