Servidor MCP para el agente aia (amanda-IA)
Project description
aia-mcp
Servidor MCP (Model Context Protocol) que expone herramientas para el agente aia del proyecto hermano amanda-IA.
Estructura
aia-mcp/
├── README.md
├── pyproject.toml
├── mcp_cli/ # CLI para ejecutar servidores
├── specs/
│ └── SPEC_TEMPERATURA.md
├── temperatura/ # get_temperature (ciudades)
│ ├── __init__.py
│ └── server.py
└── monitor/ # medición, historial_mediciones
├── __init__.py
└── server.py
Cada servidor MCP vive en su propio directorio. Ejecuta cualquiera con poetry run mcp <servidor>.
Requisitos
- Python 3.11+
- Poetry
Instalación
cd aia-mcp
poetry install
Ejecutar servidores MCP
Desde el directorio aia-mcp/:
poetry run mcp # temperatura (por defecto, stdio)
poetry run mcp temperatura # explícito
poetry run mcp monitor # acumulador/estanque (litros, %, velocidad)
poetry run mcp --list # listar servidores disponibles
# Modo HTTP (para conexión remota)
poetry run mcp temperatura --http # puerto 8001
poetry run mcp monitor --http # puerto 8003
# Levantar todos los servidores
poetry run mcp all --http
- stdio (por defecto): para Cursor, Claude Desktop, etc.
- HTTP (
--http): servidor enhttp://0.0.0.0:8001/mcppara que el agente aia se conecte por red.
Swagger UI (documentación de APIs)
poetry run mcp-swagger # puerto 8010
# o
poetry run mcp swagger --http
Accede a: http://localhost:8010/
Cada servidor tiene su documentación:
- /temperatura, /wahapedia, /monitor, /shell
- /airbnb, /charts, /email, /mangadex
Conectar con el agente (Cursor / amanda-IA)
Configura el servidor MCP en Cursor o en el agente aia. Ejemplo para ~/.cursor/mcp.json:
{
"mcpServers": {
"temperatura": {
"command": "poetry",
"args": ["run", "mcp", "temperatura"],
"cwd": "/ruta/a/aia-mcp"
}
}
}
Ajusta cwd a la ruta absoluta de tu proyecto aia-mcp.
Conectar aia por HTTP
- Inicia el servidor MCP en modo HTTP:
poetry run mcp temperatura --http - En otra terminal, ejecuta el agente con la variable de entorno:
MCP_URL=http://localhost:8001/mcp poetry run aia
Añadir nuevos servidores: crea el directorio (ej. nuevo_servidor/), implementa el servidor con FastMCP, y regístralo en mcp_cli/cli.py en el diccionario SERVERS.
Tools disponibles
get_temperature
Obtiene la temperatura actual de una ciudad (valores simulados).
- Parámetro:
city(string, opcional) — Nombre de la ciudad - Retorno: String con la temperatura
Ciudades soportadas: Santiago, Buenos Aires, Lima, Bogotá, Madrid, New York, Londres, Tokio.
Monitor (acumulador / estanque)
- get_lectura_actual(): Obtiene litros y porcentaje del acumulador en tiempo real. Usa MQTT (
MQTT_HOST,MQTT_TOPIC_OUT) oTINAJA_ESTADO_URLcomo fallback. Si no hay datos, devuelve un cálculo de ejemplo. - calculate_tinaja_level(distance): Calcula litros y porcentaje desde la distancia del sensor (cm).
- get_tinaja_config(): Configuración del estanque y estado MQTT.
- get_velocidad_disminucion_agua(db_name, horas_atras): Calcula la velocidad de disminución del agua (L/h) usando el historial en MongoDB (
tomi-db.estanque-historial). RequiereMONGODB_URIen.env.
Variables en .env: MQTT_HOST, MQTT_PORT, MQTT_USERNAME, MQTT_PASSWORD, MQTT_TOPIC_OUT. Fallback HTTP: TINAJA_ESTADO_URL. Para velocidad: MONGODB_URI.
Wahapedia (Warhammer 40K)
- get_unit_stats(query, faction): Estadísticas de una unidad.
- search_wahapedia(query): Búsqueda en español.
- get_factions(): Lista todas las facciones.
- get_units(faction): Unidades de una facción.
- get_stratagems(faction): Estratagemas de una facción.
Cache: config por variables de entorno (WAHAPEDIA_CACHE_ENABLED, WAHAPEDIA_CACHE_DIR, WAHAPEDIA_CACHE_TTL_DAYS). Por defecto deshabilitado. Si habilitas, guarda en .aia/cache/wahapedia/ y TTL de 60 días.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aia_mcp-1.1.6.tar.gz.
File metadata
- Download URL: aia_mcp-1.1.6.tar.gz
- Upload date:
- Size: 58.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.1 Linux/6.17.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25fcfaa6e6487250843091fd06ad1dc3f8dd9da8255d5e931c60bae201f6dde9
|
|
| MD5 |
a463015d0ba1ad4d9fa0abd680c5b995
|
|
| BLAKE2b-256 |
9027864310bbf749a295a5782a2eb1be62c92173ce173e281972f89148502fe4
|
File details
Details for the file aia_mcp-1.1.6-py3-none-any.whl.
File metadata
- Download URL: aia_mcp-1.1.6-py3-none-any.whl
- Upload date:
- Size: 66.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.1 Linux/6.17.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74c1d428f8fd2bba04937dd58dafcd242eadfa805b2c22fd5cb693aa05606167
|
|
| MD5 |
5ae60bb3af19dc290bd24df7cc7b89dd
|
|
| BLAKE2b-256 |
b677e7a08f37f853b95f9178dba3e5c9a521c63fddb0a04562e65a8cc138de49
|