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 +149 -0
- aia_mcp-1.1.0/README.md +127 -0
- aia_mcp-1.1.0/airbnb/__init__.py +0 -0
- aia_mcp-1.1.0/airbnb/server.py +992 -0
- aia_mcp-1.1.0/charts/__init__.py +0 -0
- aia_mcp-1.1.0/charts/server.py +383 -0
- aia_mcp-1.1.0/mangadex/__init__.py +0 -0
- aia_mcp-1.1.0/mangadex/server.py +1222 -0
- aia_mcp-1.1.0/mcp_cli/__init__.py +5 -0
- aia_mcp-1.1.0/mcp_cli/cli.py +207 -0
- aia_mcp-1.1.0/mcp_cli/logging_middleware.py +78 -0
- aia_mcp-1.1.0/mcp_cli/tracer.py +63 -0
- aia_mcp-1.1.0/mcp_email/__init__.py +0 -0
- aia_mcp-1.1.0/mcp_email/server.py +413 -0
- aia_mcp-1.1.0/monitor/__init__.py +1 -0
- aia_mcp-1.1.0/monitor/server.py +901 -0
- aia_mcp-1.1.0/pyproject.toml +42 -0
- aia_mcp-1.1.0/shell/__init__.py +0 -0
- aia_mcp-1.1.0/shell/server.py +46 -0
- aia_mcp-1.1.0/swagger/__init__.py +13 -0
- aia_mcp-1.1.0/swagger/__main__.py +6 -0
- aia_mcp-1.1.0/swagger/introspection.py +283 -0
- aia_mcp-1.1.0/swagger/openapi_generator.py +258 -0
- aia_mcp-1.1.0/swagger/server.py +157 -0
- aia_mcp-1.1.0/temperatura/__init__.py +1 -0
- aia_mcp-1.1.0/temperatura/server.py +209 -0
- aia_mcp-1.1.0/wahapedia/__init__.py +1 -0
- aia_mcp-1.1.0/wahapedia/cache.py +91 -0
- aia_mcp-1.1.0/wahapedia/server.py +753 -0
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
|
+
|
aia_mcp-1.1.0/README.md
ADDED
|
@@ -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
|