这是一个增强 Claude AI 功能的 MCP(模型上下文协议)服务器,通过为 IaC(基础设施即代码)组件提供持久内存存储,实现版本跟踪和关系映射。主要聚焦于 Terraform 和 Ansible 资源。
本项目是一个个人项目,旨在测试 AI 在使用者(即本人)缺乏相关专业知识时的能力状态。不过,由于成本过高,本人不打算进一步开发或维护该项目。
IaC Memory MCP Server 解决了保持准确、版本感知的 IaC 组件上下文的难题,具备以下功能:
服务器实现了一套复杂的资源管理系统,采用层次结构 URI:
resources:////
支持的平台包括:
示例 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 组件发现和分析的提示:
search_resources
provider:提供程序名称resource_type:资源类型get_resource_schema
platform:平台名称(terraform 或 ansible)provider:提供程序名称resource_type:资源类型validate_resource
platform:平台名称(terraform 或 ansible)provider:提供程序名称resource_type:资源类型schema_version:模式版本configuration:要验证的配置内容get_resource_relations
platform:平台名称(terraform 或 ansible)provider:提供程序名称resource_type:资源类型def get_terraform_provider_schemas():
pass
def get_terraform_resource_schema(provider: str, resource_type: str) -> dict:
pass
def validate_terraform_resource(
provider: str,
resource_type: str,
schema_version: str,
configuration: dict
) -> dict:
pass
def get_ansible_collection_schemas():
pass
def get_ansible_resource_schema(collection: str, resource_type: str) -> dict:
pass
def validate_ansible_resource(
collection: str,
resource_type: str,
schema_version: str,
configuration: dict
) -> dict:
pass
def get_entity_relationships() -> list:
pass
通过环境变量配置服务器:
DATABASE_URL=sqlite:////home/herman/iac.db
在 uv.json 中添加以下内容以配置开发环境:
"mcpServers": {
"iac-memory": {
"command": "uv sync",
"args": [],
"env": {
"DATABASE_URL": "sqlite:////home/herman/iac.db"
}
}
}
在 uv.json 中添加以下内容以配置生产环境:
"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 绝缘体进行开发服务器
npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server
该项目遵循 MIT License,详细内容请参阅 LICENSE 文件。
⚠️ 重要提示
这是一个个人项目,旨在测试 AI 在使用者缺乏相关专业知识时的能力状态。由于成本过高,不会进一步开发或维护该项目。