关于 IaC Memory MCP Server
IaC Memory MCP Server 是用于 Terraform、Ansible 等基础设施即代码组件的记忆服务,面向需要管理版本、文档和组件关系的用户。项目支持持久化存储与关系分析;README 声明该个人项目不再维护。
主要功能
- 01持久化存储 IaC 组件信息
- 02跟踪组件版本及文档
- 03组织资源层级和实体关系
- 04校验架构并记录时间元数据
- 05提供 Terraform 与 Ansible 查询工具
适用场景
- 01查询特定版本的 Terraform Provider
- 02检查 Ansible 模块兼容性
- 03分析基础设施实体依赖
- 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:实体 IDinclude_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 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。