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

  1. Crea una cuenta y un proyecto gratuitos en Neon. Copia la cadena de conexión para una rama dev.
  2. cp .env.example .env y completa DATABASE_URL (de Neon) y API_KEY_PEPPER (cualquier cadena aleatoria larga: genera una con node -e "console.log(require('crypto').randomBytes(32).toString('hex'))").
  3. Instala, migra, siembra, compila:
    npm install
    npm run db:migrate
    npm run db:seed
    npm run build
    
  4. Créate una clave API:
    npm run create-api-key -- "my laptop"
    
    Esto imprime la clave sin procesar una sola vez: guárdala, no se puede recuperar.
  5. Ejecuta localmente:
    npm run dev
    
    curl http://localhost:3000/health debería devolver ok.

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

  1. curl -fsSL agents.railway.com | sh y luego railway login.
  2. Desde este repositorio: railway init (o railway link si ya existe un proyecto).
  3. 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.
  4. railway up.
  5. En el panel de Railway: Settings → Networking → Generate Domain. Establece PUBLIC_HOSTNAME a ese dominio (necesario para que la comprobación de host por rebote de DNS del SDK permita tráfico real).
  6. Ejecuta npm run db:migrate && npm run db:seed una vez contra la DATABASE_URL de producción (desde tu máquina, apuntando a la cadena de conexión de producción).
  7. Crea una clave API de producción con npm run create-api-key, apuntando a la DATABASE_URL de 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 estado
  • list_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ón
  • query_framework_doc(framework, version, question): busca una respuesta verificada, devuelve query_id
  • report_outcome(query_id, worked, note?): registra si la respuesta devuelta realmente funcionó

Cobertura

FrameworkVersiónEntradasFuente
Expo SDK54.0.020expo.dev/changelog/sdk-54
Next.js16.3.220nextjs.org/blog, guía de actualización de nextjs.org/docs
Supabase (supabase-js)2.112.320supabase.com/changelog, lanzamientos de GitHub
Prisma ORM7.9.120guía de actualización de prisma.io/docs, prisma.io/changelog
Vercel AI SDK7.0.7720guías de migración de ai-sdk.dev, vercel.com/blog
Nuxt4.5.220guí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.