framework-mcp

Documentação verificada e com versão fixada do Expo SDK para agentes de codificação via MCP remoto.

Documentação

framework-mcp

Uma camada de verificação de atualidade de dependências para agentes de codificação: um servidor MCP remoto que fornece a agentes de codificação (Claude Code, Cursor, etc.) respostas verificadas e com versão fixada sobre frameworks em rápida evolução — Expo, Next.js, Supabase, Prisma e crescendo.

Por quê: os dados de treinamento de LLMs ficam desatualizados mais rápido do que os ciclos de lançamento de frameworks. Os agentes continuam tentando adivinhar as mesmas perguntas específicas de versão em vez de consultar uma fonte verificada e com versão fixada. Este servidor é essa fonte — não uma ferramenta de framework único, mas uma camada geral que qualquer agente de codificação pode consultar antes de confiar no que ele "lembra" sobre o comportamento atual de uma dependência.

Stack

Node 24 + TypeScript, @modelcontextprotocol/sdk sobre transporte Streamable HTTP (com estado, sessão por conexão), Express, Postgres (pg), autenticação por chave de API via middleware requireBearerAuth do próprio SDK.

Hospedagem: Railway (computação, ~US$ 5/mês no plano Hobby) + Neon (Postgres, plano gratuito, com ramificações).

Configuração local

  1. Crie uma conta e um projeto gratuitos no Neon. Copie a string de conexão para uma ramificação dev.
  2. cp .env.example .env e preencha DATABASE_URL (do Neon) e API_KEY_PEPPER (qualquer string aleatória longa — gere uma com node -e "console.log(require('crypto').randomBytes(32).toString('hex'))").
  3. Instale, migre, popule o banco e compile:
    npm install
    npm run db:migrate
    npm run db:seed
    npm run build
    
  4. Crie uma chave de API para você:
    npm run create-api-key -- "my laptop"
    
    Isso imprime a chave bruta uma única vez — salve-a, ela não é recuperável.
  5. Execute localmente:
    npm run dev
    
    curl http://localhost:3000/health deve retornar ok.

Verifique com o MCP Inspector

npx @modelcontextprotocol/inspector

Conecte-se a http://localhost:3000/mcp com transporte "Streamable HTTP" e defina um cabeçalho Authorization: Bearer <your-api-key> nas configurações de conexão. Confirme que todas as 3 ferramentas (ping, query_framework_doc, report_outcome) aparecem na lista e podem ser chamadas.

Implantar no Railway

  1. curl -fsSL agents.railway.com | sh e depois railway login.
  2. A partir deste repositório: railway init (ou railway link se um projeto já existir).
  3. Defina as variáveis de ambiente (painel, ou railway variable set KEY=value): DATABASE_URL (string de conexão da sua ramificação de produção do Neon, separada da sua ramificação de desenvolvimento), API_KEY_PEPPER, NODE_ENV=production.
  4. railway up.
  5. No painel do Railway: Settings → Networking → Generate Domain. Defina PUBLIC_HOSTNAME para esse domínio (necessário para a verificação de host de rebinding de DNS do SDK permitir tráfego real).
  6. Execute npm run db:migrate && npm run db:seed uma vez contra o DATABASE_URL de produção (da sua máquina, apontando para a string de conexão de produção).
  7. Crie uma chave de API de produção com npm run create-api-key, apontando para o DATABASE_URL de produção.

Obter uma chave de API

Autoatendimento: visite https://framework-mcp-production.up.railway.app/, informe um e-mail, receba uma chave instantaneamente (uma chave ativa por e-mail, com limite de taxa).

Fallback para mantenedor/local: npm run create-api-key -- "label".

Conectar um cliente remoto

Em um .mcp.json do Claude Code:

{
  "mcpServers": {
    "framework-mcp": {
      "type": "http",
      "url": "https://<your-railway-domain>/mcp",
      "headers": { "Authorization": "Bearer <your-api-key>" }
    }
  }
}

Ferramentas

  • ping(message) — verificação de integridade
  • list_frameworks() — lista todos os frameworks/versões cobertos, com contagens de entradas — chame isso primeiro se você não souber o slug/versão exatos para passar abaixo
  • query_framework_doc(framework, version, question) — consulta uma resposta verificada, retorna query_id
  • report_outcome(query_id, worked, note?) — registra se a resposta retornada realmente funcionou

Cobertura

FrameworkVersãoEntradasFonte
Expo SDK54.0.020expo.dev/changelog/sdk-54
Next.js16.3.220nextjs.org/blog, guia de atualização em nextjs.org/docs
Supabase (supabase-js)2.112.320supabase.com/changelog, releases no GitHub
Prisma ORM7.9.120guia de atualização em prisma.io/docs, prisma.io/changelog
Vercel AI SDK7.0.7720guias de migração em ai-sdk.dev, vercel.com/blog
Nuxt4.5.220guia de atualização em nuxt.com/docs, nuxt.com/blog

Todas as entradas verificadas em 2026-08-22 contra as fontes oficiais citadas em cada arquivo de seed em db/seed/. Para adicionar um framework: crie um novo db/seed/<slug>.json seguindo o formato dos arquivos existentes e depois npm run db:seed (it picks up every *.json nessa pasta automaticamente).

Status

Cadastro de autoatendimento ativo em / (e-mail → chave de API instantânea, uma por e-mail, com limite de taxa por IP). Publicado no Registro MCP oficial (registry.modelcontextprotocol.io) e enviado ao mcpservers.org e Glama (ambos em revisão). Não está no Smithery (o scanner de descoberta OAuth deles não suporta autenticação simples de chave bearer estática) nem no mcp.so (sem nível de listagem gratuito).

Adiado (Estágio B, ainda não construído): cobrança via Stripe, plan_tier / credit_balance / aplicação de limite de taxa por chave em api_keys, pontuação/classificação com base em feedback.