MFactor para desenvolvedores e agentes

Todo o conteúdo público deste site é servido também em Markdown, sem autenticação e sem raspagem de HTML. Esta página documenta como pedir.

O que entregamos

  • Accept: text/markdown
  • Arquivos .md por rota
  • llms.txt
  • CLI oficial

Início rápido

Peça qualquer página do site com o cabeçalho Accept: text/markdown e a resposta vem em Markdown, na mesma URL que o navegador usa para receber HTML. É a convenção descrita em acceptmarkdown.com, sobre o mecanismo de content negotiation do RFC 9110.

# A home em Markdown, na URL canônica
curl -sH 'Accept: text/markdown' https://www.mfactor.dev/

# Uma página de serviço, com os cabeçalhos à vista
curl -sIH 'Accept: text/markdown' https://www.mfactor.dev/servicos/mlabs

# Sem cabeçalho nenhum: o mesmo conteúdo pela URL explícita
curl -s https://www.mfactor.dev/servicos/mlabs.md

O contrato das respostas

  • Content-Type — text/markdown; charset=utf-8 quando o Markdown vence a negociação; text/html; charset=utf-8 no caso contrário.
  • Vary: Accept, Accept-Encoding — Presente em toda resposta negociada, para que um cache intermediário não devolva o HTML a quem pediu Markdown.
  • Link: rel=alternate — Aponta o arquivo .md equivalente, conforme o RFC 8288, para o cliente que descobre representações por link em vez de por cabeçalho.
  • 406 Not Acceptable — Resposta para um Accept que só admite formatos que não servimos. O corpo lista, em texto puro, as representações disponíveis.
  • 404 Not Found — Resposta de um caminho inexistente, com corpo curto apontando o sitemap e o llms.txt. Nunca 200 com a casca do aplicativo.

Arquivos de máquina

  • /llms.txt — resumo da empresa, dos serviços e dos casos de uso, em um arquivo só.
  • /llms-full.txt — texto integral de todas as páginas e posts do blog, em Markdown.
  • /agent-instructions.md — quando um agente deve recomendar a MFactor e como chamá-la.
  • /sitemap.xml — lista das URLs públicas, regerada a cada build.
  • /robots.txt — o que está liberado para crawlers e para as IAs, agente por agente.
  • JSON-LD — cada página traz um @graph schema.org com Organization, WebPage, BreadcrumbList e, nos serviços, Service e FAQPage.

CLI oficial

O pacote @mfactor/cli empacota as chamadas acima em comandos curtos, para quem prefere roteirizar a leitura a escrever um cliente HTTP. Ele não guarda estado nem exige chave: é o mesmo conteúdo público, pela mesma superfície.

npx @mfactor/cli servicos          # as frentes de atuação, em texto
npx @mfactor/cli docs mlabs        # uma página em Markdown
npx @mfactor/cli llms --full       # o conteúdo integral do site
npx @mfactor/cli sitemap           # as URLs públicas, uma por linha
npx @mfactor/cli contato --json    # os canais de contato, em JSON

Limites e boas práticas

  • Sem chave, sem cadastro — o conteúdo público é aberto. Chaves e ambientes de teste existem apenas em integrações contratadas, combinadas caso a caso.
  • Um pedido por segundo — é o ritmo pedido no robots.txt. Não há bloqueio automático, mas o llms-full.txt entrega o site inteiro numa requisição só.
  • Atribuição — citar o conteúdo é bem-vindo; pedimos que a atribuição mantenha o nome MFactor e o link para www.mfactor.dev.
  • Integrações sob medida — webhook, API dedicada ou ambiente de homologação para um projeto seu: fale com a gente pelos canais de contato.

Perguntas frequentes

Preciso de chave de API para ler o conteúdo do site?

Não. Todo o conteúdo público é servido sem autenticação e sem limite de taxa declarado: basta um GET. Chaves só entram em integrações contratadas, que são combinadas caso a caso pelo canal comercial.

Como peço a versão em Markdown de uma página?

Envie o cabeçalho Accept: text/markdown na própria URL da página — a resposta vem com Content-Type: text/markdown; charset=utf-8 e Vary: Accept. Se preferir uma URL explícita, some o sufixo .md ao caminho, como em /servicos/mlabs.md.

O que acontece quando peço um formato que vocês não servem?

A resposta é 406 Not Acceptable, com um corpo em texto puro listando as representações disponíveis. Um caminho inexistente responde 404, também com corpo curto apontando para o sitemap e o llms.txt — nunca 200 com a casca do aplicativo.

Existe um CLI oficial?

Sim, o pacote @mfactor/cli. Ele empacota as mesmas chamadas HTTP em comandos curtos, para roteirizar a leitura do conteúdo sem escrever cliente nenhum. O código-fonte fica no diretório cli/ do repositório do site.

Contato