article
README
🚀 基于内存的IaC MCP服务器
这是一个增强Claude AI功能的记忆型MCP服务器,通过为Infrastructure-as-Code (IaC)组件提供持久存储,实现版本跟踪和关系映射,尤其专注于Terraform和Ansible资源。
🚀 快速开始
本项目是一个个人项目,用于测试AI能力,前提是使用该技术的人(我)缺乏相关专业知识。由于成本过高,不打算进一步开发或维护该项目。
✨ 主要特性
IaC记忆MCP服务器通过以下方式解决维护准确、版本感知的IaC组件上下文的问题:
- 为IaC组件提供持久存储和版本跟踪。
- 提供层次结构化的资源组织与基于URI的访问。
- 实现组件之间的全面关系映射。
- 管理版本特定的文档。
- 进行模式验证和时间戳元数据跟踪。
- 自动化分析关系并提供见解。
📦 安装指南
本地开发
# 安装依赖
uv sync
# 运行测试
uv run pytest
# 使用MCP Inspector进行调试
npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server
💻 使用示例
基础用法
资源管理
服务器实现了一个复杂的资源管理系统,采用层次结构化的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: 提供程序名称(必需)version: 版本号(可选,默认为最新版本)
- 返回:指定提供程序的资源模式
ansible_collection
- 目的:获取Ansible集合的信息
- 参数:
collection_name: 集合名称(必需)version: 版本号(可选,默认为最新版本)
- 返回:指定集合的资源模式
📚 详细文档
配置
环境变量
设置以下环境变量以配置服务器:
# 数据库URL,支持SQLite、MySQL、PostgreSQL等
export DATABASE_URL="sqlite:////path/to/database.db"
# 默认版本号(可选)
export DEFAULT_VERSION="1.0.0"
# 日志级别(可选:debug, info, warning, error, critical)
export LOG_LEVEL="info"
Claude Desktop开发环境
在config.json中添加以下内容,以配置MCP服务器:
"mcpServers": {
"iac-memory": {
"command": "uv",
"args": [
"--directory",
"/path/to/iac-memory-mcp-server",
"run",
"iac-memory-mcp-server"
],
"env": {
"DATABASE_URL": "sqlite:////home/user/iac.db"
}
}
}
Claude Desktop生产环境
在config.json中添加以下内容,以配置MCP服务器:
"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/user/iac.db"
}
}
}
📄 许可证
该项目采用MIT许可证,详情请参阅LICENSE文件。
⚠️ 重要提示
这是一个个人项目,用于测试AI能力,前提是使用该技术的人(我)缺乏相关专业知识。由于成本过高,不打算进一步开发或维护该项目。
微信扫一扫