Skip to main content

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.

PyPI Python CI License: MIT


What You Can Do

  • Search roughly 480 SINIM variables by natural language instead of memorizing id_dato codes.
  • Pull one or many municipal indicators as tidy pandas panels 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 codes
  • get(...) to pull municipal data
  • municipios(...) and search_municipios(...) to work with legal municipality codes
  • years() 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_DIR for 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_municipio matches 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=True requests 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_sinim-0.3.0.tar.gz (118.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_sinim-0.3.0-py3-none-any.whl (42.4 kB view details)

Uploaded Python 3

File details

Details for the file mcp_sinim-0.3.0.tar.gz.

File metadata

  • Download URL: mcp_sinim-0.3.0.tar.gz
  • Upload date:
  • Size: 118.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcp_sinim-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6c425f232d66b53b7a143d891ce12356144fbb3426fddb6637b9b3d915630c6b
MD5 c4c96ce730ee52714d9bb3f38c5953db
BLAKE2b-256 e2107916966d3b9d2014a4c5c76e0fe1d8fec3afe5746030f3d8c0d276796fb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_sinim-0.3.0.tar.gz:

Publisher: publish.yml on MaykolMedrano/mcp_sinim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_sinim-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_sinim-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 42.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mcp_sinim-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8794e37ba68b9da990ece5552e5f11f0a0687516058bf889cff02a7d0fee714
MD5 50b69fdc73fa6051fb1d852cf05db4c0
BLAKE2b-256 7036273bee2cf8a4e634cfbab06727ed70f251500f86b24a537f866e59d7530d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_sinim-0.3.0-py3-none-any.whl:

Publisher: publish.yml on MaykolMedrano/mcp_sinim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page