C

Claude增强服务

@AgentWong/iac-memory-mcp-server-project
1 Stars 442 次浏览 AgentWong 更新于 2026-08-23

增强了带有持久化存储记忆功能的 Claude AI,用于基础设施即代码组件,支持 Terraform 和 Ansible 资源的版本跟踪和关系映射。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

IaC Memory MCP 服务器

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

[!NOTE]
这是一个个人项目,旨在确定如果使用AI的人(我)没有专业知识(缺乏Python知识)的情况下,AI的能力状态。由于成本变得相当高昂,我不打算进一步开发或维护这个项目。

概览

IaC Memory MCP服务器通过以下方式解决了维护IaC组件准确且版本感知上下文的挑战:

  • IaC组件的持久存储和版本跟踪
  • 基于URI的层次化资源组织
  • 组件之间的全面关系映射
  • 特定版本的文档管理
  • 模式验证和时间元数据跟踪
  • 自动关系分析和见解

核心组件

资源管理

服务器实现了一个具有层次化URI的复杂资源管理系统:

资源URI结构

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

支持的平台:

  • 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:资源类型
  • 返回:给定提供者的特定资源信息

analyze_entity

  • 目的:分析实体及其关系
  • 参数:
    • entity_id:实体ID
    • include_relationships:包含关系
  • 返回:详细的实体分析,包括名称、类型和观察结果

terraform_provider

  • 目的:获取有关Terraform提供者的信息
  • 参数:
    • provider_name:Terraform提供者的名称(必填)
    • version:要查询的具体版本(可选)
  • 返回:指定版本的详细提供者信息

ansible_module

  • 目的:获取有关Ansible模块的信息
  • 参数:
    • collection_name:Ansible集合的名称(必填)
    • module_name:模块名称(必填)
    • version:要查询的具体版本(可选)
  • 返回:指定版本的详细模块信息

工具

服务器实现了全面的工具以进行IaC组件管理:

Terraform 工具

  • get_terraform_provider_info: 获取详细的提供商信息,包括版本和资源
  • list_provider_resources: 列出特定提供商可用的所有资源
  • get_terraform_resource_info: 获取特定资源类型的详细信息
  • add_terraform_provider: 注册带有版本的新提供商
  • add_terraform_resource: 添加带有架构的资源定义
  • update_provider_version: 更新提供商版本并附带新文档

Ansible 工具

  • get_ansible_collection_info: 获取关于 Ansible 集合的详细信息
  • list_ansible_collections: 列出所有可用的 Ansible 集合
  • get_collection_version_history: 查看集合的版本历史
  • get_ansible_module_info: 获取特定模块的详细信息
  • list_collection_modules: 列出集合中的所有模块
  • get_module_version_compatibility: 检查模块的版本兼容性
  • add_ansible_collection: 注册新的 Ansible 集合
  • add_ansible_module: 添加带有验证和文档的新模块

实体操作

  • create_entity: 创建新的基础设施实体
  • update_entity: 修改现有实体配置
  • delete_entity: 删除实体并清理关联关系
  • view_relationships: 分析实体依赖关系和关联

配置

服务器支持通过环境变量进行配置:

  • DATABASE_URL: SQLite 数据库位置
  • MCP_DEBUG: 设置时启用调试日志
  • MCP_TEST_MODE: 启用测试模式以重置数据库

开发时创建一个 .env 文件:

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

与 Claude Desktop 的集成

开发设置

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

生产设置

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

开发

本地开发

# Install dependencies
uv sync

# Run tests
uv run pytest

# Development server with MCP Inspector
npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server

许可证

此项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。

相关 MCP 服务