IaC内存MCP服务器
一种模型上下文协议(MCP)服务器,通过为基础设施即代码(IaC)组件提供持久内存存储来增强Claude AI的能力,重点是Terraform和Ansible资源的版本跟踪和关系映射。
\[!注意\]\ 这是一个个人项目,旨在确定使用人工智能的人(我)的能力状态 没有主题专业知识(缺乏Python知识)。因为它已经变得相当昂贵 禁止,我不打算进一步开发或维护这个项目。
概述
IaC内存MCP服务器通过提供以下功能来解决维护IaC组件准确、版本感知上下文的挑战:
- IaC组件的持久存储和版本跟踪
- 基于URI访问的分层资源组织
- 组件之间的全面关系映射
- 版本特定文档管理
- 模式验证和时态元数据跟踪
- 自动化关系分析和洞察
核心组件
资源管理
服务器实现了一个具有分层URI的复杂资源管理系统:
资源URI结构
resources://
//支持的平台:
- 地形改造
- 安斯布尔
- iac(适用于一般基础设施实体)
URI示例:
resources://terraform/providers/aws
resources://terraform/resources/aws/s3_bucket
resources://ansible/collections/community.aws
resources://ansible/modules/community.aws/s3_bucket资源模板
服务器为标准化的访问模式提供动态资源模板:
- 地形提供者信息:
resources://terraform/providers/{provider_name} - 资源类型详细信息:
resources://terraform/resources/{provider_name}/{resource_type} - 可靠的收集数据:
resources://ansible/collections/{collection_name} - 模块信息:
resources://ansible/modules/{collection_name}/{module_name}
鼓励
服务器实现了四个用于IaC组件发现和分析的专用提示:
搜索资源
- 目的:搜索IaC资源
- 论据:
- provider:提供商名称 - resource_type:资源类型
- 返回:关于给定提供者的特定资源的信息
分析实体
- 目的:分析一个实体及其关系
- 论据:
- entity_id:实体ID - include_relationships:包括关系
- 返回:详细的实体分析,包括名称、类型和观察结果
terraform_供应商
- 目的:获取有关Terraform提供者的信息
- 论据:
- provider_name:地形提供者的名称(必填) - version:要查询的特定版本(可选)
- 返回:指定版本的详细提供程序信息
ansible_module
- 目的:获取有关Ansible模块的信息
- 论据:
- collection_name:Ansible集合的名称(必填) - module_name:模块名称(必填) - version:要查询的特定版本(可选)
- 返回:指定版本的详细模块信息
工具
服务器实现了用于IaC组件管理的全面工具:
地形工具
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许可证获得许可-有关详细信息,请参阅许可证文件。

