CultivarIA MCP Server
MCP server for the CultivarIA platform, enabling AI assistants to query real-time and historical telemetry from cultivation modules, analyze plant health, and control actuators like irrigation and climate systems via standardized tools and resources.
README
CultivarIA - Servidor MCP (Model Context Protocol)
Servidor MCP (Model Context Protocol) oficial para la plataforma CultivarIA (https://cultivaria-9673f.web.app/).
Este servidor expone Herramientas (Tools) y Recursos (Resources) estandarizados a través de transporte HTTP con SSE (Server-Sent Events) para permitir que asistentes de Inteligencia Artificial (como Gemini Spark, Antigravity, Claude, etc.) consulten telemetría en tiempo real, analicen tendencias históricas y ejecuten comandos de control sobre módulos y actuadores de cultivo.
1. Requisitos Previos
- Node.js: v18.0.0 o superior.
- npm: v9.0.0 o superior.
2. Instalación y Compilación
-
Ingresa a la carpeta del servidor MCP:
cd mcp-server -
Instala las dependencias:
npm install -
Compila el código TypeScript a JavaScript en
./dist:npm run build -
Inicia el servidor en modo producción:
npm start -
(Opcional) Inicia en modo desarrollo con auto-recarga:
npm run dev
3. Variables de Entorno (.env)
Crea un archivo .env en la raíz de mcp-server/ basado en .env.example:
PORT=3001
CULTIVARIA_MCP_TOKEN=cultivaria_mcp_secret_token_2026
BACKEND_URL=https://cultivaria-9673f-default-rtdb.firebaseio.com
4. Configuración del Conector para Clientes MCP (Gemini Spark / Antigravity / Claude)
Conexión HTTP / SSE (Remota o Local)
Agrega la siguiente configuración en la sección de MCP Servers de tu cliente o entorno:
{
"mcpServers": {
"cultivaria": {
"url": "http://localhost:3001/sse",
"headers": {
"Authorization": "Bearer cultivaria_mcp_secret_token_2026"
}
}
}
}
5. Despliegue 24/7 en la Nube de Google (Google Cloud Run)
Para alojar el servidor MCP encendido las 24 horas del día en la infraestructura global de Google:
- Ve al panel de Google Cloud: Google Cloud Run Console.
- Haz clic en el botón "Crear Servicio" (Create Service).
- Conecta tu repositorio de GitHub o suba la carpeta
mcp-servercon elDockerfileoptimizado incluido. - En la pestaña Variables de entorno y secreto, agrega:
CULTIVARIA_MCP_TOKEN=cultivaria_mcp_secret_token_2026BACKEND_URL=https://cultivaria-9673f-default-rtdb.firebaseio.com
- En Ingreso / Autenticación, marca "Permitir peticiones sin autenticar" (la autenticación de seguridad es manejada internamente por el Bearer Token del MCP).
- Al hacer clic en Crear, Google te asignará una URL pública HTTPS permanente de 24/7 (ejemplo:
https://cultivaria-mcp-server-xyz-uc.a.run.app).
6. Alternativa Gratuita 24/7 en Render.com
Si deseas una opción 24/7 de 1 solo clic en una nube gratuita:
- Ve a render.com y crea un Web Service gratuito conectando este repositorio.
- Render detectará automáticamente el archivo
render.yamlincluido enmcp-server/. - Obtendrás una URL pública de 24/7 como
https://cultivaria-mcp-server.onrender.com/sse.
7. Exposición Remota Temporal para Desarrollo (Túnel con ngrok)
Para permitir que Gemini Spark o cualquier cliente MCP remoto se conecte a tu servidor MCP local mientras desarrollas:
-
Ejecuta el comando de túnel incluido:
npm run tunnel(O usa
npx ngrok http 3001directamente). -
Obtendrás una URL pública segura (ej.
https://a1b2-34-56-78-90.ngrok-free.app). -
Actualiza la URL en tu cliente MCP:
{ "mcpServers": { "cultivaria": { "url": "https://a1b2-34-56-78-90.ngrok-free.app/sse", "headers": { "Authorization": "Bearer cultivaria_mcp_secret_token_2026" } } } }
6. Ejemplos de Prueba con cURL y Postman
A. Health Check
curl http://localhost:3001/health
Respuesta: {"status":"ONLINE","server":"CultivarIA MCP Server","version":"1.0.0"}
B. Iniciar Conexión SSE (Requiere Token Bearer)
curl -i -N \
-H "Authorization: Bearer cultivaria_mcp_secret_token_2026" \
http://localhost:3001/sse
Si no envías el token, el servidor responderá 401 Unauthorized.
C. Probar Invocación de Herramienta por POST (JSON-RPC)
Envía un mensaje JSON-RPC al endpoint /messages?sessionId=<SESSION_ID> retornado en el evento SSE endpoint:
curl -X POST \
"http://localhost:3001/messages?sessionId=<SESSION_ID>" \
-H "Authorization: Bearer cultivaria_mcp_secret_token_2026" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_live_telemetry",
"arguments": {
"module_id": "flora-01"
}
}
}'
7. Catálogo de Herramientas (MCP Tools)
| Herramienta | Descripción | Parámetros Clave |
|---|---|---|
get_live_telemetry |
Lecturas de sensores en vivo | module_id |
get_historical_telemetry |
Serie de tiempo e historial de tendencias | metric, timeframe, module_id |
get_phenological_status |
Salud vegetal y capturas ESP32 | module_id |
update_setpoint |
Actualiza metas de pH, EC, Temp, VPD | metric, target_value, module_id |
trigger_irrigation |
Controla electroválvula de riego | action (start/stop), duration_minutes |
set_actuator_mode |
Ajusta modos de climatización | device, mode, on_minutes, off_minutes |
update_strategy |
Cambia variedad y semana de cultivo | strain_name, cycle_week |
8. Recursos MCP (MCP Resources)
cultivaria://system_status: Resumen del sistema, salud de nodos ESP32 y alertas.cultivaria://modules: Módulos de cultivo registrados y resumen de sensores.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。