Skip to main content
Glama
nico4348

MCP Compatible Server

by nico4348

Servidor MCP Compatible

Servidor MCP con compatibilidad hacia atrás que soporta tanto el protocolo Streamable HTTP moderno (2025-03-26) como el protocolo HTTP+SSE deprecated (2024-11-05).

🚀 Características

Protocolos Soportados

  1. Streamable HTTP (2025-03-26) - Protocolo moderno

    • ✅ Resumabilidad de sesiones

    • ✅ Event Store para recuperación de eventos

    • ✅ Gestión avanzada de sesiones

    • ✅ Soporte completo para GET/POST/DELETE

  2. HTTP+SSE (2024-11-05) - Protocolo legacy

    • ✅ Notificaciones en tiempo real

    • ✅ Compatibilidad con clientes antiguos

    • ✅ Soporte para Server-Sent Events

Herramientas Incluidas

  • 🔧 get-server-info - Información del servidor y estadísticas

  • 🧪 test-compatibility - Test de compatibilidad de protocolos

  • 📡 start-notification-stream - Stream de notificaciones periódicas

  • 📨 send-immediate-notification - Notificación inmediata

  • 🔗 test-protocol-connectivity - Test de conectividad

Related MCP server: SSE MCP Server

📦 Instalación

# Instalar dependencias
npm install

# Compilar TypeScript
npm run build

# Ejecutar en modo desarrollo
npm run dev

🎯 Uso

Iniciar el Servidor

# Modo desarrollo (con hot reload)
npm run dev

# Modo producción
npm run build && npm start

El servidor estará disponible en http://localhost:3002

Endpoints Disponibles

  • GET / - Información del servidor

  • /mcp - Endpoint Streamable HTTP (GET/POST/DELETE)

  • /sse - Endpoint SSE legacy (GET)

  • /messages - Endpoint POST legacy (POST)

Ejecutar Tests

# Test básico
npm run test

# Test completo de ambos protocolos
npm run test-both

# Test solo protocolo moderno
npm run test-modern

# Test solo protocolo legacy
npm run test-legacy

🔌 Conexión con Clientes

Protocolo Streamable HTTP (Moderno)

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const client = new Client({
  name: 'my-client',
  version: '1.0.0',
}, {
  capabilities: { logging: {} }
});

const transport = new StreamableHTTPClientTransport({
  baseUrl: 'http://localhost:3002/mcp'
});

await client.connect(transport);

Protocolo HTTP+SSE (Legacy)

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';

const client = new Client({
  name: 'my-legacy-client',
  version: '1.0.0',
}, {
  capabilities: { logging: {} }
});

const transport = new SSEClientTransport({
  url: 'http://localhost:3002/sse',
  postUrl: 'http://localhost:3002/messages'
});

await client.connect(transport);

🧪 Testing con Postman

Protocolo Streamable HTTP

  1. Inicializar sesión:

    POST http://localhost:3002/mcp
    Content-Type: application/json
    
    {
      "jsonrpc": "2.0",
      "method": "initialize",
      "params": {
        "capabilities": {}
      },
      "id": 1
    }
  2. Llamar herramienta:

    POST http://localhost:3002/mcp
    Content-Type: application/json
    Mcp-Session-Id: <session-id-from-response>
    
    {
      "jsonrpc": "2.0",
      "method": "tools/call",
      "params": {
        "name": "get-server-info",
        "arguments": {}
      },
      "id": 2
    }

Protocolo HTTP+SSE

  1. Establecer stream SSE:

    GET http://localhost:3002/sse
    Accept: text/event-stream
  2. Enviar mensajes:

    POST http://localhost:3002/messages?sessionId=<session-id>
    Content-Type: application/json
    
    {
      "jsonrpc": "2.0",
      "method": "initialize",
      "params": {
        "capabilities": {}
      },
      "id": 1
    }

🔧 Desarrollo

Estructura del Proyecto

servidor-compatible/
├── src/
│   ├── server.ts                 # Servidor principal
│   ├── shared/
│   │   └── inMemoryEventStore.ts # Event Store para resumabilidad
│   ├── tools/
│   │   └── notificationTools.ts  # Herramientas de notificación
│   ├── test-client.ts           # Cliente de prueba básico
│   ├── test-modern-client.ts    # Cliente protocolo moderno
│   ├── test-legacy-client.ts    # Cliente protocolo legacy
│   └── test-both-protocols.ts   # Test completo
├── package.json
├── tsconfig.json
└── README.md

Scripts Disponibles

  • npm run build - Compilar TypeScript

  • npm run dev - Ejecutar en modo desarrollo

  • npm run start - Ejecutar en modo producción

  • npm run test - Test básico

  • npm run test-both - Test completo de protocolos

  • npm run test-modern - Test protocolo moderno

  • npm run test-legacy - Test protocolo legacy

📋 Características Técnicas

Resumabilidad (Solo Protocolo Moderno)

El servidor implementa resumabilidad completa:

  • Event Store: Almacena eventos para recuperación

  • Session Management: Gestión de sesiones persistentes

  • Automatic Reconnection: Reconexión automática con recuperación de estado

Compatibilidad hacia Atrás

  • Dual Protocol Support: Soporta ambos protocolos simultáneamente

  • Independent Sessions: Sesiones independientes por protocolo

  • Legacy Client Support: Soporte completo para clientes antiguos

Gestión de Recursos

  • Memory Management: Limpieza automática de eventos antiguos

  • Connection Cleanup: Limpieza automática de conexiones cerradas

  • Graceful Shutdown: Apagado elegante del servidor

🛡️ Producción

Para uso en producción:

  1. Configurar variables de entorno apropiadas

  2. Usar un proceso manager como PM2

  3. Configurar reverse proxy (nginx/apache)

  4. Implementar logging estructurado

  5. Monitorear rendimiento y memoria

🤝 Contribuir

  1. Fork el proyecto

  2. Crear branch para feature (git checkout -b feature/nueva-funcionalidad)

  3. Commit cambios (git commit -m 'Agregar nueva funcionalidad')

  4. Push al branch (git push origin feature/nueva-funcionalidad)

  5. Crear Pull Request

📄 Licencia

Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE para más detalles.

🔗 Enlaces Útiles


Nota: Este servidor es compatible con ambos protocolos MCP, pero se recomienda usar el protocolo Streamable HTTP moderno para nuevas implementaciones debido a sus características avanzadas de resumabilidad y gestión de sesiones.

-
security - not tested
-
license - not tested
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nico4348/mcpRetrocompatSSE_HTTP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server