# Desenvolvedores · edugalbs.com

URL: https://www.edugalbs.com/desenvolvedores

> A API e o servidor MCP do edugalbs.com: busque e leia o site do Eduardo Galbiati por código ou por um agente de IA. Primeiros passos, endpoints, limites, erros e versionamento. Público, só leitura, sem chave de API.

Desenvolvedores

## Construa sobre o edugalbs.com

Tudo o que o Eduardo Galbiati publica aqui (o perfil, o Diário da fábrica e o blog de tecnologia e liderança) pode ser buscado e lido por código ou por um agente de IA, numa API REST ou num servidor MCP. Público, só leitura, gratuito e sem chave de API.

### Para começar

Buscar no site:

```
curl "https://www.edugalbs.com/api/v1/search?q=gargalo+de+testes&limit=3"
```

Ler um dos resultados inteiro, em Markdown:

```
curl "https://www.edugalbs.com/api/v1/pages?url=/blog/12-factor-agents"
```

Ou adicionar o servidor MCP a um agente. No Claude Code:

```
claude mcp add --transport http edugalbs https://www.edugalbs.com/api/mcp
```

Qualquer cliente que fale MCP por Streamable HTTP funciona com o mesmo endereço. Toda página do site também existe em Markdown: acrescente `.md` ao endereço ou peça com `Accept: text/markdown`.

### Endpoints

Todos são `GET`, respondem JSON e aceitam `lang=pt|en` quando faz sentido. A descrição completa está no [documento OpenAPI 3.1](https://www.edugalbs.com/openapi.json).

| Endpoint | O que devolve |
| --- | --- |
| `/api/v1` | A lista de endpoints. |
| `/api/v1/search?q=` | Os trechos que mais combinam, de todas as páginas, com o endereço de cada uma (`section=all|diary|blog|profile`, `limit=1–10`). |
| `/api/v1/pages?url=` | Uma página em Markdown, com título e resumo; páginas longas em partes com `offset` e `max_chars`. |
| `/api/v1/chapters` | Os capítulos do Diário da fábrica, em ordem. |
| `/api/v1/posts` | Os posts do blog, do mais novo ao mais antigo. |
| `/api/v1/profile` | O perfil que o Eduardo escreveu para assistentes de IA. |
| `POST /api/mcp` | O servidor MCP (JSON-RPC 2.0): ferramentas `search_site`, `get_page`, `list_diary_chapters`, `list_blog_posts`, `get_profile`. |

### Chaves de API e sandbox

Não há chave de API nem cadastro: todos os endpoints são públicos. A API só lê o que já está publicado, então não existe uma sandbox separada: dá para experimentar em produção à vontade, e nada que você envie muda o site. Capítulos e posts agendados só aparecem depois do horário de publicação.

### Limites de requisição

60 requisições por minuto por endereço, somando a API REST e o servidor MCP. Toda resposta diz quanto sobra, com os cabeçalhos RateLimit do rascunho do IETF e os campos das versões anteriores dele:

```
RateLimit-Policy: "default";q=60;w=60
RateLimit: "default";r=59;t=60
RateLimit-Limit: 60
RateLimit-Remaining: 59
RateLimit-Reset: 60
```

Acima do limite, a resposta é `429` com `Retry-After`, os segundos de espera.

### Erros

Todo erro em `/api/` é JSON, com o status HTTP, um código para tratar, uma mensagem e uma dica do que fazer (em inglês):

```
{ "error": { "status": 400, "code": "missing_parameter",
  "message": "The parameter \"q\" is required.",
  "hint": "Add ?q=… : What to look for.",
  "docs": "https://www.edugalbs.com/openapi.json" } }
```

Os códigos: `not_found`, `unsupported_version`, `method_not_allowed`, `missing_parameter`, `invalid_parameter`, `page_not_found`, `rate_limited` e `unavailable`. O servidor MCP responde erros JSON-RPC. Uma página que não existe é um `404` em Markdown quando você pede `text/markdown`.

### Versionamento e depreciação

-   A versão principal está no endereço: `/api/v1/`. `/api/<endpoint>`, sem versão, é um atalho da v1 e continua sendo.
-   Acréscimos (endpoints, parâmetros ou campos novos) entram na v1 e só mudam o `info.version` do documento OpenAPI. Clientes devem ignorar campos que não conhecem.
-   O que quebraria um cliente sai como `/api/v2/`. A v1 continua funcionando por pelo menos 6 meses depois disso, e as respostas dela avisam com os cabeçalhos `Deprecation` (RFC 9745) e `Sunset` (RFC 8594) e um `Link` para a [política](https://www.edugalbs.com/developers#versioning) com `rel="deprecation"`.
-   O servidor MCP negocia a versão do protocolo no `initialize`, e as ferramentas dele seguem a mesma regra.

### Arquivos para máquinas

-   [/openapi.json](https://www.edugalbs.com/openapi.json): a API, em OpenAPI 3.1.
-   [/.well-known/mcp/server-card.json](https://www.edugalbs.com/.well-known/mcp/server-card.json): o cartão do servidor MCP.
-   [/.well-known/api-catalog](https://www.edugalbs.com/.well-known/api-catalog): o catálogo de APIs (RFC 9727).
-   [/.well-known/agent-skills/index.json](https://www.edugalbs.com/.well-known/agent-skills/index.json): skills para agentes apresentarem o Eduardo, lerem o diário e buscarem no site.
-   [/llms.txt](https://www.edugalbs.com/llms.txt) e [/llms-full.txt](https://www.edugalbs.com/llms-full.txt): o guia do site e o texto completo dele, em Markdown.
-   [/sitemap.xml](https://www.edugalbs.com/sitemap.xml) e [/robots.txt](https://www.edugalbs.com/robots.txt), que declara que o conteúdo pode ser usado em buscas, respostas de IA e treino de IA.

Dúvidas ou um bug? Escreva para [eduardo.galbiati@gmail.com](mailto:eduardo.galbiati@gmail.com) (veja [contato](https://www.edugalbs.com/contato) e [privacidade](https://www.edugalbs.com/privacidade)).

Atualizado em 29 de outubro de 2026.
