MCP Argentina 🇦🇷
Servidor Model Context Protocol (MCP) para consultar datos económicos de Argentina en tiempo real.
Características
- 💵 Cotizaciones dólar: Oficial, Blue, MEP, CCL, Tarjeta, Cripto, Mayorista
- 📈 Históricos: 30+ días de evolución de cotizaciones
- 📊 Inflación: Mensual, interanual y acumulada (INDEC)
- 🌡️ Riesgo país: Índice EMBI en tiempo real
- 💱 Monedas: EUR, BRL, UYU, CLP y 10+ monedas extranjeras
- 🔔 Alertas: Monitoreo de umbrales de precio
- 📉 Gráficos: Visualización ASCII de tendencias
- 🔄 Conversiones: ARS ↔ USD con cualquier tipo de cambio
Instalación
pip install mcp-argentina
O desde source:
git clone https://github.com/greydina/mcp-argentina
cd mcp-argentina
pip install -e .
Integración con Clientes MCP
Después de instalar, necesitás configurar tu cliente MCP para que ejecute el servidor.
Claude Desktop
Editá ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"mcp-argentina": {
"command": "python",
"args": ["-m", "mcp_argentina"]
}
}
}
Si usás un virtualenv:
{
"mcpServers": {
"mcp-argentina": {
"command": "/ruta/a/tu/venv/bin/python",
"args": ["-m", "mcp_argentina"]
}
}
}
Cursor
Editá .cursor/mcp.json en tu proyecto o ~/.cursor/mcp.json global:
{
"mcpServers": {
"mcp-argentina": {
"command": "python",
"args": ["-m", "mcp_argentina"]
}
}
}
Cline (VS Code)
Agregá en la configuración de Cline:
{
"mcp-argentina": {
"command": "python",
"args": ["-m", "mcp_argentina"]
}
}
OpenClaw
Agregá en openclaw.json:
{
"mcp": {
"servers": {
"mcp-argentina": {
"command": "python",
"args": ["-m", "mcp_argentina"]
}
}
}
}
Verificar instalación
Después de configurar, reiniciá tu cliente. Deberías ver las herramientas disponibles:
get_dolarget_cotizacionesget_inflacionget_riesgo_pais- etc.
Probá con: "¿Cuánto está el dólar blue?"
Inicio Rápido
Ejecutar servidor manualmente (debug)
# Ejecutar servidor stdio
python -m mcp_argentina
Uso directo (sin MCP)
import asyncio
from mcp_argentina.infrastructure.container import Container
async def main():
c = Container()
# Dólar blue
blue = await c.repository.obtener_dolar("blue")
print(f"💵 Blue: ${blue.venta.valor:,.0f}")
# Inflación
inf = await c.inflacion.obtener_actual()
print(f"📊 Inflación interanual: {inf.interanual:.1f}%")
# Riesgo país
riesgo = await c.repository.obtener_riesgo_pais()
print(f"🌡️ Riesgo país: {riesgo}")
# Euro
euro = await c.monedas.obtener_moneda("EUR")
print(f"💶 Euro: ${euro.venta:,.0f}")
asyncio.run(main())
Salida:
💵 Blue: $1,415
📊 Inflación interanual: 33.0%
🌡️ Riesgo país: 615
💶 Euro: $1,593
Ejemplos
Obtener todas las cotizaciones
cotizaciones = await c.repository.obtener_todas()
for cot in cotizaciones:
print(f"{cot.nombre}: ${cot.venta.valor:,.0f}")
Salida:
Oficial: $1,000
Blue: $1,415
Bolsa: $1,380
Contado con liquidación: $1,390
Mayorista: $1,005
Cripto: $1,410
Tarjeta: $1,600
Histórico del dólar blue
historicos = await c.historicos.obtener_historico_dolar("blue", dias=7)
for h in historicos:
print(f"{h.fecha}: ${h.venta:,.0f}")
Salida:
2026-03-22: $1,425
2026-03-23: $1,420
2026-03-24: $1,418
2026-03-25: $1,415
2026-03-26: $1,410
2026-03-27: $1,415
2026-03-28: $1,415
Variación porcentual
var = await c.historicos.obtener_variacion_dolar("blue", dias=7)
print(f"Variación 7 días: {var['variacion_porcentual']:+.1f}%")
Salida:
Variación 7 días: -0.7%
Conversión USD → ARS
blue = await c.repository.obtener_dolar("blue")
usd = 100
ars = usd * float(blue.venta.valor)
print(f"USD {usd} = ARS {ars:,.0f} (al blue)")
Salida:
USD 100 = ARS 141,500 (al blue)
Gráfico ASCII de tendencia
from mcp_argentina.application.services.graficos_service import PuntoGrafico
historicos = await c.historicos.obtener_historico_dolar("blue", dias=30)
puntos = [PuntoGrafico(fecha=h.fecha, valor=float(h.venta)) for h in historicos]
grafico = c.graficos.generar_linea(puntos, titulo="Dólar Blue (30 días)")
print(grafico)
Salida:
📊 Dólar Blue (30 días)
Max: $1,450
▅▆▇█▇▆▅▄▃▂▁▁▂▃▄▅▆▅▄▃▂▂▃▄▄▃▂▁▁▁
Min: $1,400
27/02 28/03
📉 -2.4%
Herramientas MCP
| Herramienta | Descripción |
|---|---|
get_dolar |
Cotización de un tipo de dólar específico |
get_cotizaciones |
Todas las cotizaciones de dólar |
get_historico |
Histórico de cotizaciones (30+ días) |
get_inflacion |
Inflación mensual, interanual, acumulada |
get_riesgo_pais |
Índice EMBI Argentina |
get_moneda |
Cotización de moneda extranjera |
get_todas_monedas |
Todas las monedas disponibles |
get_variacion |
Variación porcentual en período |
get_grafico |
Gráfico ASCII de tendencia |
convertir |
Conversión ARS ↔ USD |
Resources MCP
| URI | Descripción |
|---|---|
economia://cotizaciones/actual |
Snapshot JSON de todas las cotizaciones |
economia://indicadores/resumen |
Indicadores económicos clave |
economia://inflacion/actual |
Datos de inflación actual |
Prompts MCP
| Prompt | Descripción |
|---|---|
analisis_economico |
Análisis de situación económica |
comparar_dolares |
Comparación entre tipos de dólar |
Fuentes de Datos
100% APIs públicas, cero scraping.
| Fuente | Endpoint | Datos |
|---|---|---|
| dolarapi.com | /v1/dolares/{tipo} |
Cotizaciones tiempo real |
| dolarapi.com | /v1/cotizaciones/{moneda} |
Monedas extranjeras |
| argentinadatos.com | /v1/cotizaciones/dolares/{tipo} |
Histórico de cotizaciones |
| argentinadatos.com | /v1/finanzas/indices/inflacion |
Inflación mensual INDEC |
| argentinadatos.com | /v1/finanzas/indices/riesgo-pais/ultimo |
Riesgo país (EMBI) |
Arquitectura
mcp_argentina/
├── domain/ # Entidades y value objects
│ ├── entities/ # Cotizacion, etc.
│ └── value_objects/ # Precio, Fecha, TipoDolar
│
├── application/ # Lógica de negocio
│ ├── ports/ # Interfaces (Repository)
│ └── services/ # AlertasService, GraficosService
│
└── infrastructure/ # Implementaciones
├── adapters/ # DolarAPI, Historicos, Inflacion, Monedas
├── errors.py # Excepciones personalizadas
├── logging.py # Logging estructurado
├── retry.py # Retry con backoff exponencial
└── mcp/ # Server, Tools, Resources, Prompts
Clean Architecture: Dependencias apuntan hacia el dominio.
Desarrollo
# Tests (sin slow/integration)
pytest -m "not slow"
# Tests con coverage
pytest --cov=mcp_argentina --cov-report=html
# Lint
ruff check .
# Type check
mypy mcp_argentina
# Format
ruff format .
Stats
- ✅ 180 tests
- ✅ 78% coverage
- ✅ Python 3.10, 3.11, 3.12
- ✅ Type-safe (mypy)
- ✅ CI/CD GitHub Actions
Roadmap
- Cotizaciones dólar en tiempo real
- Históricos de cotizaciones
- Inflación (INDEC)
- Riesgo país
- Monedas extranjeras
- Alertas de precio
- Gráficos ASCII
- Conversiones
- Logging estructurado
- Retry con backoff
- WebSocket para updates real-time
- Publicar en PyPI
- Publicar en ClawHub
Licencia
MIT
Creado por: greydina
Versión: 0.1.0
Metadata
Release files for mcp-argentina 0.1.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 | Provenance | |
|---|---|---|---|---|
| mcp_argentina-0.1.0.tar.gz | 68.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_argentina-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 115.7 kB
Release files / mcp_argentina-0.1.0.tar.gz
| Download URL | mcp_argentina-0.1.0.tar.gz |
|---|---|
| Size | 68.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0bd59c633cf6b1fb0edf6c379c9f4de8581dfcc5fbf36f3d793fc723ea20fcf2
|
|
BLAKE2b-256 checksum How to use checksums |
f1d630c2a3e06076e291bc0cd4773c0039d1c30690a301f5a29fe4a3ed7c7c02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / mcp_argentina-0.1.0-py3-none-any.whl
| Download URL | mcp_argentina-0.1.0-py3-none-any.whl |
|---|---|
| Size | 47.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c5b40e15a8dc459d58147aca85a33d515792b4249f6df976edc697b15307023a
|
|
BLAKE2b-256 checksum How to use checksums |
5e32fb3b3069ff07ec1c0d64ec220811cff7f534eef6253f756c1c1f295c0a7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for mcp-argentina 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.