MCP-DOE-PI
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-DOE-PI Busque 'nomeação' no Diário Oficial do Piauí de 2025."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Servidor MCP que permite ao Claude Desktop consultar o Diário Oficial do Estado do Piauí (diario.pi.gov.br/doe) em linguagem natural: lista edições, busca por conteúdo nos atos publicados e lê o texto integral de qualquer ato sem baixar PDF.
⚙️ Como funciona
O portal do DOE-PI é um front DataTables/jQuery sobre três APIs internas que respondem a POST form-urlencoded, sem autenticação e sem Cloudflare:
Endpoint | Função |
| lista edições ( |
| busca por palavras-chave no conteúdo ( |
| texto integral do ato em HTML ( |
GETnesses endpoints retorna 500 — o método precisa serPOST.
Related MCP server: MCP-SPA-PMT
🛠️ As 4 ferramentas
Ferramenta | O que faz |
| edições com link do PDF; filtros por data ( |
| palavras-chave no texto dos atos; retorna o |
| texto integral do ato pelo |
| baixa o PDF diagramado para |
📋 Limitações conhecidas
O acervo do portal começa na edição 240/2022 (14/12/2022).
A busca normaliza acentos e aceita casamento parcial de palavras — confira o campo
palavras_encontradasde cada resultado.A busca devolve tudo de uma vez (sem paginação); termos muito comuns demoram alguns segundos.
🧰 Requisitos
macOS (ou Linux) com uv instalado
Claude Desktop instalado
Python 3.12+ (o
uvcuida do ambiente automaticamente)
📦 Instalação
1) Clonar
git clone https://github.com/fxbarros/MCP-DOE-PI.git
cd MCP-DOE-PI
uv sync2) Registrar o MCP no Claude Desktop
No claude_desktop_config.json (menu Configurações → Desenvolvedor → Editar config), adicione:
"doe-pi": {
"command": "/Users/SEU_USUARIO/.local/bin/uv",
"args": ["--directory", "/caminho/para/MCP-DOE-PI", "run", "doe-pi-mcp"]
}3) Reiniciar o Claude Desktop
As quatro ferramentas passam a aparecer no ícone de conector do DOE-PI.
💬 Exemplos de uso
"Liste as edições do DOE-PI de 15/07/2026."
"Busque 'desapropriação de utilidade pública' no Diário Oficial do Estado em 2025."
"Leia o inteiro teor daquele decreto de crédito suplementar."
"Baixe o PDF da edição 134 para eu juntar no processo."
🏗️ Estrutura do projeto
MCP-DOE-PI/
├── README.md
├── pyproject.toml
├── docs/assets/banner.svg # marca dos projetos MCP do autor
├── src/doe_pi_mcp/
│ ├── server.py # servidor MCP (4 tools)
│ └── doe_client.py # cliente HTTP + conversor HTML→texto (lxml)
└── tests/
└── test_limpar_html.py # testes offline do conversor de notas🔬 Notas de implementação
O HTML das notas é convertido em texto com lxml (não regex); tabelas — comuns em decretos orçamentários — são renderizadas linha a linha com células separadas por
|, preservando a relação código/valor.O transporte httpx faz retry automático de conexão (3 tentativas) contra instabilidades do portal.
A busca (
buscaavancada.json) não pagina nem filtra por data no servidor: o cliente puxa o acervo inteiro e faz o recorte deano/limitelocalmente.
🔒 Segurança e responsabilidade
Somente leitura: este MCP apenas consulta o Diário Oficial — nunca publica, altera ou remove nada.
Sem credenciais: o portal é público; nada de login, token ou secret.
Não inventa resultados: se o portal cair ou ficar lento, as ferramentas retornam um erro explícito instruindo o modelo a avisar o usuário, em vez de alucinar atos.
Uso responsável: nada de scraping massivo; respeite o termo de uso do portal.
Contingência anti-bot: hoje o portal não tem Cloudflare nem exige TLS de navegador. Se isso mudar (como ocorreu com o SCON/STJ), o caminho de migração é o
StealthySession/FetcherSession(impersonate="chrome")do Scrapling, mantendo o mesmo cliente de parsing.
📝 Licença e créditos
Uso pessoal e profissional, sem garantias — use por sua conta e risco, respeitando as regras do portal. Construído por Fábio Ximenes Barros com ajuda do Claude, usando httpx e lxml.
Available Tools
4 toolsbaixar_edicaoA
Baixa o PDF oficial (diagramado) de uma edição do DOE-PI para
~/Downloads. Use apenas quando o usuário precisar do documento em si
(juntada, citação formal); para leitura, prefira ler_ato.
Args:
url_pdf: URL do PDF, obtida em listar_edicoes (campo pdf) ou
buscar_conteudo (campo pdf_edicao).
nome_arquivo: nome de destino opcional; padrão é o nome original.
Inputs: url_pdf (required), nome_arquivo.
buscar_conteudoA
Busca palavras-chave no TEXTO dos atos publicados no DOE-PI (leis, decretos, portarias, editais, nomeações, avisos etc.).
Cada resultado traz o uuid_ato — use a tool ler_ato com ele para
obter o texto integral do ato SEM baixar o PDF.
Args:
termo: palavras-chave. Acentos são normalizados pelo servidor e a
busca com várias palavras aceita casamento parcial — confira o
campo palavras_encontradas de cada resultado.
ano: se informado, restringe aos atos publicados nesse ano
(filtro aplicado localmente; a API não filtra por data).
limite: máximo de resultados retornados (padrão 20). O campo
total_encontrado informa quantos existem no acervo.
Cobertura: todo o acervo do portal (dez/2022 em diante).
Inputs: termo (required), ano, limite.
ler_atoA
Retorna o texto integral de um ato publicado no DOE-PI, em texto plano, direto da base do portal — sem precisar baixar o PDF da edição.
Args:
uuid: identificador do ato, obtido no campo uuid_ato dos
resultados de buscar_conteudo.
Atenção: o texto vem da base de notas do portal, não do PDF diagramado.
Para citação formal ou juntada, baixe a edição com baixar_edicao.
Inputs: uuid (required).
listar_edicoesA
Lista edições do Diário Oficial do Estado do Piauí, da mais recente para a mais antiga, com o link do PDF de cada uma.
Args: data: filtra pela data de publicação, no formato yyyy-mm-dd (ex.: "2026-07-15"). Formato dd/mm/yyyy NÃO funciona. numero: filtra pelo número da edição (ex.: "134" — retorna a edição 134 de todos os anos do acervo, incluindo suplementares). quantidade: máximo de edições retornadas (padrão 20).
O acervo começa na edição 240/2022 (14/12/2022); diários anteriores não estão no portal.
Inputs: data, numero, quantidade.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: listing editions, searching acts, reading act text, and downloading PDFs. No overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern in Portuguese (ler_ato, baixar_edicao, listar_edicoes, buscar_conteudo), using lowercase and underscores throughout.
The set of 4 tools is well-scoped for the server's purpose, covering the essential operations without unnecessary bloat or missing core functionality.
The tools cover the main workflows: browsing editions, searching acts, reading full text, and downloading PDFs. A minor gap is the lack of a direct way to list all acts within a specific edition, but search can compensate.
Maintenance
Related MCP Connectors
Searches MUNICIPAL official gazettes from thousands of city halls (Querido Diário / Open Knowledge B
Query Brazil's public procurement portal (PNCP): tenders, contracts and price records.
Validates CPF (check digits) and discovers lawsuits by CPF, searching by NAME in the official gazett
Case law search, court decisions and súmulas, across indexed public sources (STF, STJ, TST, state co
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables querying the Brazilian PJe court system for TJMA (1st and 2nd degrees) via natural language, with automated login, expedient and deadline checks, document listing and download, and case searches.3-
- FlicenseAqualityCmaintenanceEnables natural language, read-only access to the SPA system of the Prefeitura Municipal de Teresina, allowing users to query process boxes, urgent deadlines, recent entries, triage briefings, and judicial documents via pure HTTP without a browser.12-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to query Brazilian municipal transparency portals for payroll, expenses, contracts, bids, revenues, and legislation using natural language in Portuguese.MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching Brazilian National Electronic Court Gazette (DJEN) publications and judicial notifications by OAB, lawyer name, case number, court, and date, returning full text and certificate links, plus party-name case discovery.2MIT