IaC Memory MCP Server について
IaC Memory MCP Serverは、TerraformやAnsibleなどのIaCコンポーネント情報を保存し、バージョン、ドキュメント、関連性を管理するためのサーバーです。永続化と関係分析に対応しますが、READMEによると個人プロジェクトとして開発・保守を終了しています。
主な機能
- 01IaCコンポーネント情報の永続化
- 02バージョンとドキュメントの管理
- 03リソース階層とエンティティ関係の整理
- 04スキーマ検証と時間メタデータの記録
- 05TerraformとAnsible情報の照会
活用シーン
- 01特定バージョンのTerraform Providerの確認
- 02Ansibleモジュールの互換性確認
- 03インフラエンティティ依存関係の分析
- 04IaCコンポーネント文書の版管理
MCP 対応
MCPサーバーとして、TerraformやAnsibleのコンポーネントを検索、管理、分析するためのリソース、プロンプト、ツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
IaC Memory MCP Server
Terraform および Ansible のリソースを対象に、バージョンの追跡と関係性のマッピングに重点を置き、Infrastructure-as-Code(IaC)コンポーネントの永続的なメモリストレージを提供して Claude AI の機能を強化する Model Context Protocol(MCP)サーバーです。
メモ
これは、利用者である私に専門知識(Python の知識)がない場合に、AI の能力がどの程度かを確かめるための個人プロジェクトでした。コストがかなり高くなってきたため、今後このプロジェクトを開発または保守する予定はありません。
概要
IaC Memory MCP Server は、次の機能を提供することで、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 コンポーネントの検出と分析に特化した 4 つのプロンプトを実装しています。
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"
}
}
}
開発
ローカル開発
# 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 ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。