framework-mcp
Documentación verificada y con versión fijada del SDK de Expo para agentes de codificación a través de MCP remoto.
Documentación
framework-mcp
Una capa de verificación de actualidad de dependencias para agentes de codificación: un servidor MCP remoto que proporciona a los agentes de codificación (Claude Code, Cursor, etc.) respuestas verificadas y fijadas por versión sobre frameworks en rápida evolución: Expo, Next.js, Supabase, Prisma, y más.
Por qué: los datos de entrenamiento de los LLM se vuelven obsoletos más rápido que los ciclos de lanzamiento de los frameworks. Los agentes siguen adivinando las mismas preguntas específicas de versión en lugar de consultar una fuente verificada y fijada por versión. Este servidor es esa fuente: no es una herramienta de un solo framework, sino una capa general que cualquier agente de codificación puede consultar antes de confiar en lo que "recuerda" sobre el comportamiento actual de una dependencia.
Stack
Node 24 + TypeScript, @modelcontextprotocol/sdk sobre transporte Streamable HTTP
(stateful, sesión por conexión), Express, Postgres (pg),
autenticación por clave API mediante el middleware requireBearerAuth del propio SDK.
Alojamiento: Railway (computación, ~$5/mes plan Hobby) + Neon (Postgres, plan gratuito, con ramas).
Configuración local
- Crea una cuenta y un proyecto gratuitos en Neon. Copia la
cadena de conexión para una rama
dev. cp .env.example .envy completaDATABASE_URL(de Neon) yAPI_KEY_PEPPER(cualquier cadena aleatoria larga: genera una connode -e "console.log(require('crypto').randomBytes(32).toString('hex'))").- Instala, migra, siembra, compila:
npm install npm run db:migrate npm run db:seed npm run build - Créate una clave API:
Esto imprime la clave sin procesar una sola vez: guárdala, no se puede recuperar.npm run create-api-key -- "my laptop" - Ejecuta localmente:
npm run devcurl http://localhost:3000/healthdebería devolverok.
Verificar con MCP Inspector
npx @modelcontextprotocol/inspector
Conéctate a http://localhost:3000/mcp con transporte "Streamable HTTP" y
establece un encabezado Authorization: Bearer <your-api-key> en la configuración de
conexión. Confirma que las 3 herramientas (ping, query_framework_doc,
report_outcome) aparecen y se pueden invocar.
Desplegar en Railway
curl -fsSL agents.railway.com | shy luegorailway login.- Desde este repositorio:
railway init(orailway linksi ya existe un proyecto). - Establece las variables de entorno (panel de control, o
railway variable set KEY=value):DATABASE_URL(la cadena de conexión de tu rama de producción de Neon, separada de tu rama de desarrollo),API_KEY_PEPPER,NODE_ENV=production. railway up.- En el panel de Railway: Settings → Networking → Generate Domain. Establece
PUBLIC_HOSTNAMEa ese dominio (necesario para que la comprobación de host por rebote de DNS del SDK permita tráfico real). - Ejecuta
npm run db:migrate && npm run db:seeduna vez contra laDATABASE_URLde producción (desde tu máquina, apuntando a la cadena de conexión de producción). - Crea una clave API de producción con
npm run create-api-key, apuntando a laDATABASE_URLde producción.
Obtener una clave API
Autoservicio: visita https://framework-mcp-production.up.railway.app/, introduce un correo electrónico, obtén una clave al instante (una clave activa por correo, con límite de tasa).
Alternativa para mantenedores/local: npm run create-api-key -- "label".
Conectar un cliente remoto
En un .mcp.json de Claude Code:
{
"mcpServers": {
"framework-mcp": {
"type": "http",
"url": "https://<your-railway-domain>/mcp",
"headers": { "Authorization": "Bearer <your-api-key>" }
}
}
}
Herramientas
ping(message): comprobación de estadolist_frameworks(): lista todos los frameworks/versiones cubiertos, con recuentos de entradas: llámala primero si no sabes el slug/versión exacto para pasar a continuaciónquery_framework_doc(framework, version, question): busca una respuesta verificada, devuelvequery_idreport_outcome(query_id, worked, note?): registra si la respuesta devuelta realmente funcionó
Cobertura
| Framework | Versión | Entradas | Fuente |
|---|---|---|---|
| Expo SDK | 54.0.0 | 20 | expo.dev/changelog/sdk-54 |
| Next.js | 16.3.2 | 20 | nextjs.org/blog, guía de actualización de nextjs.org/docs |
| Supabase (supabase-js) | 2.112.3 | 20 | supabase.com/changelog, lanzamientos de GitHub |
| Prisma ORM | 7.9.1 | 20 | guía de actualización de prisma.io/docs, prisma.io/changelog |
| Vercel AI SDK | 7.0.77 | 20 | guías de migración de ai-sdk.dev, vercel.com/blog |
| Nuxt | 4.5.2 | 20 | guía de actualización de nuxt.com/docs, nuxt.com/blog |
Todas las entradas verificadas el 2026-08-22 contra las fuentes oficiales citadas en cada
archivo de siembra bajo db/seed/. Para añadir un framework: crea un nuevo
db/seed/<slug>.json siguiendo la forma de los archivos existentes, luego npm run db:seed (it picks up every *.json en esa carpeta automáticamente).
Estado
Registro de autoservicio activo en / (correo electrónico → clave API instantánea, una por correo,
con límite de tasa por IP). Publicado en el Registro MCP oficial
(registry.modelcontextprotocol.io) y enviado a mcpservers.org y Glama
(ambos pendientes de revisión). No está en Smithery (su escáner de descubrimiento OAuth no
admite autenticación simple de clave portadora estática) ni en mcp.so (sin nivel de listado gratuito).
Diferido (Etapa B, aún no construido): facturación de Stripe, plan_tier /
credit_balance / aplicación de límite de tasa por clave en api_keys,
puntuación/clasificación basada en comentarios.