mcp-impo
by daedalus
README.md
# mcp-impo
MCP server for IMPO Uruguay datos abiertos API with SQLite caching.
[](https://pypi.org/project/mcp-impo/)
[](https://pypi.org/project/mcp-impo/)
## Install
```bash
pip install mcp-impo
```
## Usage
```python
from mcp_impo import get_schema, get_norma, search_normas, get_base_info
# Get schema
schema = get_schema()
# Get specific norm
norma = get_norma("ley", 2024, "19850")
# Search
results = search_normas("seguridad social", tipo="ley", limit=10)
# Get available bases
bases = get_base_info()
```
## CLI
```bash
mcp-impo --help
```
## MCP Tools
- `schema` - Retrieve IMPO JSON schema documentation
- `norma` - Get a specific norma or aviso
- `search` - Search normas/avisos
- `bases` - Get information about available bases
## Cache
The server uses SQLite caching with configurable TTL:
- Schema: 24 hours
- Base info: 1 hour
- Norma data: 1 hour
- Search results: 10 minutes
Override TTL per request by passing `ttl` parameter (seconds).
mcp-name: io.github.daedalus/mcp-impo
## Development
```bash
git clone https://github.com/daedalus/mcp-impo.git
cd mcp-impo
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/
```TDQS
A3.7/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: 'bases' retrieves database metadata, 'schema' provides the data structure, 'search' performs queries, and 'norma' fetches a specific record. No overlap or ambiguity.
Naming Consistency5/5
Tool names are all single lowercase nouns (bases, norma, schema, search), following a consistent, predictable pattern without mixing conventions.
Tool Count5/5
Four tools is well-scoped for a legislation/norm search service: metadata, schema, search, and retrieval cover the core functionality without excess or deficiency.
Completeness4/5
The set covers key operations: explore databases, understand schema, search, and retrieve specific items. Missing a direct 'list all normas' endpoint, but search can approximate it, so minor gap.
Maintenance
ActivityInactive
ResponsivenessNo issues