IAC内存MCP服务器
一个自定义的Memory MCP服务器,用作基础设施即代码信息的缓存,允许用户通过自定义URI方案和简单的资源处理来存储、汇总和管理笔记。
服务介绍
IaC Memory MCP 服务器
一个模型上下文协议(MCP)服务器,通过为基础设施即代码(IaC)组件提供持久内存存储来增强Claude AI的能力,重点关注Terraform和Ansible资源的版本跟踪和关系映射。
[!NOTE]
这是一个个人项目,旨在确定在使用它的人(我)没有专业知识(缺乏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:实体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 文件。