diario-oficial-mcp
Click on "Install 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., "@diario-oficial-mcpdownload today's Diario Oficial"
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.
Diario Oficial MCP
🌐 English | Español
An MCP server that obtains the Colombian
Diario Oficial daily PDF from the Imprenta Nacional public consultation
portal (https://svrpubindc.imprenta.gov.co/diario/).
The server's job is acquisition: it downloads the official PDF and returns its file path plus metadata. Reading the document or building alerts on top of it is left to the calling agent / user.
Disclaimer. This is an unofficial, community project. It is not affiliated with, endorsed by, or supported by the Imprenta Nacional de Colombia. It works by reading the public consultation portal's current HTML, so it may break if the site changes. Use it responsibly and keep request volume modest against a government service.
Tools
Tool | Description |
| List the most recent editions (numero, tipo, fecha). No download. |
| Download the newest published edition. |
| Download the edition for a given day ( |
| Download a specific edition by number ( |
Each download tool saves the PDF and returns:
{
"numero": "53.524",
"tipo": "Ordinaria",
"fecha": "16/06/2026",
"path": "/Users/you/Downloads/diario-oficial/DiarioOficial_53524_2026-06-16.pdf",
"size_bytes": 13265672
}Related MCP server: pdf-organizer-mcp
Where PDFs are saved
In order of precedence:
The
output_dirargument passed to the tool.The
DIARIO_OFICIAL_DIRenvironment variable.Default:
~/Downloads/diario-oficial.
Use it (recommended: no clone)
You only need uv installed. uv fetches the
code from git, sets up an isolated environment, and runs the server — no manual
clone or install. Add this to your MCP config:
Kiro:
.kiro/settings/mcp.json(workspace) or~/.kiro/settings/mcp.json(global)Claude Desktop:
claude_desktop_config.json
{
"mcpServers": {
"diario-oficial": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/jkamilo81/diario-oficial-mcp",
"diario-oficial-mcp"
],
"env": {
"DIARIO_OFICIAL_DIR": "/Users/you/Documents/diario-oficial"
},
"disabled": false,
"autoApprove": ["list_recent_editions"]
}
}
}Pin a released version by appending a tag, e.g.
git+https://github.com/jkamilo81/diario-oficial-mcp@v0.1.0.
Verify it runs at all:
uvx --from git+https://github.com/jkamilo81/diario-oficial-mcp diario-oficial-mcp(The process starts and waits for an MCP client on stdio; press Ctrl+C to exit.)
A colleague can then ask their agent things like "download today's Diario Oficial" or "get edition 53.510", then read or set up alerts on the saved PDF.
Local development
git clone https://github.com/jkamilo81/diario-oficial-mcp
cd diario-oficial-mcp
uv venv
uv pip install -e ".[dev]"
uv run diario-oficial-mcp # run over stdio
pytest -q # smoke tests against the live portalConfig pointing at your local checkout instead of git:
{
"mcpServers": {
"diario-oficial": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/diario-oficial-mcp", "diario-oficial-mcp"]
}
}
}How it works
The portal is a JSF/PrimeFaces application. Downloading an edition is a
session-bound, three-step flow handled by client.py:
GET /diario/— obtain theJSESSIONIDcookie and JSFViewState; the landing page already lists the most recent editions with per-row "Ver Diario" buttons.POSTthe row button — returns a viewer page containing a PrimeFaces streamed-content URL.GETthat streamed-content URL (same session) — returns the PDF bytes.
Search by date or number is a POST of the search form that re-renders the
editions table with the matching row, after which the same download flow runs.
Troubleshooting
No editions returned / "Could not find ... ViewState". The portal HTML likely changed. The brittle parts are the PrimeFaces component ids in
client.py(e.g.dtbDiariosOficiales:*:j_idt38). Runpytest -qto confirm and update the parsing.No edition found for date .... No edition was published that day (weekends/holidays), or the date is not indd/MM/yyyyformat.TLS / certificate errors.
httpxbundles its own CA store, so this is usually a network/proxy issue rather than the portal.The server "hangs" when run manually. Expected — it waits for an MCP client on stdio. It's meant to be launched by Kiro / Claude Desktop.
Notes & limitations
Depends on the portal's current HTML structure; see Troubleshooting.
Editions are typically large scanned PDFs (10+ MB). Text extraction / OCR for reading or alerting is intentionally out of scope for this server.
Be considerate with request volume against a government service.
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityBmaintenanceA template for deploying MCP servers on Cloudflare Workers without authentication. Enables easy creation and deployment of custom MCP tools that can be accessed remotely via Claude Desktop or Cloudflare AI Playground.Last updated9Mozilla Public 2.0
- FlicenseBqualityCmaintenanceAutomatically organizes PDF files into date-based folders, providing tools to move, copy, list, and track PDFs by date.Last updated6
- Alicense-qualityAmaintenanceFetches Croatian legislation from the Narodne novine official gazette with European ELI identifiers and verifiable citations. Provides tools to list issues, get act metadata, and fetch full text.Last updatedApache 2.0
- FlicenseAqualityCmaintenanceAllows querying the Diário Oficial do Estado do Piauí (DOE-PI) in natural language: list editions, search content, and read full texts without downloading PDFs.Last updated4
Related MCP Connectors
datos.gov.co — Colombia's national open-data portal (Socrata platform).
Colombia DIAN factura electronica: AI agents issue and query e-invoices, stateless BYO.
Congressional Documents — full-text search and retrieval over the official
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jkamilo81/diario-oficial-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server