# IAC内存MCP服务器
## 基本信息
- Slug: `agentwong-iac-memory-mcp-server`
- Source: modelscope
- Publisher: @AgentWong/iac-memory-mcp-server
- Categories: knowledge-and-memory / cloud-platforms
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@AgentWong/iac-memory-mcp-server
## 简介
一个自定义的Memory MCP服务器，用作基础设施即代码信息的缓存，允许用户通过自定义URI方案和简单的资源处理来存储、汇总和管理笔记。
## 安装提示

```bash
resources://<platform>/<category>/<name> ``` 支持的平台： - 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_versio…
```

## MCP Server 详情

# IaC Memory MCP 服务器

一个模型上下文协议（MCP）服务器，通过为基础设施即代码（IaC）组件提供持久内存存储来增强Claude AI的能力，重点关注Terraform和Ansible资源的版本跟踪和关系映射。

> [!NOTE]  
> 这是一个个人项目，旨在确定在使用它的人（我）没有专业知识（缺乏Python知识）的情况下AI的能力。由于成本变得相当高昂，我不打算进一步开发或维护这个项目。

## 概述

IaC Memory MCP 服务器通过以下方式解决了保持IaC组件准确、版本感知上下文的挑战：

- IaC 组件的持久存储和版本跟踪
- 基于 URI 的层次化资源组织
- 组件之间的全面关系映射
- 版本特定的文档管理
- 模式验证和时间元数据跟踪
- 自动关系分析和见解

## 核心组件

### 资源管理

该服务器实现了一个具有层次化URI的高级资源管理系统：

#### 资源URI结构
```
resources://<platform>/<category>/<name>
```


支持的平台：
- 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` 文件：
```bash
DATABASE_URL=sqlite:////path/to/db.sqlite
MCP_DEBUG=1
MCP_TEST_MODE=1
```


## 与 Claude Desktop 的集成

### 开发设置
```json
"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"
      }
  }
}
```


### 生产设置
```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"
      }
  }
}
```


## 开发

### 本地开发
```bash
# Install dependencies
uv sync

# Run tests
uv run pytest

# Development server with MCP Inspector
npx @modelcontextprotocol/inspector uv run iac-memory-mcp-server
```


## 许可证

本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。

