Iac Memory Mcp Server

Iac Memory Mcp Server

🚀 基础设施即代码记忆 MCP 服务器

这是一个增强 Claude AI 功能的 MCP(模型上下文协议)服务器,通过为 IaC(基础设施即代码)组件提供持久内存存储,实现版本跟踪和关系映射。主要聚焦于 Terraform 和 Ansible 资源。

🚀 快速开始

本项目是一个个人项目,旨在测试 AI 在使用者(即本人)缺乏相关专业知识时的能力状态。不过,由于成本过高,本人不打算进一步开发或维护该项目。

✨ 主要特性

IaC Memory MCP Server 解决了保持准确、版本感知的 IaC 组件上下文的难题,具备以下功能:

  • 对 IaC 组件进行持久存储和版本跟踪。
  • 以层次结构组织资源,并支持基于 URI 的访问。
  • 全面映射组件之间的关系。
  • 管理特定版本的文档。
  • 进行模式验证和时间元数据跟踪。
  • 实现自动化的关系分析并提供见解。

📚 详细文档

核心组件

资源管理

服务器实现了一套复杂的资源管理系统,采用层次结构 URI:

  • 资源 URI 结构
resources:////

支持的平台包括:

  • terraform
  • ansible
  • iac(用于通用基础设施实体)

示例 URI:

resources://terraform/providers/aws
resources://terraform/resources/aws/s3_bucket
resources://ansible/collections/community.aws
resources://ansible/modules/community.aws/s3_bucket
  • 资源模板 服务器提供动态资源模板,以标准化标准访问模式:
    • Terraform 提供商信息:resources://terraform/providers/{provider_name}
    • 资源类型详细信息:resources://terraform/resources/{provider_name}/{resource_type}
    • Ansible 集合数据:resources://ansible/collections/{collection_name}
    • 模块信息:resources://ansible/modules/{collection_name}/{module_name}

提示词

服务器实现了四个专门用于 IaC 组件发现和分析的提示:

  • search_resources

    • 目的:搜索 IaC 资源。
    • 参数:
      • provider:提供程序名称
      • resource_type:资源类型
    • 输出:返回指定平台的所有资源列表。
  • get_resource_schema

    • 目的:获取特定资源的模式。
    • 参数:
      • platform:平台名称(terraform 或 ansible)
      • provider:提供程序名称
      • resource_type:资源类型
    • 输出:返回资源的详细模式信息。
  • validate_resource

    • 目的:验证资源配置的有效性。
    • 参数:
      • platform:平台名称(terraform 或 ansible)
      • provider:提供程序名称
      • resource_type:资源类型
      • schema_version:模式版本
      • configuration:要验证的配置内容
    • 输出:返回验证结果和错误信息。
  • get_resource_relations

    • 目的:获取资源之间的关系映射。
    • 参数:
      • platform:平台名称(terraform 或 ansible)
      • provider:提供程序名称
      • resource_type:资源类型
    • 输出:返回与其他资源的关系列表。

工具

  • Terraform 工具
def get_terraform_provider_schemas():
pass

def get_terraform_resource_schema(provider: str, resource_type: str) -> dict:
pass

def validate_terraform_resource(
provider: str,
resource_type: str,
schema_version: str,
configuration: dict
) -> dict:
pass
  • Ansible 工具
def get_ansible_collection_schemas():
pass

def get_ansible_resource_schema(collection: str, resource_type: str) -> dict:
pass

def validate_ansible_resource(
collection: str,
resource_type: str,
schema_version: str,
configuration: dict
) -> dict:
pass
  • 实体操作工具
def get_entity_relationships() -> list:
pass

配置

通过环境变量配置服务器:

DATABASE_URL=sqlite:////home/herman/iac.db

与 Claude Desktop 集成

开发环境

uv.json 中添加以下内容以配置开发环境:

"mcpServers": {
"iac-memory": {
"command": "uv sync",
"args": [],
"env": {
"DATABASE_URL": "sqlite:////home/herman/iac.db"
}
}
}

生产环境

uv.json 中添加以下内容以配置生产环境:

"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"
}
}
}

开发

本地开发

# 安装依赖项
uv sync

# 运行测试
uv run pytest

# 使用 MCP 绝缘体进行开发服务器
npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server

📄 许可证

该项目遵循 MIT License,详细内容请参阅 LICENSE 文件。

⚠️ 重要提示

这是一个个人项目,旨在测试 AI 在使用者缺乏相关专业知识时的能力状态。由于成本过高,不会进一步开发或维护该项目。

  • 0 关注
  • 0 收藏,24 浏览
  • system 提出于 2025-09-19 07:45

相似服务问题

相关AI产品