Skip to main content
Glama

SSE MCP Server with JWT Authentication

Servidor SSE MCP con autenticación JWT

Este es un servidor SSE de Protocolo de Contexto de Modelo (MCP) con autenticación basada en JWT.
Le permite exponer múltiples herramientas de IA a través de un transporte SSE, protegido a través de un flujo seguro de token portador.

Construido con:

  • 🚀 Node.js + Express

  • 🧩 @modelcontextprotocol/sdk

  • 🔒 Tokens web JSON (JWT) para autenticación

  • ⚙️ Zod para validación de entrada

✅ Completamente probado con @modelcontextprotocol/inspector

📂 Estructura del proyecto

server/ ├── index.ts # Main Express + MCP server ├── .env # Environment variables ├── package.json # Project metadata & scripts ├── tsconfig.json # TypeScript config └── README.md # You are here!

Related MCP server: MCP Toolkit

✨ Características

  • ✅ Conexión SSE segura mediante token JWT de portador

  • ✅ Registro dinámico de herramientas (eco, tiempo, número aleatorio, etc.)

  • ✅ Probado con MCP Inspector

  • ✅ Registra todos los eventos del ciclo de vida de la solicitud

  • ✅ Gestión de sesiones para el punto final /message

  • 🚀 Listo para extenderse para uso en producción

⚙️ Configuración

1. Clonar el repositorio

git clone https://github.com/anisirji/mcp-server-remote-setup-with-jwt-auth.git cd mcp-server-remote-setup-with-jwt-auth

2. Instalar dependencias

npm install

3. Crear archivo .env

echo "JWT_SECRET=your-secret-key" > .env

4. Ejecute el servidor

npm run dev

✅ El servidor se ejecutará en:

http://localhost:3001/sse

🧪 Probando el servidor con MCP Inspector

Paso 1: Instalar MCP Inspector

📖 Documentos oficiales: Inspector MCP

npx @modelcontextprotocol/inspector

Paso 2: Generar un token

Utilice cURL para obtener su token JWT:

curl "http://localhost:3001/auth/token?username=aniket&scope=mcp:access"

✅ Ejemplo de respuesta:

{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." }

Paso 3: Conectar MCP Inspector

  1. Abrir la interfaz de usuario del Inspector

  2. Establecer tipo de transporte: SSE

  3. URL:

    http://localhost:3001/sse
  4. Agregar encabezado de autorización:

    Authorization: Bearer <your-token>
  5. Haga clic en Conectar

¡Éxito! Tu servidor ya está conectado.

Paso 4: Herramientas de prueba

Vaya a la pestaña Herramientas en el Inspector y haga clic en Herramientas de lista .

Verás:

  • test

  • echo

  • get-time

  • random-number

¡Pruébalos y disfrútalos!

Referencia de API

🔑 Generar token

GET /auth/token?username=<username>&scope=mcp:access

Punto final SSE (requiere token)

GET /sse Authorization: Bearer <token>

📩 Enviar mensaje a sesión activa

POST /message?sessionId=<sessionId> Authorization: Bearer <token>

🧩 Referencia de herramientas

Nombre de la herramienta

Descripción

test

Conexión de prueba (comprobación de seguridad)

echo

Echo de vuelta el mensaje proporcionado

get-time

Devuelve la hora actual del servidor

random-number

Devuelve un número aleatorio (mín./máx.)

🗓️ Próximos cambios

  • [ ] Lista de revocación de tokens (lista negra)

  • [ ] Acceso a herramientas basado en roles (verificaciones de alcance)

  • [ ] Latido de la sesión / mantener activa

  • [ ] Limitación de velocidad y registro

  • [ ] Dockerización para implementación

📚 Recursos útiles

👨‍💻 Mantenedor

Aniket

📄 Licencia

Este proyecto es de código abierto y de uso gratuito.

🚀 Construir. Asegurar. Empodera.

-
security - not tested
F
license - not found
-
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/anisirji/mcp-server-remote-setup-with-jwt-auth'

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