He creado un servidor MCP que facilita el acceso a módulos Terraform personalizados y que quiero compartir con la comunidad. El proyecto llamado terraform-ingest es una herramienta CLI, MCP y API que puede usarse localmente o con un agente IA para aprovechar mejor una base de código existente. Su objetivo principal es permitir definir con un simple archivo YAML las fuentes git de módulos Terraform personalizados, ingerirlos, extraer e indexar la información relevante y generar embeddings para una base de datos vectorial que permita búsquedas por similitud.
El problema detectado era claro: no existía un servidor Model Context Protocol que sirviera como interfaz única para varias docenas de módulos Terraform personalizados que había ido creando. Es frecuente que, incluso cuando se dispone de un monorepo virtual, resulte difícil recordar consistentemente variables, outputs y caminos correctos de cada módulo. Lo que hace falta es un servidor MCP que agregue y mantenga como fuente de la verdad decenas de módulos, ya sean proyectos individuales o repositorios monorepo recursivos.
La solución que propongo es una canalización de ingestión RAG para módulos Terraform. El flujo consiste en clonar repositorios git, parsear los archivos HCL, generar un resumen en JSON para cada módulo y finalmente producir embeddings que se almacenen en una vectordb para búsquedas por similitud. Con esto se puede buscar y componer módulos para generar infraestructuras como código que sean conformes a las políticas de la organización.
Cómo se construyó El desarrollo se hizo en varias iteraciones aprovechando IA para tareas de scaffolding y automatización. Los pasos principales incluyeron crear una definición YAML y una interfaz CLI con un servidor FastAPI para ingerir uno o varios repositorios git, añadir una interfaz FastMCP para consultas y finalmente incorporar embeddings con una vectordb local o servicios externos. En el camino añadí imágenes Docker multinivel, pipelines de CI, publicación en PyPI, pruebas unitarias, releases semánticos y generación de documentación con mkdocs.
Detalles técnicos adicionales incluyen soporte para ingestión de ramas y tags, manejo de rutas de inclusión y exclusión dentro de repositorios, y opciones para usar distintas implementaciones de embeddings según el entorno. Para evitar inflar el paquete y los tiempos de CI, la arquitectura implementa lazy loading de dependencias pesadas y un instalador dinámico que asegura que los modelos de embeddings estén disponibles solo cuando se necesitan. Advertencia: esta técnica agiliza desarrollo pero no es recomendable para producción sin consolidar un artefacto inmóvil que incluya los modelos embebidos.
Casos de uso Entre los usos más prácticos están: generación bajo demanda de documentación y ejemplos de módulo, consultas sobre módulos propios mediante cualquier LLM, planificación de upgrades y análisis de riesgos, despliegues greenfield usando módulos organizacionales y ejecución de un servidor MCP interno que valide usos de módulos vía agentes internos. Este enfoque funciona especialmente bien para equipos que gestionan muchos módulos AWS y Azure y necesitan integrar búsquedas inteligentes y agentes IA en sus flujos de trabajo; si su organización gestiona infraestructuras en la nube puede interesarle conocer nuestras soluciones de servicios cloud aws y azure.
Ejemplo práctico El proyecto incluye un ejemplo de configuración con cientos de entradas para los módulos de Cloudposse, lo que permite ver cómo definir repositorios, rutas y versiones para su ingestión. Una vez indexados los módulos en caché local y embebidos en la vectordb, las búsquedas por similitud retornan resultados útiles sin necesidad de IA, y los clientes MCP pueden invocar funciones para obtener detalles de módulos, generar ejemplos o ejecutar análisis de compatibilidad.
Lecciones aprendidas Algunos puntos relevantes: STDIO es frágil en modo MCP local porque cualquier salida no planificada rompe la comunicación JSON, por lo que es importante separar procesos largos de ingestión y embeddings en preprocesos CLI. Las embeddings locales ocupan mucho espacio y afectan tiempos de CI, por eso conviene ofrecer alternativas externas o lazy loading. Finalmente, para producción es preferible construir una imagen con todos los modelos incluidos para evitar instalaciones dinámicas que puedan presentar riesgos de seguridad.
Acerca de Q2BSTUDIO En Q2BSTUDIO somos especialistas en desarrollo de software a medida y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad, servicios cloud y soluciones de inteligencia de negocio. Podemos ayudar a integrar proyectos como terraform-ingest en arquitecturas reales, automatizar pipelines de CI/CD, y desplegar agentes IA que colaboren con equipos de infraestructura. Si le interesa explorar aplicaciones de inteligencia artificial para empresas o implantar agentes IA que trabajen con su catálogo de módulos, consulte nuestra página de inteligencia artificial. También ofrecemos servicios en ciberseguridad, pentesting, y soluciones de Business Intelligence y power bi para mejorar visibilidad y gobernanza.
Conclusión terraform-ingest es una propuesta práctica para agregar, documentar y buscar módulos Terraform a gran escala mediante un servidor MCP y una canalización RAG. Para equipos que necesitan acelerar la reutilización de infraestructura como código y combinarlo con agentes IA y procesos automatizados, esta solución ofrece una base sólida que se puede extender. En Q2BSTUDIO podemos ayudar a adaptar e implementar estas capacidades en su organización, optimizando desarrollos de software a medida, integraciones cloud y estrategias de inteligencia de negocio.