MCP-S Gateway

Um gateway OAuth seguro e de código aberto para autenticação MCP.

Documentação

mcp-gateway logo

Webrix MCP-S Gateway
Um gateway OAuth seguro e de código aberto para autenticação MCP

Gateway + camada de integração para o Model Context Protocol (MCP)

MCP Gateway is released under the MIT license npm latest release Downloads GitHub Stars


MCP-S Gateway

mcp-gateway é um gateway seguro e uma camada de integração para o Model Context Protocol (MCP). Ele fornece uma interface unificada e pronta para empresas para conectar, gerenciar e estender módulos e serviços MCP, com foco em segurança e integração perfeita.

MCP Gateway Demo

Início Rápido

1. Configure seus servidores MCP - Crie o arquivo mcp.json no seu projeto:

{
  "mcpServers": {
    "your-server": {
      "command": "npx",
      "args": ["-y", "@your-mcp-server"],
      "env": {
        "API_KEY": "your-api-key"
      }
    },
    "octocode": {
      "command": "npx",
      "args": ["octocode-mcp"]
    }
  }
}

2. Use o arquivo .env.example como base e substitua conforme necessário:

3. Inicie com npx (Recomendado):

# Default (uses ./mcp.json and ./.env)
npx @mcp-s/secure-mcp-gateway

# Custom configuration paths
npx @mcp-s/secure-mcp-gateway --mcp-config ./custom/mcp.json --envfile ./custom/.env

Ou clone:

git clone https://github.com/mcp-s-ai/secure-mcp-gateway.git && cd secure-mcp-gateway
npm install && npm run start

4. Adicione à sua configuração MCP:

stdio:

{
  "mcpServers": {
    "mcp-gateway": {
      "command": "npx",
      "args": ["-y", "@mcp-s/mcp"],
      "env": {
        "BASE_URL": "http://localhost:3000"
      }
    }
  }
}

Configuração HTTP Streamable:

{
  "mcpServers": {
    "mcp-gateway": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Recursos

  • Gateway Auto-hospedado: Implante dentro da sua própria infraestrutura para máximo controle
  • Autenticação OAuth: Autenticação segura com qualquer provedor OAuth via Auth.js
  • Suporte a TypeScript: Totalmente tipado para desenvolvimento robusto

Suporta todos os tipos de conexão MCP:

  • STDIO: Servidores MCP de entrada/saída padrão

  • StreamableHTTP: Conexões de streaming baseadas em HTTP via http://localhost:3000/mcp (ou https://<your-domain>/mcp para implantações hospedadas)

    Seleção de Servidor: Você pode se conectar a um servidor MCP específico adicionando o parâmetro de consulta ?server_name=XXX, onde XXX é o nome do servidor da sua configuração mcp.json. Por exemplo: http://localhost:3000/mcp?server_name=your-server

    Conecte-se com seu cliente de IA preferido:

    ClienteLink
    Claude Claudeclaude.ai
    Cursor Cursorcursor.com
    Windsurf Windsurfcodeium.com/windsurf
    VSCode VSCodecode.visualstudio.com
    Cline Clinecline.tools
    Highlight AI Highlight AIhighlightai.com
    Augment Code Augment Codeaugmentcode.com

Implantação

Implante o gateway mcp-s usando npx:

  1. Configure suas variáveis de ambiente (veja Configuração Avançada)
  2. Crie seu arquivo de configuração mcp.json
  3. Execute npx @mcp-s/secure-mcp-gateway

Para implantações em produção, considere usar:

  • Gerenciadores de processos como PM2: pm2 start "npx @mcp-s/secure-mcp-gateway" --name mcp-gateway
  • Orquestração de contêineres (Docker, Kubernetes)
  • Plataformas em nuvem (Heroku, Railway, Render)

Configuração de Autenticação

Auth.js logo

O mcp-gateway aproveita o poder do Auth.js, que suporta mais de 80 provedores OAuth prontos para uso. Isso torna o Auth.js o companheiro perfeito para um projeto de código aberto como o mcp-gateway. Ambas as bibliotecas compartilham o mesmo compromisso com flexibilidade, segurança e experiência do desenvolvedor. Ao integrar com o Auth.js, evitamos reinventar a roda da autenticação e, em vez disso, fornecemos fluxos OAuth testados em batalha e prontos para produção que funcionam perfeitamente entre provedores.

Basta definir a variável de ambiente AUTH_PROVIDER e fornecer as credenciais necessárias para o provedor escolhido - o mcp-gateway cuida do resto.

Configuração OAuth do Google

Documentação: Provedor Google do Auth.js

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=google
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
Configuração OAuth do Okta

Documentação: Provedor Okta do Auth.js

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=okta
AUTH_OKTA_ID=your-okta-client-id
AUTH_OKTA_SECRET=your-okta-client-secret
AUTH_OKTA_ISSUER=https://your-okta-domain.okta.com/oauth2/default
Configuração OAuth do Azure AD

Documentação: Provedor Azure AD do Auth.js

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=azure-ad
AUTH_AZURE_AD_ID=your-azure-client-id
AUTH_AZURE_AD_SECRET=your-azure-client-secret
AUTH_AZURE_AD_TENANT_ID=your-tenant-id-or-common
Configuração OAuth do GitHub

Documentação: Provedor GitHub do Auth.js

O OAuth do GitHub é particularmente útil para servidores MCP que interagem com repositórios do GitHub, como o Octocode. Ao usar o OAuth do GitHub, você pode especificar escopos para controlar quais permissões seus servidores MCP têm acesso.

AUTH_SECRET=your-random-secret
AUTH_PROVIDER=github
AUTH_GITHUB_ID=your-github-client-id
AUTH_GITHUB_SECRET=your-github-client-secret
AUTH_GITHUB_SCOPES=repo

Escopos comuns do GitHub:

  • repo - Acesso total aos repositórios (públicos e privados)
  • public_repo - Acesso apenas a repositórios públicos
  • read:user - Acesso de leitura às informações do perfil do usuário
  • user:email - Acesso aos endereços de e-mail do usuário

Para o Octocode e servidores MCP semelhantes que precisam de acesso ao repositório, o escopo repo é normalmente necessário.

Para outros provedores, consulte a documentação de Provedores do Auth.js.

Configuração Avançada

Opções de Linha de Comando

OpçãoDescriçãoValor PadrãoExemplo
--mcp-configCaminho para o arquivo de configuração dos servidores MCP./mcp.json--mcp-config ./config/servers.json
--envfileCaminho para o arquivo de variáveis de ambiente./.env--envfile ./config/production.env

Variáveis de Ambiente

Variável de AmbienteDescriçãoValor PadrãoObrigatório
PORTPorta do servidor3000Não
BASE_URLURL base para o gatewayhttp://localhost:3000Não
AUTH_SECRETSegredo para assinar/criptografar tokens (gere com openssl rand -base64 33)-Sim
AUTH_PROVIDERNome do provedor OAuthgoogleNão
TOKEN_EXPIRATION_TIMETempo de expiração do token em milissegundos86400000 (24h)Não
DB_PATHCaminho do arquivo do banco de dados SQLite./mcp.sqliteNão
AUTH_[Provider]_IDID do cliente OAuth para seu provedor-Sim
AUTH_[Provider]_SECRETSegredo do cliente OAuth para seu provedor-Sim
AUTH_[Provider]_*Variáveis adicionais específicas do provedor (veja documentação do Auth.js)-Varia

Solução de Problemas

StreamableHTTP com Cursor: Ferramentas não aparecem após o login

Problema: Ao usar a configuração StreamableHTTP no Cursor, as ferramentas não aparecem mesmo após a autenticação bem-sucedida.

Solução: Certifique-se de ter apenas uma janela do Cursor aberta. Várias janelas do Cursor podem interferir no estabelecimento da conexão MCP.

  1. Feche todas as janelas do Cursor
  2. Abra uma única janela do Cursor
  3. Repita o processo de autenticação
Erro do módulo SQLite do Node.js

Problema: Você vê o seguinte erro:

Error [ERR_UNKNOWN_BUILTIN_MODULE]: No such built-in module: node:sqlite

Solução: Este erro ocorre ao usar uma versão mais antiga do Node.js. O módulo node:sqlite requer Node.js versão 22 ou superior.

Correção:

  1. Atualize o Node.js para a versão 22 ou posterior
  2. Verifique sua versão: node --version
  3. Reinicie o gateway: npm run start

Opções de instalação:

Solução Hospedada

Visite webrix.ai para nossa solução de hospedagem totalmente gerenciada com recursos avançados:

  • Zero Configuração: Comece em segundos sem qualquer configuração
  • Segurança de nível empresarial: Autenticação SSO avançada para todas as interações MCP
  • Mais de 20 conectores pré-construídos: Integração rápida plug-and-play com centenas de ferramentas
  • Funções e Permissões: Controle de acesso granular com definições de funções personalizadas
  • Monitoramento e Análises: Insights em tempo real sobre seu uso de MCP
  • Alta Disponibilidade: SLA de uptime de 99,9% com CDN global
  • Suporte Premium: Acesso direto à nossa equipe de engenharia
  • Integrações Personalizadas: Construa e implante conectores MCP personalizados

Comunidade

Tem perguntas? Precisa de ajuda para começar? Quer compartilhar sua configuração MCP?

Junte-se à nossa comunidade no Slack, onde desenvolvedores estão ajudando ativamente uns aos outros com implementações do gateway MCP, solução de problemas e compartilhamento de melhores práticas.

💬 Junte-se à nossa comunidade no Slack →

Licença

Lançado sob a Licença MIT. Contribuições são bem-vindas - dê uma estrela e faça um fork!