mcpField
O
OpenSearch MCP <> LLM Integration Guide

OpenSearch MCP <> LLM Integration Guide

ローカル
github.com/madhankbデータベース273 週間前に更新

OpenSearch MCP <> LLM Integration Guide について

このガイドでは、MCPサーバーを介してOpenSearchをAmazon QとAnthropic Claude Desktopに接続する手順を説明します。ローカル環境の構築、クライアント設定、自然言語によるインデックスやドキュメントの操作を扱います。

主な機能

  1. 01DockerによるローカルOpenSearchの構築
  2. 02pipxを使ったMCPサーバーの導入
  3. 03Amazon QとClaude Desktopの設定
  4. 04インデックスとドキュメントの操作
  5. 05クラスターの健全性と統計情報
  6. 06汎用OpenSearch APIリクエスト

活用シーン

  1. 01ローカルOpenSearch環境の構築
  2. 02Amazon QとOpenSearchの接続
  3. 03自然言語によるインデックス管理
  4. 04Claude Desktopでの文書検索と編集

MCP 対応

Amazon QとClaude Desktop向けにOpenSearch MCPサーバーを設定する手順を示します。インデックス、ドキュメント、エイリアス、クラスター、汎用APIの操作をMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"opensearch-mcp-integration": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"compose"
]
}
}
}
起動コマンドdocker run -i --rm compose

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocicompose

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OpenSearch MCP <> LLM 統合ガイド

このガイドでは、自然言語でやり取りできるよう、MCP サーバーを使用して Amazon Q と Anthropic Claude デスクトップを OpenSearch に統合する手順を説明します。

Anthropic Claude

README の画像

Amazon Q

README の画像

前提条件

  • Docker と Docker Compose がインストールされていること
  • Python 3.x がインストールされていること
  • pipx がインストールされていること(pip install pipx)
  • Amazon Q CLI
  • Anthropic Claude Desktop

1. ローカルの OpenSearch インスタンスのセットアップ

  1. プロジェクト用の新しいディレクトリを作成します。

    mkdir opensearch-mcp && cd opensearch-mcp
    
  2. 次の内容で docker-compose.yml ファイルを作成します。

    version: '3'
    services:
      opensearch:
        image: opensearchproject/opensearch:latest
        environment:
          - discovery.type=single-node
          - bootstrap.memory_lock=true
          - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
          - "OPENSEARCH_INITIAL_ADMIN_PASSWORD=myStrongPassword123!"
          - "plugins.security.ssl.http.enabled=true"
          - "plugins.security.ssl.transport.enabled=true"
          - "plugins.security.ssl.http.pemcert_filepath=certs/node.pem"
          - "plugins.security.ssl.http.pemkey_filepath=certs/node-key.pem"
          - "plugins.security.ssl.http.pemtrustedcas_filepath=certs/root-ca.pem"
          - "plugins.security.ssl.transport.pemcert_filepath=certs/node.pem"
          - "plugins.security.ssl.transport.pemkey_filepath=certs/node-key.pem"
          - "plugins.security.ssl.transport.pemtrustedcas_filepath=certs/root-ca.pem"
        ulimits:
          memlock:
            soft: -1
            hard: -1
          nofile:
            soft: 65536
            hard: 65536
        volumes:
          - opensearch-data:/usr/share/opensearch/data
          - ./certs:/usr/share/opensearch/config/certs
        ports:
          - 9200:9200
          - 9600:9600
        networks:
          - opensearch-net
    
      opensearch-dashboards:
        image: opensearchproject/opensearch-dashboards:latest
        environment:
          - 'OPENSEARCH_HOSTS=["https://opensearch:9200"]'
          - "OPENSEARCH_SSL_VERIFICATIONMODE=none"
          - "OPENSEARCH_SECURITY_ADMIN_PASSWORD=myStrongPassword123!"
          - "SERVER_SSL_ENABLED=true"
          - "SERVER_SSL_CERTIFICATE=/usr/share/opensearch-dashboards/config/certs/node.pem"
          - "SERVER_SSL_KEY=/usr/share/opensearch-dashboards/config/certs/node-key.pem"
        ports:
          - 5601:5601
        volumes:
          - ./certs:/usr/share/opensearch-dashboards/config/certs
        depends_on:
          - opensearch
        networks:
          - opensearch-net
    
    volumes:
      opensearch-data:
    
    networks:
      opensearch-net:
    
  3. コンテナを起動します。

    docker compose up -d
    

2. OpenSearch MCP サーバーのインストール

  1. pipx を使用して OpenSearch MCP サーバーをインストールします。
    pipx install opensearch-mcp-server
    

3. MCP サーバーの設定を使用した LLM の構成

  1. Amazon Q:Amazon Q の設定ディレクトリ(~/.aws/amazonq/mcp.json)に mcp.json ファイルを作成します。

  2. Anthropic Claude:Claude Desktop の設定ディレクトリ(~/Library/Application Support/Claude/claude_desktop_config.json)に claude_desktop_config.json ファイルを作成します。

    {
      "mcpServers": {
        "opensearch-mcp-server": {
          "command": "/Users/YOUR_USERNAME/.local/bin/opensearch-mcp-server",
          "args": [],
          "env": {
            "OPENSEARCH_URL": "https://localhost:9200",
            "OPENSEARCH_SSL_VERIFY": "none",
            "OPENSEARCH_USERNAME": "admin",
            "OPENSEARCH_PASSWORD": "myStrongPassword123!"
          }
        }
      }
    }
    

    YOUR_USERNAME をシステムのユーザー名に置き換えるか、opensearch-mcp-server がインストールされている場所を指定します。

4. セットアップの確認

  1. OpenSearch が実行中であることを確認します。

    curl -XGET -u admin:myStrongPassword123! https://localhost:9200
    
  2. OpenSearch Dashboards を確認します。

  3. インデックスを確認します。

    curl -XGET -u admin:myStrongPassword123! https://localhost:9200/_cat/indices
    

5. OpenSearch で自然言語を使用する

LLM で試せるコマンドの例を以下に示します。

  1. インデックスを作成します。

    Create a new index called "books" with title and author fields
    
  2. ドキュメントを追加します。

    Add a document to the books index with title "The Great Gatsby" and author "F. Scott Fitzgerald"
    
  3. ドキュメントを検索します。

    Search for books by F. Scott Fitzgerald
    
  4. インデックス情報を取得します。

    Show me the mapping of the books index
    

トラブルシューティング

  1. MCP サーバーの初期化に失敗する場合:

    • OpenSearch が実行中か確認します(docker ps)。
    • mcp_config.json の認証情報を確認します。
    • OpenSearch のログを確認します(docker compose logs opensearch)。
  2. ツールを利用できない場合:

    • LLM を再起動します。
    • MCP サーバーのログを確認します。
    • mcp_config.json の構文を確認します。

利用可能な MCP ツール

OpenSearch MCP サーバーには、OpenSearch とやり取りするための複数のツールが用意されています。

  • list_indices:すべてのインデックスを一覧表示します。
  • get_index:1 つ以上のインデックスに関する情報(マッピング、設定、エイリアス)を返します。引数:index:インデックス名
  • create_index:新しいインデックスを作成します。引数:index:インデックス名 body:マッピングと設定を含む任意のインデックス構成
  • delete_index:インデックスを削除します。引数:index:インデックス名
  • search_documents:ドキュメントを検索します。引数:index:インデックス名 body:検索クエリ
  • index_document:インデックス内のドキュメントを作成または更新します。引数:index:インデックス名 document:ドキュメントデータ id:任意のドキュメント ID
  • get_document:ID を指定してドキュメントを取得します。引数:index:インデックス名 id:ドキュメント ID
  • delete_document:ID を指定してドキュメントを削除します。引数:index:インデックス名 id:ドキュメント ID
  • delete_by_query:指定したクエリに一致するドキュメントを削除します。引数:index:インデックス名 body:削除対象のドキュメントに一致させるクエリ
  • get_cluster_health:クラスターの健全性に関する基本情報を返します。
  • get_cluster_stats:クラスター統計の概要を返します。
  • list_aliases:すべてのエイリアスを一覧表示します。
  • get_alias:特定のインデックスのエイリアス情報を取得します。引数:index:インデックス名
  • put_alias:特定のインデックスのエイリアスを作成または更新します。引数:index:インデックス名 name:エイリアス名 body:エイリアス構成
  • delete_alias:特定のインデックスのエイリアスを削除します。引数:index:インデックス名 name:エイリアス名
  • general_api_request:一般的な HTTP API リクエストを実行します。専用のツールがない Elasticsearch/OpenSearch API には、このツールを使用してください。引数:method:HTTP メソッド(GET、POST、PUT、DELETE など) path:API エンドポイントのパス params:クエリパラメーター body:リクエスト本文

セキュリティに関する注意事項

  1. 本番環境では、必ず強力なパスワードを使用してください
  2. 本番環境では SSL を有効にしてください
  3. 認証情報は定期的にローテーションしてください

その他のリソース

コメント

MCP は初めてですか?

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

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