aia-mcp 1.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
aia_mcp-1.1.0/PKG-INFO ADDED
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.4
2
+ Name: aia-mcp
3
+ Version: 1.1.0
4
+ Summary: Servidor MCP para el agente aia (amanda-IA)
5
+ Requires-Python: >=3.11,<4.0
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Programming Language :: Python :: 3.11
8
+ Classifier: Programming Language :: Python :: 3.12
9
+ Classifier: Programming Language :: Python :: 3.13
10
+ Classifier: Programming Language :: Python :: 3.14
11
+ Requires-Dist: beautifulsoup4 (>=4.12)
12
+ Requires-Dist: fastapi (>=0.115)
13
+ Requires-Dist: httpx (>=0.27)
14
+ Requires-Dist: matplotlib (>=3.7)
15
+ Requires-Dist: mcp (>=1.0)
16
+ Requires-Dist: paho-mqtt (>=2.0)
17
+ Requires-Dist: pymongo (>=4.0)
18
+ Requires-Dist: python-dotenv (>=1.0,<2.0)
19
+ Requires-Dist: uvicorn (>=0.30)
20
+ Description-Content-Type: text/markdown
21
+
22
+ # aia-mcp
23
+
24
+ Servidor MCP (Model Context Protocol) que expone herramientas para el agente **aia** del proyecto hermano [amanda-IA](https://github.com/your-org/amanda-IA).
25
+
26
+ ## Estructura
27
+
28
+ ```
29
+ aia-mcp/
30
+ ├── README.md
31
+ ├── pyproject.toml
32
+ ├── mcp_cli/ # CLI para ejecutar servidores
33
+ ├── specs/
34
+ │ └── SPEC_TEMPERATURA.md
35
+ ├── temperatura/ # get_temperature (ciudades)
36
+ │ ├── __init__.py
37
+ │ └── server.py
38
+ └── monitor/ # medición, historial_mediciones
39
+ ├── __init__.py
40
+ └── server.py
41
+ ```
42
+
43
+ Cada servidor MCP vive en su propio directorio. Ejecuta cualquiera con `poetry run mcp <servidor>`.
44
+
45
+ ## Requisitos
46
+
47
+ - Python 3.11+
48
+ - [Poetry](https://python-poetry.org/)
49
+
50
+ ## Instalación
51
+
52
+ ```bash
53
+ cd aia-mcp
54
+ poetry install
55
+ ```
56
+
57
+ ## Ejecutar servidores MCP
58
+
59
+ Desde el directorio `aia-mcp/`:
60
+
61
+ ```bash
62
+ poetry run mcp # temperatura (por defecto, stdio)
63
+ poetry run mcp temperatura # explícito
64
+ poetry run mcp monitor # acumulador/estanque (litros, %, velocidad)
65
+ poetry run mcp --list # listar servidores disponibles
66
+
67
+ # Modo HTTP (para conexión remota)
68
+ poetry run mcp temperatura --http # puerto 8001
69
+ poetry run mcp monitor --http # puerto 8003
70
+
71
+ # Levantar todos los servidores
72
+ poetry run mcp all --http
73
+ ```
74
+
75
+ - **stdio** (por defecto): para Cursor, Claude Desktop, etc.
76
+ - **HTTP** (`--http`): servidor en `http://0.0.0.0:8001/mcp` para que el agente aia se conecte por red.
77
+
78
+ ## Swagger UI (documentación de APIs)
79
+
80
+ ```bash
81
+ poetry run mcp-swagger # puerto 8010
82
+ # o
83
+ poetry run mcp swagger --http
84
+ ```
85
+
86
+ Accede a: http://localhost:8010/
87
+
88
+ Cada servidor tiene su documentación:
89
+ - /temperatura, /wahapedia, /monitor, /shell
90
+ - /airbnb, /charts, /email, /mangadex
91
+
92
+ ## Conectar con el agente (Cursor / amanda-IA)
93
+
94
+ Configura el servidor MCP en Cursor o en el agente aia. Ejemplo para `~/.cursor/mcp.json`:
95
+
96
+ ```json
97
+ {
98
+ "mcpServers": {
99
+ "temperatura": {
100
+ "command": "poetry",
101
+ "args": ["run", "mcp", "temperatura"],
102
+ "cwd": "/ruta/a/aia-mcp"
103
+ }
104
+ }
105
+ }
106
+ ```
107
+
108
+ Ajusta `cwd` a la ruta absoluta de tu proyecto `aia-mcp`.
109
+
110
+ ### Conectar aia por HTTP
111
+
112
+ 1. Inicia el servidor MCP en modo HTTP: `poetry run mcp temperatura --http`
113
+ 2. En otra terminal, ejecuta el agente con la variable de entorno:
114
+ ```bash
115
+ MCP_URL=http://localhost:8001/mcp poetry run aia
116
+ ```
117
+
118
+ **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`.
119
+
120
+ ## Tools disponibles
121
+
122
+ ### get_temperature
123
+
124
+ Obtiene la temperatura actual de una ciudad (valores simulados).
125
+
126
+ - **Parámetro:** `city` (string, opcional) — Nombre de la ciudad
127
+ - **Retorno:** String con la temperatura
128
+
129
+ Ciudades soportadas: Santiago, Buenos Aires, Lima, Bogotá, Madrid, New York, Londres, Tokio.
130
+
131
+ ### Monitor (acumulador / estanque)
132
+
133
+ - **get_lectura_actual()**: Obtiene litros y porcentaje del acumulador en tiempo real. Usa MQTT (`MQTT_HOST`, `MQTT_TOPIC_OUT`) o `TINAJA_ESTADO_URL` como fallback. Si no hay datos, devuelve un cálculo de ejemplo.
134
+ - **calculate_tinaja_level(distance)**: Calcula litros y porcentaje desde la distancia del sensor (cm).
135
+ - **get_tinaja_config()**: Configuración del estanque y estado MQTT.
136
+ - **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`). Requiere `MONGODB_URI` en `.env`.
137
+
138
+ Variables en `.env`: `MQTT_HOST`, `MQTT_PORT`, `MQTT_USERNAME`, `MQTT_PASSWORD`, `MQTT_TOPIC_OUT`. Fallback HTTP: `TINAJA_ESTADO_URL`. Para velocidad: `MONGODB_URI`.
139
+
140
+ ### Wahapedia (Warhammer 40K)
141
+
142
+ - **get_unit_stats(query, faction)**: Estadísticas de una unidad.
143
+ - **search_wahapedia(query)**: Búsqueda en español.
144
+ - **get_factions()**: Lista todas las facciones.
145
+ - **get_units(faction)**: Unidades de una facción.
146
+ - **get_stratagems(faction)**: Estratagemas de una facción.
147
+
148
+ 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.
149
+
@@ -0,0 +1,127 @@
1
+ # aia-mcp
2
+
3
+ Servidor MCP (Model Context Protocol) que expone herramientas para el agente **aia** del proyecto hermano [amanda-IA](https://github.com/your-org/amanda-IA).
4
+
5
+ ## Estructura
6
+
7
+ ```
8
+ aia-mcp/
9
+ ├── README.md
10
+ ├── pyproject.toml
11
+ ├── mcp_cli/ # CLI para ejecutar servidores
12
+ ├── specs/
13
+ │ └── SPEC_TEMPERATURA.md
14
+ ├── temperatura/ # get_temperature (ciudades)
15
+ │ ├── __init__.py
16
+ │ └── server.py
17
+ └── monitor/ # medición, historial_mediciones
18
+ ├── __init__.py
19
+ └── server.py
20
+ ```
21
+
22
+ Cada servidor MCP vive en su propio directorio. Ejecuta cualquiera con `poetry run mcp <servidor>`.
23
+
24
+ ## Requisitos
25
+
26
+ - Python 3.11+
27
+ - [Poetry](https://python-poetry.org/)
28
+
29
+ ## Instalación
30
+
31
+ ```bash
32
+ cd aia-mcp
33
+ poetry install
34
+ ```
35
+
36
+ ## Ejecutar servidores MCP
37
+
38
+ Desde el directorio `aia-mcp/`:
39
+
40
+ ```bash
41
+ poetry run mcp # temperatura (por defecto, stdio)
42
+ poetry run mcp temperatura # explícito
43
+ poetry run mcp monitor # acumulador/estanque (litros, %, velocidad)
44
+ poetry run mcp --list # listar servidores disponibles
45
+
46
+ # Modo HTTP (para conexión remota)
47
+ poetry run mcp temperatura --http # puerto 8001
48
+ poetry run mcp monitor --http # puerto 8003
49
+
50
+ # Levantar todos los servidores
51
+ poetry run mcp all --http
52
+ ```
53
+
54
+ - **stdio** (por defecto): para Cursor, Claude Desktop, etc.
55
+ - **HTTP** (`--http`): servidor en `http://0.0.0.0:8001/mcp` para que el agente aia se conecte por red.
56
+
57
+ ## Swagger UI (documentación de APIs)
58
+
59
+ ```bash
60
+ poetry run mcp-swagger # puerto 8010
61
+ # o
62
+ poetry run mcp swagger --http
63
+ ```
64
+
65
+ Accede a: http://localhost:8010/
66
+
67
+ Cada servidor tiene su documentación:
68
+ - /temperatura, /wahapedia, /monitor, /shell
69
+ - /airbnb, /charts, /email, /mangadex
70
+
71
+ ## Conectar con el agente (Cursor / amanda-IA)
72
+
73
+ Configura el servidor MCP en Cursor o en el agente aia. Ejemplo para `~/.cursor/mcp.json`:
74
+
75
+ ```json
76
+ {
77
+ "mcpServers": {
78
+ "temperatura": {
79
+ "command": "poetry",
80
+ "args": ["run", "mcp", "temperatura"],
81
+ "cwd": "/ruta/a/aia-mcp"
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ Ajusta `cwd` a la ruta absoluta de tu proyecto `aia-mcp`.
88
+
89
+ ### Conectar aia por HTTP
90
+
91
+ 1. Inicia el servidor MCP en modo HTTP: `poetry run mcp temperatura --http`
92
+ 2. En otra terminal, ejecuta el agente con la variable de entorno:
93
+ ```bash
94
+ MCP_URL=http://localhost:8001/mcp poetry run aia
95
+ ```
96
+
97
+ **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`.
98
+
99
+ ## Tools disponibles
100
+
101
+ ### get_temperature
102
+
103
+ Obtiene la temperatura actual de una ciudad (valores simulados).
104
+
105
+ - **Parámetro:** `city` (string, opcional) — Nombre de la ciudad
106
+ - **Retorno:** String con la temperatura
107
+
108
+ Ciudades soportadas: Santiago, Buenos Aires, Lima, Bogotá, Madrid, New York, Londres, Tokio.
109
+
110
+ ### Monitor (acumulador / estanque)
111
+
112
+ - **get_lectura_actual()**: Obtiene litros y porcentaje del acumulador en tiempo real. Usa MQTT (`MQTT_HOST`, `MQTT_TOPIC_OUT`) o `TINAJA_ESTADO_URL` como fallback. Si no hay datos, devuelve un cálculo de ejemplo.
113
+ - **calculate_tinaja_level(distance)**: Calcula litros y porcentaje desde la distancia del sensor (cm).
114
+ - **get_tinaja_config()**: Configuración del estanque y estado MQTT.
115
+ - **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`). Requiere `MONGODB_URI` en `.env`.
116
+
117
+ Variables en `.env`: `MQTT_HOST`, `MQTT_PORT`, `MQTT_USERNAME`, `MQTT_PASSWORD`, `MQTT_TOPIC_OUT`. Fallback HTTP: `TINAJA_ESTADO_URL`. Para velocidad: `MONGODB_URI`.
118
+
119
+ ### Wahapedia (Warhammer 40K)
120
+
121
+ - **get_unit_stats(query, faction)**: Estadísticas de una unidad.
122
+ - **search_wahapedia(query)**: Búsqueda en español.
123
+ - **get_factions()**: Lista todas las facciones.
124
+ - **get_units(faction)**: Unidades de una facción.
125
+ - **get_stratagems(faction)**: Estratagemas de una facción.
126
+
127
+ 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.
File without changes