mcpField
I
IaC Memory MCP Server

IaC Memory MCP Server

ローカル
github.com/AgentWongメモリ・ナレッジ191 週間前に更新

IaC Memory MCP Server について

IaC Memory MCP Serverは、TerraformやAnsibleなどのIaCコンポーネント情報を保存し、バージョン、ドキュメント、関連性を管理するためのサーバーです。永続化と関係分析に対応しますが、READMEによると個人プロジェクトとして開発・保守を終了しています。

主な機能

  1. 01IaCコンポーネント情報の永続化
  2. 02バージョンとドキュメントの管理
  3. 03リソース階層とエンティティ関係の整理
  4. 04スキーマ検証と時間メタデータの記録
  5. 05TerraformとAnsible情報の照会

活用シーン

  1. 01特定バージョンのTerraform Providerの確認
  2. 02Ansibleモジュールの互換性確認
  3. 03インフラエンティティ依存関係の分析
  4. 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:エンティティ 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"
      }
  }
}

開発

ローカル開発
# 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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。