Skip to main content
Glama

Model Context Protocol (MCP) Server + Github OAuth

Este es un servidor Model Context Protocol (MCP) que admite conexiones MCP remotas, con Github OAuth integrado.

Puedes desplegarlo en tu propia cuenta de Cloudflare y, después de crear tu propia aplicación cliente de Github OAuth, tendrás un servidor MCP remoto totalmente funcional sobre el que puedes construir. Los usuarios podrán conectarse a tu servidor MCP iniciando sesión con su cuenta de GitHub.

Puedes usarlo como ejemplo de referencia para saber cómo integrar otros proveedores de OAuth con un servidor MCP desplegado en Cloudflare, utilizando la biblioteca workers-oauth-provider.

El servidor MCP (impulsado por Cloudflare Workers):

  • Actúa como servidor OAuth para tus clientes MCP

  • Actúa como cliente OAuth para tu servidor OAuth real (en este caso, GitHub)

[!WARNING] Esta es una plantilla de demostración diseñada para ayudarte a empezar rápidamente. Aunque hemos implementado varios controles de seguridad, debes implementar todas las medidas preventivas y de defensa en profundidad antes de desplegar en producción. Revisa nuestra guía de seguridad integral: Protegiendo servidores MCP

Primeros pasos

Clona el repositorio directamente e instala las dependencias: npm install.

Alternativamente, puedes usar la siguiente línea de comandos para que el servidor MCP remoto se cree en tu máquina local:

npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-github-oauth

Para producción

Crea una nueva aplicación OAuth de GitHub:

  • Para la URL de la página de inicio, especifica https://mcp-github-oauth.<your-subdomain>.workers.dev

  • Para la URL de devolución de llamada de autorización, especifica https://mcp-github-oauth.<your-subdomain>.workers.dev/callback

  • Anota tu Client ID y genera un Client secret.

  • Configura los secretos con Wrangler

wrangler secret put GITHUB_CLIENT_ID
wrangler secret put GITHUB_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY # add any random string here e.g. openssl rand -hex 32

[!IMPORTANT] Cuando crees el primer secreto, Wrangler preguntará si quieres crear un nuevo Worker. Envía «Y» para crear un nuevo Worker y guardar el secreto.

Configura un espacio de nombres KV

  • Crea el espacio de nombres KV: wrangler kv namespace create "OAUTH_KV"

  • Actualiza el archivo de Wrangler con el ID de KV

Despliegue y prueba

Despliega el servidor MCP para que esté disponible en tu dominio workers.dev wrangler deploy

Prueba el servidor remoto con Inspector:

npx @modelcontextprotocol/inspector@latest

Introduce https://mcp-github-oauth.<your-subdomain>.workers.dev/sse y pulsa conectar. Una vez que completes el flujo de autenticación, verás las herramientas funcionando:

¡Ya tienes un servidor MCP remoto desplegado!

Control de acceso

Este servidor MCP usa OAuth de GitHub para la autenticación. Todos los usuarios autenticados de GitHub pueden acceder a herramientas básicas como "add" y "userInfoOctokit".

La herramienta "generateImage" está restringida a usuarios específicos de GitHub incluidos en la configuración ALLOWED_USERNAMES:

// Add GitHub usernames for image generation access
const ALLOWED_USERNAMES = new Set(["yourusername", "teammate1"]);

Accede al servidor MCP remoto desde Claude Desktop

Abre Claude Desktop y ve a Settings -> Developer -> Edit Config. Esto abre el archivo de configuración que controla a qué servidores MCP puede acceder Claude.

Reemplaza el contenido con la siguiente configuración. Una vez que reinicies Claude Desktop, se abrirá una ventana del navegador que muestra tu página de inicio de sesión de OAuth. Completa el flujo de autenticación para otorgar a Claude acceso a tu servidor MCP. Después de que concedas el acceso, las herramientas estarán disponibles para que las uses.

{
  "mcpServers": {
    "math": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp-github-oauth.<your-subdomain>.workers.dev/sse"
      ]
    }
  }
}

Cuando las herramientas (debajo de 🔨) aparezcan en la interfaz, puedes pedirle a Claude que las use. Por ejemplo: «¿Podrías usar la herramienta de matemáticas para sumar 23 y 19?». Claude debería invocar la herramienta y mostrar el resultado generado por el servidor MCP.

Para el desarrollo local

Si quieres iterar y probar tu servidor MCP, puedes hacerlo en el desarrollo local. Esto requerirá que crees otra aplicación OAuth en GitHub:

  • Para la URL de la página de inicio, especifica http://localhost:8788

  • Para la URL de devolución de llamada de autorización, especifica http://localhost:8788/callback

  • Anota tu Client ID y genera un Client secret.

  • Crea un archivo .dev.vars en la raíz de tu proyecto con:

GITHUB_CLIENT_ID=your_development_github_client_id
GITHUB_CLIENT_SECRET=your_development_github_client_secret

Desarrollo y prueba

Ejecuta el servidor localmente para que esté disponible en http://localhost:8788 wrangler dev

Para probar el servidor local, introduce http://localhost:8788/sse en Inspector y pulsa conectar. Una vez que sigas las indicaciones, podrás ver "List Tools".

Uso de Claude y otros clientes MCP

Al usar Claude para conectarte a tu servidor MCP remoto, es posible que veas algunos mensajes de error. Esto se debe a que Claude Desktop aún no admite servidores MCP remotos, por lo que a veces se confunde. Para verificar si el servidor MCP está conectado, pasa el cursor sobre el icono 🔨 en la esquina inferior derecha de la interfaz de Claude. Deberías ver tus herramientas disponibles allí.

Uso de Cursor y otros clientes MCP

Para conectar Cursor con tu servidor MCP, elige Type: "Command" y en el campo Command, combina los campos command y args en uno (p. ej., npx mcp-remote https://<your-worker-name>.<your-subdomain>.workers.dev/sse).

Ten en cuenta que, aunque Cursor admite servidores HTTP+SSE, no admite autenticación, por lo que todavía necesitas usar mcp-remote (y usar un servidor STDIO, no uno HTTP).

Puedes conectar tu servidor MCP a otros clientes MCP como Windsurf abriendo el archivo de configuración del cliente, añadiendo el mismo JSON que se usó para la configuración de Claude y reiniciando el cliente MCP.

¿Cómo funciona?

OAuth Provider

La biblioteca OAuth Provider actúa como una implementación completa de servidor OAuth 2.1 para Cloudflare Workers. Gestiona las complejidades del flujo de OAuth, incluida la emisión, validación y gestión de tokens. En este proyecto, desempeña una doble función:

  • Autenticar a los clientes MCP que se conectan a tu servidor

  • Gestionar la conexión con los servicios de OAuth de GitHub

  • Almacenar de forma segura los tokens y el estado de autenticación en el almacenamiento KV

Durable MCP

Durable MCP extiende la funcionalidad base de MCP con los Durable Objects de Cloudflare, ofreciendo:

  • Gestión de estado persistente para tu servidor MCP

  • Almacenamiento seguro del contexto de autenticación entre solicitudes

  • Acceso a la información del usuario autenticado a través de this.props

  • Soporte para la disponibilidad condicional de herramientas según la identidad del usuario

MCP Remote

La biblioteca MCP Remote permite que tu servidor exponga herramientas que pueden ser invocadas por clientes MCP como Inspector. Esta:

  • Define el protocolo de comunicación entre los clientes y tu servidor

  • Proporciona una forma estructurada de definir herramientas

  • Maneja la serialización y deserialización de solicitudes y respuestas

  • Mantiene la conexión de Server-Sent Events (SSE) entre los clientes y tu servidor

-
license - not tested
-
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • An MCP server that gives your AI access to the source code and docs of all public github repos

  • A MCP server built for developers enabling Git based project management with project and personal…

  • An MCP server that integrates with Discord to provide AI-powered features.

View all MCP Connectors

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/vorticmateja/mcp-github-oauth'

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