Este é um servidor MCP (Model Context Protocol) do tipo HTTP que expõe ferramentas através de endpoints HTTP usando o protocolo JSON-RPC 2.0.
-
Instalar dependências:
npm install
-
Iniciar o servidor:
npm start
O servidor estará disponível em:
http://localhost:3000
- URL:
POST /mcp/v1 - Protocolo: JSON-RPC 2.0
- Métodos suportados:
initialize- Inicializa a conexão MCPtools/list- Lista ferramentas disponíveistools/call- Executa uma ferramenta
- GET / - Informações do servidor
- GET /health - Health check
- GET /mcp/tools - Lista ferramentas (formato REST)
Gera um número aleatório entre 1 e 100.
Parâmetros: Nenhum
Exemplo de uso:
curl -X POST http://localhost:3000/mcp/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "generateRandomNumber",
"arguments": {}
}
}'Resposta:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"randomNumber\":42}"
}
]
}
}PORT- Porta do servidor (padrão: 3000)
PORT=3000
curl -X POST http://localhost:3000/mcp/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05"
}
}'curl -X POST http://localhost:3000/mcp/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}'curl -X POST http://localhost:3000/mcp/v1 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "generateRandomNumber",
"arguments": {}
}
}'O servidor utiliza:
- Express.js - Servidor HTTP
- @modelcontextprotocol/sdk - SDK do MCP
- JSON-RPC 2.0 - Protocolo de comunicação
- CORS - Suporte a requisições cross-origin
O servidor exibe logs informativos no console:
- Inicialização do servidor
- Endpoint principal e auxiliares
- Erros de processamento
Para verificar se o servidor está funcionando:
curl http://localhost:3000/healthResposta esperada:
{
"status": "ok",
"server": "MCP HTTP Server",
"version": "1.0.0",
"timestamp": "2024-01-01T00:00:00.000Z"
}