Servidor MCP Express
Un servidor de Protocolo de Contexto de Modelo (MCP) sin estado creado con Express y TypeScript.
Características
Implementación de servidor MCP sin estado con transporte HTTP Streamable moderno
TypeScript para seguridad de tipos
Express.js para el manejo de HTTP
Related MCP server: OpenAPI MCP Server
Requisitos
Instalación
# Clone the repository (or download)
git clone https://github.com/your-username/sample-express-mcp-server.git
cd sample-express-mcp-server
# Install dependencies
npm install
Desarrollo
# Build the TypeScript code
npm run build
# Run in development mode with auto-reloading
npm run dev
# Run tests (when added)
npm test
Estructura del servidor
src/
├── index.ts # Main application entry point
└── server.ts # MCP server definition with resource, tool, and prompt
Funcionalidad disponible
Este servidor implementa un punto final de eco simple con tres componentes MCP:
Recurso : echo://{message} - Devuelve el mensaje como un recurso
Herramienta : echo - Repite el mensaje proporcionado como una respuesta de la herramienta
Prompt : echo - Crea un mensaje de usuario con el mensaje proporcionado
Protocolo MCP
Este servidor implementa el Protocolo de Contexto de Modelo (MCP), una forma estandarizada para que los LLM interactúen con datos y funcionalidades externas. Expone un punto final de API sin estado que responde a solicitudes JSON-RPC.
Uso de la API
Envíe una solicitud POST a /mcp con una carga útil JSON-RPC:
Inicializar
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Accept: text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {
"roots": {
"listChanged": true
},
"sampling": {}
},
"clientInfo": {
"name": "ExampleClient",
"version": "1.0.0"
}
}
}'
Herramienta de eco de llamada
curl -X POST http://localhost:3001/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Accept: text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "echo",
"arguments": {
"message": "Hello, World!"
}
},
"id": 1
}'
Licencia
ISC