mcp-sinim
Pull Chilean municipal data from SINIM with a searchable catalog, tidy municipal panels, and the same package from Python or any MCP-compatible client.
An open-source project by Maykol Medrano.
What You Can Do
- Search roughly 480 SINIM variables by natural language instead of memorizing
id_datocodes. - Pull one or many municipal indicators as tidy
pandaspanels in one call. - Discover available years and municipality codes directly from the live portal.
- Use the same package in notebooks, scripts, or MCP clients.
- Work with an offline catalog snapshot plus optional metadata caching.
Installation
pip install mcp-sinim
Python Example
from mcp_sinim import SINIMClient
client = SINIMClient(corrmon=True)
# 1) Find the right variable code
hits = client.search("patentes municipales")
print(hits[["code", "name"]].head(3).to_string(index=False))
# 4173 = Ingresos por Patentes Municipales de Beneficio Municipal
# 1311 = Monto Patentes Municipales Pagadas
# 13101 = Santiago, 13114 = Las Condes, 13123 = Providencia
# 2) Pull a tidy panel for several years and municipalities
df = client.get(
["4173", "1311"],
years=[2022, 2023, 2024],
municipios=["13101", "13114", "13123"], # Santiago, Las Condes, Providencia
)
print(df.head(12).to_string(index=False))
# 3) Explore metadata when needed
print(client.years()[-5:])
print(client.search_municipios("providencia"))
print(client.municipios(region="13")) # official region code: Metropolitana
Main things you will use:
search(...)to find variable codesget(...)to pull municipal datamunicipios(...)andsearch_municipios(...)to work with legal municipality codesyears()to see what is currently available
MCP Server
Use mcp-sinim when you want an MCP client to search SINIM variables, inspect
their metadata, and fetch municipal data without writing a custom wrapper.
Run the server after installation:
mcp-sinim
Typical MCP configuration:
{
"mcpServers": {
"sinim": {
"command": "mcp-sinim"
}
}
}
Optional environment variable:
MCP_SINIM_CACHE_DIRfor the metadata disk cache
MCP tools
| Tool | Description |
|---|---|
search_variables |
Search the SINIM variable catalog by keyword. |
get_variable_info |
Return metadata for one SINIM variable code. |
get_data |
Retrieve tidy municipal records for one or many variables. |
preview_data |
Preview up to 100 records to check a query before exporting. |
export_data |
Write a full municipal panel to Parquet or CSV on disk. |
list_areas |
List the 9 catalog subject areas. |
list_municipios |
List municipalities, optionally filtered by region. |
search_municipalities |
Search municipalities by name, optionally filtered by region. |
list_years |
List currently available SINIM years. |
Important Notes
cod_municipiomatches the official SUBDERE CUT codes for the 345 municipalities present in SINIM.- Pass those legal CUT codes to
municipios=. The client translates them to SINIM's internal identifiers automatically. - Region filters accept official Chilean region codes (
"1"through"16"), as well as SINIM's portal identifiers for compatibility. corrmon=Truerequests SINIM's real-value series, expressed in pesos of the most recent published year.- This is an independent open-source client for the public SINIM portal. It is not affiliated with SUBDERE or the Gobierno de Chile.
Development
git clone https://github.com/MaykolMedrano/mcp_sinim
cd mcp_sinim
python -m venv .venv
.venv/Scripts/activate
pip install -e ".[dev]"
python -m ruff check .
python -m ruff format --check .
python -m pytest
License
MIT. See LICENSE.
Metadata
Release files for mcp-sinim 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_sinim-0.3.0.tar.gz | 118.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_sinim-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 160.9 kB
Release files / mcp_sinim-0.3.0.tar.gz
| Download URL | mcp_sinim-0.3.0.tar.gz |
|---|---|
| Size | 118.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c425f232d66b53b7a143d891ce12356144fbb3426fddb6637b9b3d915630c6b
|
|
BLAKE2b-256 checksum How to use checksums |
e2107916966d3b9d2014a4c5c76e0fe1d8fec3afe5746030f3d8c0d276796fb8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / mcp_sinim-0.3.0-py3-none-any.whl
| Download URL | mcp_sinim-0.3.0-py3-none-any.whl |
|---|---|
| Size | 42.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b8794e37ba68b9da990ece5552e5f11f0a0687516058bf889cff02a7d0fee714
|
|
BLAKE2b-256 checksum How to use checksums |
7036273bee2cf8a4e634cfbab06727ed70f251500f86b24a537f866e59d7530d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency log