Descope Auth MCP Server Template
Plantilla de servidor MCP con autenticación Descope
Una plantilla de servidor FastMCP sencilla para Render, con autenticación MCP completa mediante Descope.
Qué incluye
Un servidor MCP funcional que utiliza FastMCP con transporte HTTP Streamable
Soporte completo de autorización MCP con el
DescopeProviderde FastMCP y el SDKdescope-mcpUna herramienta de ejemplo (
hello) que devuelve "Hello, world!" y aplica requisitos de ámbito a nivel de herramienta (mcp:greet)Un Blueprint
render.yamlpara una fácil implementación
Nota: Esta plantilla se implementa en el plan gratuito de Render de forma predeterminada. Los servicios gratuitos se desactivan tras 15 minutos de inactividad, lo que provoca arranques en frío de 30 a 60 segundos en la siguiente solicitud. Los clientes MCP pueden agotar el tiempo de espera durante este retraso. Para un uso fiable, actualice a un plan de pago en el panel de control de Render: el plan Starter mantiene su servicio funcionando continuamente.
Related MCP server: MCP Server Template
Requisitos previos
Configuración de Descope
Inicie sesión en la Consola de Descope.
Navegue a Agentic Identity Hub → MCP Servers.
Haga clic en + MCP Server para crear un nuevo servidor MCP y asígnele un nombre.
En MCP Client Registration, habilite Client ID Metadata Documents (CIMD) y Dynamic Client Registration (DCR). Opcionalmente, puede restringir los dominios permitidos para los clientes que se registren a través de CIMD (por ejemplo,
https://claude.ai); puede dejar este campo en blanco.En MCP Server Scopes, añada un ámbito llamado
mcp:greety una descripción sencilla como "Saludar al usuario".Haga clic en Create.
Expanda la sección
Connect your MCP server to Descopeen la página de confirmación.Copie la Well-Known URL. Se ve así:
https://api.descope.com/v1/apps/agentic/.../.well-known/openid-configurationEsta es su
DESCOPE_CONFIG_URL.
Nota: Descope emite tokens siguiendo los indicadores de recursos (RFC 8707), tal como requiere la especificación MCP. Cuando implemente en Render o ejecute localmente, deberá actualizar la sección de URLs del servidor MCP.
Implementación en Render
Asegúrese de haber completado el paso de Configuración de Descope antes de desarrollar localmente, ya que necesitará su
DESCOPE_CONFIG_URL.
Haga un fork de este repositorio en su cuenta de GitHub.
Haga clic en Deploy to Render (o haga un fork de este repositorio en GitHub e impórtelo como un Blueprint en su cuenta de Render).
En sus configuraciones especificadas, establezca la variable de entorno con el valor obtenido en el paso de Configuración de Descope:
Clave
Valor
DESCOPE_CONFIG_URLSu Well-Known URL de la consola de Descope
Haga clic en Deploy Blueprint.
Una vez activo, copie la URL de su servicio de Render (por ejemplo,
https://<your-project>.onrender.com), añada/mcpal final y agréguela a MCP Server URLs en la consola de Descope.
¡Ahora tiene un servidor MCP alojado de forma remota con la especificación de autenticación completa soportada!
Desarrollo local
Asegúrese de haber completado el paso de Configuración de Descope antes de desarrollar localmente, ya que necesitará su
DESCOPE_CONFIG_URL.
Primero, haga un fork de este repositorio en su cuenta de GitHub y luego siga las instrucciones a continuación para configurar su entorno.
# Install dependencies
uv sync
# Set required environment variables
export DESCOPE_CONFIG_URL="<your URL from Descope>"
export SERVER_URL="http://localhost:8000"
# Run the server
uv run server.py --transport http --port 8000Cuando ejecute esto localmente, su servidor se ejecutará en http://localhost:8000/mcp.
Herramientas disponibles
Herramienta | Descripción | Ámbito requerido |
| Devuelve "Hello, world!" |
|
Próximos pasos
Ahora que todo está configurado, le recomendamos algunos pasos más si va a llevar su servidor MCP a producción.
Añada sus propias herramientas
Reemplace o amplíe la herramienta hello en server.py con su propia lógica. Para cada nueva herramienta:
Defina un nuevo ámbito en la consola de Descope en MCP Server Scopes (por ejemplo,
mcp:your-scope).Añada la herramienta usando el decorador
@mcp.tool().Llame a
require_scopes(token, ["mcp:your-scope"])dentro del cuerpo de la herramienta para aplicar el control de acceso.Añada la nueva herramienta y su ámbito requerido a la tabla de Herramientas disponibles anterior.
@mcp.tool()
def my_tool() -> str:
token = validate_token()
require_scopes(token, ["mcp:your-scope"])
return "your result"Use un dominio personalizado en Render
De forma predeterminada, su servicio es accesible en https://<your-project>.onrender.com. Para usar un dominio personalizado:
En el panel de control de Render, vaya a su servicio → Settings → Custom Domains.
Añada su dominio y siga las instrucciones de DNS proporcionadas.
Una vez verificado el dominio, actualice MCP Server URLs en la consola de Descope para usar su dominio personalizado (por ejemplo,
https://mcp.yourdomain.com/mcp).No se necesitan cambios en el código:
RENDER_EXTERNAL_URLes configurado automáticamente por Render y reflejará el dominio principal.
Proteja todas las herramientas con ámbitos
La comprobación require_scopes() es intencionalmente opcional por herramienta para que pueda añadir herramientas sin autenticación si es necesario. Para un servidor de producción, es una buena práctica llamar a require_scopes() en cada herramienta. También puede centralizar esto escribiendo un asistente que envuelva validate_token() y require_scopes() y llamándolo al principio de cada manejador de herramientas.
Cómo funciona la autenticación MCP
Un cliente MCP (por ejemplo, Claude Desktop, Cursor) descubre los metadatos de OAuth desde
/.well-known/oauth-authorization-serveral intentar conectarse a su servidor MCP.El cliente se registra dinámicamente (a través de CIMD o DCR) en el servidor de autorización y redirige al usuario al flujo de inicio de sesión/consentimiento de Descope.
Después de iniciar sesión, Descope emite un JWT firmado. El cliente incluye esto como un token Bearer en cada solicitud MCP.
DescopeProvidervalida el JWT usando el endpoint JWKS de Descope antes de que se llame a cualquier herramienta.Dentro de la herramienta,
validate_token()analiza las reclamaciones yrequire_scopes()comprueba quemcp:greetesté presente, devolviendo un error al cliente si no lo está.
Más información
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA minimal FastMCP server template for Render deployment with streamable HTTP transport. Provides a starting point for building custom MCP servers with easy one-click deployment capabilities.
- FlicenseNot gradedqualityNot gradedmaintenanceA minimal FastMCP server template for quick deployment to Render with streamable HTTP transport. Provides a foundation for building custom MCP servers with easy local development and one-click deployment capabilities.
- FlicenseNot gradedqualityDmaintenanceA minimal FastMCP server template for Render deployment with streamable HTTP transport. Provides a starting point for building custom MCP servers with easy deployment options.
- FlicenseNot gradedqualityCmaintenanceA minimal, production-ready FastMCP server template with auto-discovery, YAML configuration, authentication, and a knowledgebase, enabling quick scaffolding of new MCP servers.
Related MCP Connectors
Primarily to be used as a template repository for developing MCP servers with FastMCP in Python, P…
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
MCP server for verifying EUDI/Talao wallet data via OIDC4VP (pull) for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/render-examples/descope-render'
If you have feedback or need assistance with the MCP directory API, please join our Discord server