Carlos5456/mcp-server
3.1
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Server SSE is a multi-tenant server implementing the Model Context Protocol with real-time communication via Server-Sent Events.
MCP Server SSE - Multi-Tenant
Um servidor MCP (Model Context Protocol) que utiliza Server-Sent Events (SSE) para comunicação e suporta multi-tenancy via path da URL.
🚀 Características
- Protocolo MCP: Implementa o protocolo oficial Model Context Protocol
- SSE (Server-Sent Events): Comunicação em tempo real via HTTP
- Multi-Tenant: Suporte a múltiplos clientes via path da URL
- Ferramenta HTTP: Ferramenta integrada para requisições HTTP externas
- TypeScript: Desenvolvido em TypeScript com tipagem completa
📋 Pré-requisitos
- Node.js 18+
- npm ou yarn
🛠️ Instalação
- Clone o repositório:
git clone <repository-url>
cd mcp-server-sse
- Instale as dependências:
npm install
- Compile o projeto:
npm run build
🚀 Execução
Desenvolvimento
npm run dev
Produção
npm run build
npm start
🌐 Endpoints
Health Check
GET /health
Listar Tenants
GET /tenants
Configurar Tenant
GET /{tenant_id}
Conectar ao MCP Server (SSE)
GET /{tenant_id}/mcp
Executar Ferramentas
POST /{tenant_id}/execute
🔧 Tenants Configurados
- cliente1:
http://localhost:3000/cliente1
- cliente2:
http://localhost:3000/cliente2
📖 Uso
1. Acessar um Tenant
curl http://localhost:3000/cliente1
2. Conectar ao MCP Server via SSE
curl -N http://localhost:3000/cliente1/mcp
3. Executar Ferramenta HTTP
curl -X POST http://localhost:3000/cliente1/execute \
-H "Content-Type: application/json" \
-d '{
"tool": "http_request",
"arguments": {
"method": "GET",
"url": "https://api.exemplo.com/dados"
}
}'
🏗️ Arquitetura
src/
├── index.ts # Ponto de entrada
├── http-server.ts # Servidor HTTP Express
├── mcp-server.ts # Servidor MCP principal
├── http-tool.ts # Ferramenta HTTP
├── tenant-manager.ts # Gerenciador de tenants
├── sse-transport.ts # Transport SSE
└── types.ts # Tipos TypeScript
🔌 Integração com N8N
Para usar no N8N, configure as seguintes URLs:
- Cliente 1:
http://localhost:3000/cliente1
- Cliente 2:
http://localhost:3000/cliente2
O servidor automaticamente detectará o tenant baseado no path da URL e configurará o banco de dados apropriado.
🛡️ Segurança
- CORS habilitado para desenvolvimento
- Validação de tenants
- Timeout configurável para requisições HTTP
- Tratamento de erros robusto
📝 Logs
O servidor fornece logs detalhados incluindo:
- Conexões MCP
- Execução de ferramentas
- Configuração de tenants
- Erros e exceções
🔄 Desenvolvimento
Watch Mode
npm run watch
Build
npm run build
📄 Licença
MIT
🤝 Contribuição
- Fork o projeto
- Crie uma branch para sua feature
- Commit suas mudanças
- Push para a branch
- Abra um Pull Request
📞 Suporte
Para dúvidas ou problemas, abra uma issue no repositório.