mcpField
I
IaC Memory MCP Server

IaC Memory MCP Server

本地服务
github.com/AgentWong记忆与知识191 周前更新

关于 IaC Memory MCP Server

IaC Memory MCP Server 是用于 Terraform、Ansible 等基础设施即代码组件的记忆服务,面向需要管理版本、文档和组件关系的用户。项目支持持久化存储与关系分析;README 声明该个人项目不再维护。

主要功能

  1. 01持久化存储 IaC 组件信息
  2. 02跟踪组件版本及文档
  3. 03组织资源层级和实体关系
  4. 04校验架构并记录时间元数据
  5. 05提供 Terraform 与 Ansible 查询工具

适用场景

  1. 01查询特定版本的 Terraform Provider
  2. 02检查 Ansible 模块兼容性
  3. 03分析基础设施实体依赖
  4. 04维护 IaC 组件的版本文档

MCP 相关

该项目是 MCP 服务,向 MCP 客户端提供 IaC 资源、提示词和工具,用于检索、管理及分析 Terraform 和 Ansible 组件。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

IaC 记忆 MCP 服务

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

说明


这是一个个人项目,用于了解在使用者(也就是我)缺乏相关专业知识(不了解 Python)的情况下,AI 能力的现状。由于项目成本变得过高,我不打算继续开发或维护这个项目。

概览

IaC 记忆 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 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。