Querido Diário MCP Server

io.github.lucaspmgomess由 GitHub 帳號 lucaspmgomess 發布v0.1.0更新於 Oct 24, 2026

Unofficial, read-only MCP server for the public Querido Diário API (Brazilian municipal gazettes)

概覽

AI 產生的概覽

本機唯讀 MCP 伺服器,讓助理透過公開的 Querido Diário 查詢巴西市鎮並檢索已收錄的市政官方公報。

可以做什麼
依名稱或州解析巴西市鎮,取得其 7 位 IBGE 地區編號,或依精確編號取得單一市鎮。對已收錄的市政公報做全文檢索,可依市鎮、發布日期範圍、分頁與排序篩選,並支援必含詞、排除詞與精確片語等簡單查詢語法。回傳結構化結果,方便彙整、篩選或與其他工具搭配使用。
適用情境
適合在巴西市政官方公報中查找某公司、個人或主題的提及,或先把城市名稱對應到 IBGE 地區編號再檢索。它是範圍很窄的唯讀檢索工具,不是通用網頁或文件抓取工具。
執行需求
以 PyPI 套件形式透過 stdio 在本機執行;需要 Python 3.12+ 與 uv,由 MCP 用戶端以 uvx 指令啟動。無需 API 金鑰或帳號。需要連線到公開的 Querido Diário API;選用環境變數 QD_API_BASE_URL 可覆寫 API 基礎位址,一般使用者無需設定。
安裝前請注意
非官方社群專案,未獲 Open Knowledge Brasil 背書,且仍在 beta 階段。它只讀取公開 API,不抓取公報連結、不下載 PDF、不做 OCR,也不寫入資料。檢索詞與城市查詢會傳送給第三方 Querido Diário API;設定 QD_API_BASE_URL 會改為存取其他端點。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Querido Diário MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Querido Diário MCP Server

[PyPI] [Python] [CI] [MCP Registry] [License: MIT]

A local-first Model Context Protocol server that gives AI clients structured, read-only access to Brazilian municipal official gazettes indexed by Querido Diário.

No API key · Runs locally · Read-only · No telemetry · Open source

🇧🇷 Versão em português

The package is published on PyPI and the MCP Registry.

What it does

Querido Diário provides searchable municipal official gazettes through a public API. This server exposes a small, typed MCP interface on top of that API so an MCP client can:

  • resolve Brazilian municipalities and their IBGE territory IDs;
  • search indexed official gazettes by text, municipality and date range;
  • receive structured results that are easier for agents to inspect and combine with other tools.

The server runs as a local stdio subprocess and only performs read-only HTTPS requests to the public Querido Diário API.

Quick start

Requires Python 3.12+ and uv.

No repository clone is required:

bash
uvx querido-diario-mcp-server

This starts the MCP server on stdio. It is intended to be launched by an MCP client rather than used as an interactive terminal application.

Client configuration

All supported clients use the same command:

text
uvx querido-diario-mcp-server

Claude Desktop / Claude Code

json
{  "mcpServers": {    "querido-diario": {      "command": "uvx",      "args": ["querido-diario-mcp-server"]    }  }}

Use this in claude_desktop_config.json for Claude Desktop or a project-level .mcp.json for Claude Code.

Cursor

json
{  "mcpServers": {    "querido-diario": {      "command": "uvx",      "args": ["querido-diario-mcp-server"]    }  }}

Add it to .cursor/mcp.json or your global Cursor MCP configuration.

Codex CLI

toml
[mcp_servers.querido-diario]command = "uvx"args = ["querido-diario-mcp-server"]

Other MCP clients that support local stdio servers can launch the same command.

Tools

The server intentionally exposes a small, read-only tool surface.

ToolPurpose
search_citiesSearch Brazilian municipalities by name and resolve the 7-digit IBGE territory ID. Supports an optional state filter.
get_cityFetch one municipality by its exact 7-digit IBGE territory ID.
search_gazettesFull-text search over indexed gazettes with municipality, publication date, pagination and sorting filters.

search_gazettes uses the simple-query-string syntax supported by the upstream search API. Examples include +required, -excluded and "exact phrase".

Example

A user can ask:

text
Find mentions of ACME Ltda in Porto Alegre gazettesfrom January through July 2026.

An MCP client can then execute:

text
1. search_cities(city_name="Porto Alegre")   -> territory_id: "4314902"
2. search_gazettes(       query='"ACME Ltda"',       territory_ids=["4314902"],       published_since="2026-01-01",       published_until="2026-07-31",   )

The result is returned as structured tool output for the client to summarize, filter or combine with other tools.

Architecture

text
MCP client   |   | stdio / MCP   vserver.py   |   | validated tool arguments   vclient.py   |   | typed read-only HTTPS requests   vQuerido Diário public API

The implementation keeps the protocol boundary separate from the HTTP integration:

text
src/querido_diario_mcp_server/    __init__.py   package version and CLI entry point    config.py     environment-driven configuration    errors.py     integration error hierarchy    models.py     typed Pydantic domain models    client.py     async HTTP client with no MCP dependency    server.py     MCP lifespan, validation and tool definitions

A single httpx.AsyncClient connection pool is created for the server lifecycle and reused across tool calls. The HTTP client can be tested independently of MCP, while integration tests exercise the real MCP server in process.

Design principles

  • Read-only by design. The integration only calls a fixed set of upstream GET endpoints.
  • Local-first. There is no hosted middleware, proprietary backend or account requirement.
  • Typed boundaries. API responses and MCP outputs use explicit Pydantic models.
  • Small tool surface. The server exposes only the operations required to discover cities and search gazettes.
  • Explicit failures. Upstream failures are converted to concise MCP tool errors rather than raw tracebacks or HTML responses.
  • No arbitrary URL fetching. Tool callers cannot turn the server into a generic HTTP or SSRF primitive.
  • No telemetry. The server does not collect usage data.

Security

The server never automatically follows gazette URLs returned by the upstream API and does not accept arbitrary target URLs from tool callers. Territory IDs, dates, pagination and sort options are validated before use.

For vulnerability reporting and the supported security scope, see SECURITY.md.

Configuration

VariableDefaultPurpose
QD_API_BASE_URLhttps://api.queridodiario.org.brBase URL for the Querido Diário API. Can be overridden for local or staging environments.

Normal users do not need to set any environment variables.

Development

Clone the repository only if you want to contribute or work on the implementation:

bash
git clone https://github.com/lucaspmgomess/querido-diario-mcp-server.gitcd querido-diario-mcp-serveruv sync

Run the same checks enforced by CI:

bash
uv run ruff check .uv run ruff format --check .uv run pyrightuv run pytest --cov

Run the server from the checkout:

bash
uv run querido-diario-mcp-server

Inspect the MCP tools interactively:

bash
uv run mcp dev src/querido_diario_mcp_server/server.py:mcp

Test strategy

Unit tests mock the HTTP boundary with httpx.MockTransport, so the automated suite does not depend on the public API.

Coverage includes:

  • successful city and gazette searches;
  • query serialization and repeated territory IDs;
  • date ranges, pagination and sorting;
  • empty result sets;
  • 4xx and 5xx upstream failures;
  • malformed responses;
  • connection errors and timeouts;
  • MCP tool discovery, schemas and structured outputs;
  • validation errors and upstream failures at the MCP boundary.

Manual smoke-test scripts are available for validating the real production API and the full MCP-to-API path:

bash
uv run python scripts/smoke_test_api.pyuv run python scripts/smoke_test_mcp.py

Project status

The project is currently in beta. The MCP tool surface is intentionally small and changes are kept conservative. Release history is documented in CHANGELOG.md.

The following are intentionally outside the current scope:

  • arbitrary URL fetching;
  • automatic PDF or full-text download;
  • OCR;
  • write operations;
  • crawling and background jobs;
  • built-in LLM summarization;
  • a web interface.

Relationship to Querido Diário

This is a community-built, unofficial project.

Querido Diário is maintained by Open Knowledge Brasil and its community. This repository is not an official Open Knowledge Brasil project, is not endorsed or maintained by the organization, and only consumes the project's public API.

Relevant upstream repositories:

Additional notes about upstream endpoint history are kept in docs/upstream-api-history.md.

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for the development workflow, project scope and review checklist.

License

MIT

來源:README.md,提交 eba1c33

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分