brewpage-mcp
Publique HTML, Markdown, KV, JSON e arquivos no brewpage.app a partir de assistentes de IA.
Documentação
brewpage-mcp
Servidor MCP para BrewPage -- publique e gerencie conteúdo HTML, KV, JSON e arquivos diretamente de assistentes de IA.
O que é BrewPage
BrewPage é uma plataforma gratuita de hospedagem instantânea projetada para agentes de IA e desenvolvedores. Uma única requisição POST publica HTML, Markdown, um site com vários arquivos, um documento JSON ou um arquivo binário e retorna uma URL curta HTTPS estável -- sem contas, sem chaves de API, sem configuração de infraestrutura. Cada recurso carrega um token de proprietário retornado no momento da criação: use-o para atualizar o conteúdo no lugar (mantendo a mesma URL), excluir o recurso ou autenticar operações de listagem entre sessões. brewpage-mcp expõe esta API como quatorze ferramentas MCP tipadas para que qualquer agente compatível -- Claude, Codex, Gemini, Cursor, Cline -- possa publicar, atualizar, buscar e gerenciar conteúdo HTML, JSON, KV e arquivos do BrewPage sem sair da conversa.
Início Rápido
npx brewpage-mcp
Instalação
Claude Desktop
Adicione a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"brewpage": {
"command": "npx",
"args": ["-y", "brewpage-mcp"]
}
}
}
Claude Code
Adicione a ~/.claude/settings.json:
{
"mcpServers": {
"brewpage": {
"command": "npx",
"args": ["-y", "brewpage-mcp"]
}
}
}
Cursor
Abra Configurações > MCP e adicione:
{
"mcpServers": {
"brewpage": {
"command": "npx",
"args": ["-y", "brewpage-mcp"]
}
}
}
Cline (extensão do VS Code)
Abra o painel de configurações MCP do Cline e adicione:
{
"brewpage": {
"command": "npx",
"args": ["-y", "brewpage-mcp"]
}
}
Instalação Global
npm install -g brewpage-mcp
brewpage-mcp
Ferramentas
Quatorze ferramentas estão disponíveis, agrupadas por recurso: HTML, JSON, KV, Arquivos, Sites e Descoberta. Todas as operações de escrita retornam um token de proprietário; guarde-o para modificar ou excluir o recurso depois. Qualquer operação de atualização (PUT) requer o ownerToken original -- é a porta de autorização do backend. password é opcional em leituras/criações; se definido, é enviado como o cabeçalho X-Password.
HTML
publish_html
Publique conteúdo HTML ou Markdown no BrewPage. Retorna uma URL pública e token de proprietário.
Parâmetros: content (string), format (HTML | MARKDOWN, padrão HTML), namespace (opcional -- omita para manter a página privada/não listada: acessível apenas pelo link, não na galeria, não indexada por mecanismos de busca; passe public somente quando o usuário explicitamente quiser que seja listada na galeria e indexada por busca), password (opcional), ttlDays (1--30, padrão 15), filename (opcional, usado como fallback de título), showTopBar (booleano opcional -- adiciona uma barra de ferramentas com nome de arquivo, botão Download e alternância de tema).
Exemplo de prompt que invoca esta ferramenta:
"Salve este relatório HTML para eu compartilhar o link com minha equipe."
publish_html(content="<h1>Report</h1>...", format="HTML", ttlDays=15)
update_html
Atualize uma página HTML ou Markdown existente no lugar, preservando sua URL curta. Requer o ownerToken original retornado na criação.
Parâmetros: namespace (string), id (string), content (string, o novo corpo), ownerToken (string), format (opcional HTML | MARKDOWN | code, padrão HTML).
Exemplo de prompt:
"Corrija o erro de digitação no relatório que publiquei antes -- mesmo link."
update_html(namespace="public", id="aBcDeFgHiJ", content="<h1>Updated</h1>...", ownerToken="tok_...")
get_page
Busque o conteúdo de uma página HTML publicada no BrewPage por namespace e ID.
Parâmetros: namespace (string), id (string), password (opcional, se a página for protegida por senha).
Exemplo de prompt:
"Recupere o conteúdo da minha página publicada para eu continuar editando."
get_page(namespace="public", id="aBcDeFgHiJ")
Arquivos
publish_file
Envie um arquivo para o BrewPage buscando-o a partir de uma URL. Retorna uma URL pública e token de proprietário. Suporta imagens, PDFs, vídeo, áudio, arquivos de código e arquivos compactados.
Parâmetros: url (string, a URL de origem para buscar), namespace (opcional -- omita para manter o arquivo privado/não listado: acessível apenas pelo link, não na galeria, não indexado por busca; passe public somente para listá-lo e indexá-lo), filename (nome de arquivo personalizado opcional).
Exemplo de prompt:
"Envie este PNG e me dê um link compartilhável."
publish_file(url="https://example.com/diagram.png")
Sites
publish_site
Publique um site HTML de página única ou com vários arquivos. Passe entryContent para uma página única ou files (array de {path, content}) para um site com vários arquivos. Suporta proteção por senha, TTL e agrupamento por token de proprietário.
Parâmetros: entryContent (string, mutuamente exclusivo com files), files (array de {path, content}, mutuamente exclusivo com entryContent), entry (caminho do arquivo de entrada opcional, padrão index.html), namespace (opcional -- omita para manter o site privado/não listado: acessível apenas pelo link, não na galeria, não indexado por busca; passe public somente para listá-lo e indexá-lo), password (opcional), ttlDays (1--30, padrão 15), ownerToken (opcional, agrupa o site sob um proprietário existente).
Exemplo de prompt:
"Implante este site estático com index.html e style.css."
publish_site(files=[{"path": "index.html", "content": "..."}, {"path": "style.css", "content": "..."}])
JSON
publish_json
Publique um documento JSON no BrewPage. Retorna uma URL pública e token de proprietário. O corpo pode ser passado como uma string JSON ou como um objeto estruturado.
Parâmetros: json (string ou objeto, o payload JSON), namespace (opcional -- omita para manter o documento privado/não listado: acessível apenas pelo link, não na galeria, não indexado por busca; passe public somente para listá-lo e indexá-lo), password (opcional), ttlDays (opcional, 1--30, padrão 15), tags (opcional string[]).
Exemplo de prompt:
"Salve este blob de configuração como um documento JSON que eu possa buscar depois."
publish_json(json={"mode": "dark", "version": 3}, ttlDays=15)
get_json
Busque um documento JSON publicado por namespace e ID.
Parâmetros: namespace (string), id (string), password (opcional, enviado como X-Password se definido).
Exemplo de prompt:
"Leia novamente o documento JSON que acabei de armazenar."
get_json(namespace="public", id="aBcDeFgHiJ")
update_json
Atualize um documento JSON existente no lugar, preservando sua URL curta. Requer o ownerToken original.
Parâmetros: namespace (string), id (string), json (string ou objeto, o novo payload), ownerToken (string).
Exemplo de prompt:
"Aumente o campo de versão naquele documento JSON para 4."
update_json(namespace="public", id="aBcDeFgHiJ", json={"mode": "dark", "version": 4}, ownerToken="tok_...")
KV
publish_kv
Crie uma nova entrada KV (chave/valor). Retorna uma URL pública e token de proprietário. A entrada KV é endereçada por (namespace, id, key); esta ferramenta cria a entrada e emite o id gerado junto com o token de proprietário.
Parâmetros: key (string), value (string), namespace (opcional -- omita para manter o armazenamento KV privado/não listado: acessível apenas pelo link, não na galeria, não indexado por busca; passe public somente para listá-lo e indexá-lo), password (opcional), ttlDays (opcional, 1--30, padrão 15), tags (opcional string[]).
Exemplo de prompt:
"Armazene a chave de API sob o rótulo 'staging-token' para eu reutilizá-la na próxima sessão."
publish_kv(key="staging-token", value="abc123")
set_kv
Defina ou substitua o valor em um slot (namespace, id, key) existente. Requer o ownerToken original.
Parâmetros: namespace (string), id (string), key (string), value (string), ownerToken (string).
Exemplo de prompt:
"Atualize o valor de staging-token para o novo segredo."
set_kv(namespace="public", id="aBcDeFgHiJ", key="staging-token", value="def456", ownerToken="tok_...")
get_kv
Busque o valor armazenado em (namespace, id, key).
Parâmetros: namespace (string), id (string), key (string), password (opcional, enviado como X-Password se definido).
Exemplo de prompt:
"O que armazenei sob staging-token?"
get_kv(namespace="public", id="aBcDeFgHiJ", key="staging-token")
Descoberta
search_gallery
Navegue pela galeria pública de páginas do BrewPage ou liste recursos que você possui. Retorna um resultado paginado com metadados (id, título, contagem de visualizações, data de criação). Todos os parâmetros são opcionais; sem parâmetros, retorna as páginas públicas mais recentes.
Parâmetros: q (consulta de busca opcional), page (opcional, baseado em 0), size (tamanho de página opcional), sort (opcional date | views), mine (booleano opcional -- lista apenas recursos pertencentes a ownerToken), ownerToken (obrigatório apenas quando mine=true).
Exemplo de prompt:
"O que publiquei na semana passada?"
search_gallery(mine=true, ownerToken="tok_...", sort="date")
Gerenciamento
delete_resource
Exclua um recurso do BrewPage (página HTML, armazenamento KV, coleção JSON ou arquivo) usando o token de proprietário recebido na criação.
Parâmetros: type (html | kv | json | file), namespace (string), id (string), ownerToken (string).
Exemplo de prompt:
"Exclua a página que acabei de publicar -- namespace public, id aBcDeFgHiJ."
delete_resource(type="html", namespace="public", id="aBcDeFgHiJ", ownerToken="tok_...")
get_stats
Obtenha estatísticas de uso do BrewPage em toda a plataforma (contagem de páginas, contagem de arquivos, armazenamento, totais diários). Suporta um fuso horário IANA opcional para o limite de "hoje".
Parâmetros: tz (string de fuso horário IANA opcional, ex.: Europe/Lisbon, padrão UTC).
Exemplo de prompt:
"Quantas páginas estão atualmente hospedadas no BrewPage?"
get_stats()
Mapeamento de Consultas Comuns de LLM para Ferramentas BrewPage
| Consulta / intenção do LLM | Ferramenta | Notas |
|---|---|---|
| "Publique este HTML para eu compartilhar" | publish_html | format=HTML; salve ownerToken |
| "Compartilhe estas notas de reunião como um link" | publish_html | format=MARKDOWN; saída renderizada legível |
| "Hospede este artefato gerado por IA" | publish_html | namespace opcional; privado/não listado por padrão -- passe public para listar na galeria + indexar |
| "Envie esta imagem / PDF / vídeo" | publish_file | Busca a partir de URL; pré-visualização inline na URL curta |
| "Implante este site estático" | publish_site | Passe array files ou entryContent |
| "Corrija um erro de digitação na página que compartilhei -- mesmo link" | update_html | Requer ownerToken; a URL permanece a mesma |
| "Remova a página que publiquei" | delete_resource | Requer ownerToken da criação |
| "Leia novamente a página que publiquei" | get_page | Retorna conteúdo bruto para edição |
| "Quantas páginas há no BrewPage?" | get_stats | Retorna totais da plataforma |
| "Armazene estado JSON entre turnos" | publish_json | Retorna URL curta + token de proprietário |
| "Leia aquele documento JSON novamente" | get_json | Por namespace + id |
| "Atualize o JSON que armazenei" | update_json | Requer ownerToken; preserva a URL |
| "Salve um valor sob um rótulo / chave" | publish_kv | Crie um novo slot KV |
| "Altere o valor KV que armazenei" | set_kv | Requer ownerToken |
| "O que armazenei sob aquela chave?" | get_kv | Por namespace + id + key |
| "Liste minhas páginas publicadas" / "O que publiquei?" | search_gallery | Defina mine=true + ownerToken |
| "Navegue pela galeria pública do BrewPage" | search_gallery | Opcional q, sort=date|views |
Token de Proprietário
Toda resposta de publicação inclui um token de proprietário -- a única credencial que permite atualizar ou excluir seu conteúdo. Salve-o. Ele não pode ser recuperado.
- Reutilize-o via
X-Owner-Tokenem criações subsequentes para agrupar recursos sob um único proprietário. - Passe-o para
delete_resourcepara remover conteúdo. - Passe-o para
get_page(não necessário para leituras, mas obrigatório para listar seus próprios recursos via API REST).
Configuração
| Variável | Padrão | Descrição |
|---|---|---|
BREWPAGE_URL | https://brewpage.app | URL base da API |
Links
- brewpage.app -- Plataforma ao vivo
- brewpage.app/llms.txt -- Arquivo de contexto LLM
- brewpage.app/llms-full.txt -- Referência completa do LLM
- Documentação da API -- Documentação interativa
- Referência da API -- Explorador de API Scalar
- Especificação OpenAPI -- Especificação completa
- Claude Skill --
/brewpagecomando de barra - Plugin Brewcode -- Suíte de plugins do Claude Code
Registro de alterações
1.6.0 -- 2026-06-05
- Publicação privada por padrão. Quando
namespaceé omitido, todas as cinco ferramentas de publicação (publish_html,publish_file,publish_site,publish_json,publish_kv) agora enviam um namespace não listado explícito (priv-<random>) em vez de deixar o backend usar o padrãopublic. Namespace omitido = não listado (acessível apenas pelo link, não listado na galeria, não indexado em buscas); passenamespace: "public"explicitamente para listar e indexar. Sem quebra:namespacepermanece opcional. - As respostas de publicação para namespaces não públicos agora incluem um aviso de "Link não listado" explicando como tornar o conteúdo público.
- Descrições das ferramentas e README reescritos para refletir o modelo privado por padrão.
1.5.0 -- 2026-05-21
- Adiciona 8 novas ferramentas MCP:
update_html,publish_json,get_json,update_json,publish_kv,set_kv,get_kv,search_gallery. - Contagem de ferramentas: 6 -> 14. Cobertura completa de atualização de HTML, CRUD de JSON, CRUD de KV e descoberta de galeria (incluindo listagem com escopo do proprietário via
mine=true). - Operações de atualização (
update_html,update_json,set_kv) exigem oownerTokenoriginal;password(quando definido) é encaminhado comoX-Password.
1.4.0 -- 2026-05-12
- Sincronização com a especificação 1.31.0 -- adiciona variantes brutas
text/*eapplication/octet-streamemPOST /api/html; espelho PUT; 422 comsupportedTypes.