IaC Memory MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables interaction with Ansible collections and modules, supporting operations like retrieving collection information, listing modules, checking version compatibility, and adding or updating collection and module definitions with schema validation.

  • Uses SQLite as the persistent storage backend for Infrastructure-as-Code components, allowing configuration through the DATABASE_URL environment variable.

  • Provides tools for managing Terraform providers and resources, including retrieving provider information, listing resources, checking version compatibility, and adding or updating provider and resource definitions with schema validation.

Servidor MCP de memoria IaC

Un servidor de Protocolo de Contexto de Modelo (MCP) que mejora las capacidades de Claude AI al proporcionar almacenamiento de memoria persistente para componentes de Infraestructura como Código (IaC), con un enfoque en el seguimiento de versiones y el mapeo de relaciones para los recursos de Terraform y Ansible.

[!NOTA]
Este fue un proyecto personal para determinar el estado de la capacidad de la IA si quien la usa (yo) no tiene experiencia en la materia (falta de conocimientos de Python). Dado que su costo se ha vuelto prohibitivo, no tengo intención de seguir desarrollando ni manteniendo este proyecto.

Descripción general

El servidor MCP de memoria IaC aborda el desafío de mantener un contexto preciso y con reconocimiento de versiones para los componentes IaC al proporcionar:

  • Almacenamiento persistente y seguimiento de versiones para componentes IaC
  • Organización jerárquica de recursos con acceso basado en URI
  • Mapeo completo de relaciones entre componentes
  • Gestión de documentación específica de la versión
  • Validación de esquemas y seguimiento de metadatos temporales
  • Análisis y perspectivas automatizadas de relaciones

Componentes principales

Gestión de recursos

El servidor implementa un sofisticado sistema de gestión de recursos con URI jerárquicos:

Estructura de URI de recursos

resources://<platform>/<category>/<name>

Plataformas compatibles:

  • terraformar
  • ansible
  • iac (para entidades de infraestructura general)

Ejemplos de URI:

resources://terraform/providers/aws resources://terraform/resources/aws/s3_bucket resources://ansible/collections/community.aws resources://ansible/modules/community.aws/s3_bucket

Plantillas de recursos

El servidor proporciona plantillas de recursos dinámicos para patrones de acceso estandarizados:

  • Información del proveedor de Terraform: resources://terraform/providers/{provider_name}
  • Detalles del tipo de recurso: resources://terraform/resources/{provider_name}/{resource_type}
  • Datos de recopilación de Ansible: resources://ansible/collections/{collection_name}
  • Información del módulo: resources://ansible/modules/{collection_name}/{module_name}

Indicaciones

El servidor implementa cuatro indicaciones especializadas para el descubrimiento y análisis de componentes IaC:

recursos de búsqueda

  • Propósito: Buscar recursos de IaC
  • Argumentos:
    • provider : Nombre del proveedor
    • resource_type : Tipo de recurso
  • Devoluciones: Información sobre recursos específicos para el proveedor dado

analizar_entidad

  • Propósito: Analizar una entidad y sus relaciones.
  • Argumentos:
    • entity_id : ID de entidad
    • include_relationships : Incluir relaciones
  • Devoluciones: Análisis detallado de la entidad, incluyendo nombre, tipo y observaciones.

proveedor de terraform

  • Propósito: Obtener información sobre un proveedor de Terraform
  • Argumentos:
    • provider_name : Nombre del proveedor de Terraform (obligatorio)
    • version : Versión específica a consultar (opcional)
  • Devuelve: Información detallada del proveedor para la versión especificada

módulo ansible

  • Propósito: Obtener información sobre un módulo de Ansible
  • Argumentos:
    • collection_name : Nombre de la colección de Ansible (obligatorio)
    • module_name : Nombre del módulo (obligatorio)
    • version : Versión específica a consultar (opcional)
  • Devuelve: Información detallada del módulo para la versión especificada

Herramientas

El servidor implementa herramientas integrales para la gestión de componentes IaC:

Herramientas de Terraform

  • get_terraform_provider_info : recupera información detallada del proveedor, incluyendo la versión y los recursos
  • list_provider_resources : enumera todos los recursos disponibles para un proveedor específico
  • get_terraform_resource_info : Obtenga información detallada sobre un tipo de recurso específico
  • add_terraform_provider : Registrar nuevos proveedores con control de versiones
  • add_terraform_resource : Agregar definiciones de recursos con esquemas
  • update_provider_version : Actualizar las versiones del proveedor con nueva documentación

Herramientas de Ansible

  • get_ansible_collection_info : Obtenga información detallada sobre una colección de Ansible
  • list_ansible_collections : enumera todas las colecciones de Ansible disponibles
  • get_collection_version_history : Ver el historial de versiones de una colección
  • get_ansible_module_info : Obtener información detallada sobre un módulo específico
  • list_collection_modules : enumera todos los módulos de una colección
  • get_module_version_compatibility : Verifica la compatibilidad de versiones de los módulos
  • add_ansible_collection : Registrar nuevas colecciones de Ansible
  • add_ansible_module : Agregar nuevos módulos con validación y documentación

Operaciones de la entidad

  • create_entity : Crea nuevas entidades de infraestructura
  • update_entity : Modificar configuraciones de entidades existentes
  • delete_entity : Eliminar entidades con limpieza de relaciones
  • view_relationships : Analizar dependencias y relaciones entre entidades

Configuración

El servidor admite la configuración a través de variables de entorno:

  • DATABASE_URL : Ubicación de la base de datos SQLite
  • MCP_DEBUG : Habilitar el registro de depuración cuando está configurado
  • MCP_TEST_MODE : Habilitar el modo de prueba para restablecimientos de bases de datos

Para el desarrollo, cree un archivo .env :

DATABASE_URL=sqlite:////path/to/db.sqlite MCP_DEBUG=1 MCP_TEST_MODE=1

Integración con Claude Desktop

Configuración de desarrollo

"mcpServers": { "iac-memory": { "command": "uv", "args": [ "--directory", "/path/to/iac-memory-mcp-server", "run", "iac-memory-mcp-server" ] "env": { "DATABASE_URL": "sqlite:////home/herman/iac.db" } } }

Configuración de producción

"mcpServers": { "iac-memory": { "command": "uvx", "args": [ "--from", "git+https://github.com/AgentWong/iac-memory-mcp-server.git", "python", "-m", "iac_memory_mcp_server" ], "env": { "DATABASE_URL": "sqlite:////home/herman/iac.db" } } }

Desarrollo

Desarrollo local

# Install dependencies uv sync # Run tests uv run pytest # Development server with MCP Inspector npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Mejora Claude AI con almacenamiento de memoria persistente para componentes de infraestructura como código, lo que admite el seguimiento de versiones y el mapeo de relaciones para los recursos de Terraform y Ansible.

  1. Overview
    1. Core Components
      1. Resource Management
      2. Prompts
      3. Tools
    2. Configuration
      1. Integration with Claude Desktop
        1. Development Setup
        2. Production Setup
      2. Development
        1. Local Development
      3. License
        ID: g4vkk4v3w5