IaC Memory MCP Server

IaC Memory MCP Server

使用持久性内存存储增强 Claude AI,用于基础设施即代码组件,支持 Terraform 和 Ansible 资源的版本跟踪和关系映射。

知识与记忆
版本控制
开发者工具
访问服务器

Tools

get_ansible_collection_info

Retrieve comprehensive information about an Ansible collection

list_provider_resources

List all resources associated with a specific Terraform provider

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_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: 实体 ID
    • include_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 文件。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
Gitingest-MCP

Gitingest-MCP

一个用于 gitingest 的 MCP 服务器。它允许像 Claude Desktop、Cursor、Cline 等 MCP 客户端快速提取关于 Github 仓库的信息,包括仓库摘要、项目目录结构、文件内容等。

精选
本地
Python
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

精选
TypeScript
MCP DuckDB Knowledge Graph Memory Server

MCP DuckDB Knowledge Graph Memory Server

一个为 Claude 设计的记忆服务器,它使用 DuckDB 存储和检索知识图谱数据,从而增强了对话的性能和查询能力,并能持久保存用户信息。

精选
TypeScript