MCP Servers à Mão: Discovery, Versionamento e Streaming em Tempo Real

Problema
Hoje os MCP Servers estão espalhados por diversos catálogos independentes (mcpserver.cloud, mcp.run, smithery.ai etc.), sem um ponto único de verdade. Isso gera:

  • Descoberta fragmentada: difícil saber onde encontrar um serviço de tradução, análise de imagens ou qualquer outro MCP.
  • Reinvenção de busca: cada projeto acaba criando seu próprio index/search em vez de aproveitar motores consagrados.
  • Instalação inconsistente: sem um registry unificado, cada ferramenta define seu próprio fluxo (scripts curl|jq|bash, pacotes npm isolados, YAMLs distintos).

Links de referência:

O que acontece hoje

  1. Milhares de repositórios marcados com topic:mcp-server, mas sem nenhum critério de qualidade unificado.
  2. Descoberta via GitHub (ou Google) retorna centenas de “hits” — e o usuário precisa filtrar manualmente por atividade, stars, CI, documentação…
  3. Instalação DIY: cada servidor vem com seu próprio método (bash scripts, pacotes npm, binários zipados), sem um comando padronizado.
  4. Real‑time & SSE: alguns MCP Servers já suportam SSE, mas cada um expõe seu próprio endpoint, sem roteamento nem autenticação central.

Proposta de solução em 3 camadas “baixíssimo custo”

1. Camada de Descoberta “grátis” (GitHub Search + Pages)

  • Marcação padrão: todo MCP Server aponta o topic mcp-server.
  • UI estática em GitHub Pages que consome a GitHub Search API (q=topic:mcp-server) e aplica filtros (estrelas, última atualização, tags).

2. Camada de Distribuição & Versionamento (Git‑backed Registry)

  • Repositório ‘registry’ com diretório /servers/<nome>/<versão>.json, contendo metadados obrigatórios:
    {
      "name": "translator-serv",
      "version": "1.2.0",
      "description": "Tradução de textos em 50 idiomas",
      "tags": ["nlp","translation","sse"],
      "installCommand": "mcp install translator-serv@^1.2.0",
      "sseEndpoint": "https://hub.example.com/services/translator-serv/v1.2.0/sse",
      "qualityScore": 0.87,
      "repository": "https://github.com/me/translator-serv"
    }
    
  • GitHub Actions: valida JSON (schema, semver, checksums), gera index.json agregando todos os serviços e publica via GitHub Pages.

3. Camada de Real‑Time & SSE Hub

  • Adapter STDIO→SSE usando Supergateway
    npx supergateway \
      --stdio "node dist/index.js" \
      --port 8000 \
      --baseUrl https://hub.example.com \
      --ssePath /services/translator-serv/v1.2.0/sse \
      --messagePath /services/translator-serv/v1.2.0/invoke
    
  • Hub Serverless (Cloudflare Workers + KV ou Express em Heroku Free) que:
    • Recebe POST /register e PUT /heartbeat dos MCP Servers (autenticados por API key).
    • Exibe GET /sse público (autenticado por token cliente) com snapshot inicial + eventos added/removed.

Benefícios dessa abordagem

  • Custo quase zero: tudo roda em GitHub Free + Pages + Actions + Cloudflare Workers (gratuito).
  • Escalabilidade: GitHub e Cloudflare garantem CDN e alta disponibilidade.
  • Qualidade & Segurança: validações via CI, assinatura de index.json, API keys e tokens JWT.
  • Experiência unificada:
    • Descoberta via UI ou CLI (mcp search).
    • mcp install <service>@<semver> com copy‑&‑paste.
    • Conexão SSE padrão para interagir em tempo real.

Com esse plano, entregamos um registry centralizado, confiável e de baixo custo, reforçando a adoção de MCP Servers em qualquer aplicação.

© 2025 Ciro Cesar Maciel. Feito com café, código e curiosidade.
Powered byBlog logoBlogs