IAC Memory MCP Server
一个定制的内存 MCP 服务器,它充当基础设施即代码信息的缓存,允许用户使用自定义 URI 方案和简单的资源处理来存储、总结和管理笔记。
Tools
get_terraform_provider_info
Retrieve comprehensive information about a Terraform provider
list_terraform_providers
List all cached Terraform providers with basic metadata
get_provider_version_history
Retrieve version history for a specific Terraform provider
get_terraform_resource_info
Retrieve comprehensive information about a Terraform resource including schema and documentation
list_provider_resources
List all resources associated with a specific Terraform provider
get_ansible_collection_info
Retrieve comprehensive information about an Ansible collection
list_ansible_collections
List all cached Ansible collections with basic metadata
get_collection_version_history
Retrieve version history for a specific Ansible collection
get_ansible_module_info
Retrieve comprehensive information about an Ansible module including schema and documentation
get_resource_version_compatibility
Check resource compatibility across provider versions
add_terraform_provider
Add a new Terraform provider to the memory store with version and documentation information
update_provider_version
Update an existing Terraform provider's version information and documentation links
add_terraform_resource
Add a new Terraform resource definition with its schema and version information
update_resource_schema
Update an existing Terraform resource's schema and related information
add_ansible_collection
Add a new Ansible collection to the memory store with version and documentation information
update_collection_version
Update an existing Ansible collection's version information and documentation links
add_ansible_module
Add a new Ansible module definition with its schema and version information
update_module_version
Update an existing Ansible module's schema and related information
get_module_version_compatibility
Check module compatibility across collection versions
create_entity
Create a new entity in the knowledge graph with optional initial observations
update_entity
Update an existing entity's properties and add new observations
delete_entity
Remove an entity and its relationships from the knowledge graph
view_relationships
Retrieve all relationships and observations for a specific entity
README
IaC 内存 MCP 服务器
一个模型上下文协议 (MCP) 服务器,通过为基础设施即代码 (IaC) 组件提供持久性内存存储来增强 Claude AI 的能力,重点在于 Terraform 和 Ansible 资源的版本跟踪和关系映射。
[!NOTE] 这是一个个人项目,旨在确定 AI 的能力状态,如果使用它的人(我) 没有主题专业知识(缺乏 Python 知识)。由于它变得相当昂贵, 我不打算进一步开发或维护这个项目。
概述
IaC 内存 MCP 服务器通过提供以下功能来解决维护 IaC 组件的准确、版本感知上下文的挑战:
- IaC 组件的持久性存储和版本跟踪
- 具有基于 URI 访问的层次结构资源组织
- 组件之间的全面关系映射
- 版本特定的文档管理
- 模式验证和时间元数据跟踪
- 自动关系分析和见解
核心组件
资源管理
服务器实现了一个具有分层 URI 的复杂资源管理系统:
资源 URI 结构
resources://<平台>/<类别>/<名称>
支持的平台:
- 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"
}
}
}
开发
本地开发
# 安装依赖
uv sync
# 运行测试
uv run pytest
# 带有 MCP Inspector 的开发服务器
npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server
许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。