MCP-S Gateway
Um gateway OAuth seguro e de código aberto para autenticação MCP.
Documentação
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-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.
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(ouhttps://<your-domain>/mcppara 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, ondeXXXé o nome do servidor da sua configuraçãomcp.json. Por exemplo:http://localhost:3000/mcp?server_name=your-serverConecte-se com seu cliente de IA preferido:
Cliente Link Claude
claude.ai Cursor
cursor.com Windsurf
codeium.com/windsurf VSCode
code.visualstudio.com
Clinecline.tools Highlight AI
highlightai.com
Augment Codeaugmentcode.com
Implantação
Implante o gateway mcp-s usando npx:
- Configure suas variáveis de ambiente (veja Configuração Avançada)
- Crie seu arquivo de configuração
mcp.json - 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
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úblicosread:user- Acesso de leitura às informações do perfil do usuáriouser: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ção | Descrição | Valor Padrão | Exemplo |
|---|---|---|---|
--mcp-config | Caminho para o arquivo de configuração dos servidores MCP | ./mcp.json | --mcp-config ./config/servers.json |
--envfile | Caminho para o arquivo de variáveis de ambiente | ./.env | --envfile ./config/production.env |
Variáveis de Ambiente
| Variável de Ambiente | Descrição | Valor Padrão | Obrigatório |
|---|---|---|---|
PORT | Porta do servidor | 3000 | Não |
BASE_URL | URL base para o gateway | http://localhost:3000 | Não |
AUTH_SECRET | Segredo para assinar/criptografar tokens (gere com openssl rand -base64 33) | - | Sim |
AUTH_PROVIDER | Nome do provedor OAuth | google | Não |
TOKEN_EXPIRATION_TIME | Tempo de expiração do token em milissegundos | 86400000 (24h) | Não |
DB_PATH | Caminho do arquivo do banco de dados SQLite | ./mcp.sqlite | Não |
AUTH_[Provider]_ID | ID do cliente OAuth para seu provedor | - | Sim |
AUTH_[Provider]_SECRET | Segredo 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.
- Feche todas as janelas do Cursor
- Abra uma única janela do Cursor
- 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:
- Atualize o Node.js para a versão 22 ou posterior
- Verifique sua versão:
node --version - Reinicie o gateway:
npm run start
Opções de instalação:
- Usando nvm:
nvm install 22 && nvm use 22 - Baixe de nodejs.org
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!

