mcpField
O
OpenSearch MCP Server

OpenSearch MCP Server

ローカル
github.com/rithin-pullela-awsデータベース175 週間前に更新

OpenSearch MCP Server について

OpenSearch MCP Serverは、インデックス一覧、マッピングと設定の取得、クエリDSL検索、シャード情報の確認を行う4つのツールを提供する、アーカイブ済みのMCPサーバーです。stdioとSSEに対応します。

主な機能

  1. 01OpenSearchのインデックス一覧
  2. 02インデックスのマッピングと設定取得
  3. 03クエリDSLによる検索
  4. 04シャード情報の確認
  5. 05stdioとSSEのトランスポート対応

活用シーン

  1. 01OpenSearchインスタンスのインデックス一覧表示
  2. 02インデックスのマッピングと設定の確認
  3. 03クエリDSL検索の実行
  4. 04シャード情報の確認

MCP 対応

stdioまたはSSE経由で、MCPクライアントに4つのOpenSearchツールを提供します。リポジトリはアーカイブされ、プロジェクトはopensearch-mcp-server-pyに移行しました。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"opensearch-mcp-server-rithin-pullela-aws": {
"command": "uvx",
"args": [
"test-opensearch-mcp"
],
"env": {
"OPENSEARCH_URL": "<OPENSEARCH_URL>",
"OPENSEARCH_USERNAME": "<OPENSEARCH_USERNAME>",
"OPENSEARCH_PASSWORD": "<OPENSEARCH_PASSWORD>",
"AWS_REGION": "<AWS_REGION>",
"AWS_ACCESS_KEY": "<AWS_ACCESS_KEY>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
"AWS_SESSION_TOKEN": "<AWS_SESSION_TOKEN>"
}
}
}
}
起動コマンドuvx test-opensearch-mcp
設定が必要な環境変数
OPENSEARCH_URL
OPENSEARCH_USERNAME
OPENSEARCH_PASSWORDシークレット
AWS_REGION
AWS_ACCESS_KEYシークレット
AWS_SECRET_ACCESS_KEYシークレット
AWS_SESSION_TOKENシークレット

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

パッケージ
pypitest-opensearch-mcp

ツール

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

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

詳細

お知らせ:このプロジェクトは成熟段階に達し、opensearch-mcp-server-py リポジトリに移行しました。そちらでお会いしましょう!このリポジトリは現在アーカイブされています。

OpenSearch MCP Server

stdio および sse サーバー経由で 4 つのツールを公開する、OpenSearch 用の最小限の Model Context Protocol(MCP)サーバーです。

利用可能なツール

  • ListIndexTool:OpenSearch のすべてのインデックスを一覧表示します。
  • IndexMappingTool:OpenSearch のインデックスのマッピングと設定情報を取得します。
  • SearchIndexTool:OpenSearch で、クエリドメイン固有言語(DSL)で記述されたクエリを使用してインデックスを検索します。
  • GetShardsTool:OpenSearch のシャードに関する情報を取得します。

近日中にツールを追加予定です。こちらをクリック

ユーザーガイド

インストール

PyPI からインストールします:

pip install test-opensearch-mcp
設定
認証方法:
  • 基本認証
export OPENSEARCH_URL="<your_opensearch_domain_url>"
export OPENSEARCH_USERNAME="<your_opensearch_domain_username>"
export OPENSEARCH_PASSWORD="<your_opensearch_domain_password>"
  • IAM ロール認証
export OPENSEARCH_URL="<your_opensearch_domain_url>"
export AWS_REGION="<your_aws_region>"
export AWS_ACCESS_KEY="<your_aws_access_key>"
export AWS_SECRET_ACCESS_KEY="<your_aws_secret_access_key>"
export AWS_SESSION_TOKEN="<your_aws_session_token>"
サーバーの起動
# Stdio Server
python -m mcp_server_opensearch

# SSE Server
python -m mcp_server_opensearch --transport sse
Claude Desktop との連携
{
    "mcpServers": {
        "opensearch-mcp-server": {
            "command": "uvx",
            "args": [
                "test-opensearch-mcp"
            ],
            "env": {
                // Required
                "OPENSEARCH_URL": "<your_opensearch_domain_url>",

                // For Basic Authentication
                "OPENSEARCH_USERNAME": "<your_opensearch_domain_username>",
                "OPENSEARCH_PASSWORD": "<your_opensearch_domain_password>",

                // For IAM Role Authentication
                "AWS_REGION": "<your_aws_region>",
                "AWS_ACCESS_KEY": "<your_aws_access_key>",
                "AWS_SECRET_ACCESS_KEY": "<your_aws_secret_access_key>",
                "AWS_SESSION_TOKEN": "<your_aws_session_token>"
            }
        }
    }
}
  • インストール済みのパッケージを使用する(pip 経由):
{
    "mcpServers": {
        "opensearch-mcp-server": {
            "command": "python",  // Or full path to python with PyPI package installed
            "args": [
                "-m",
                "mcp_server_opensearch"
            ],
            "env": {
                // Required
                "OPENSEARCH_URL": "<your_opensearch_domain_url>",

                // For Basic Authentication
                "OPENSEARCH_USERNAME": "<your_opensearch_domain_username>",
                "OPENSEARCH_PASSWORD": "<your_opensearch_domain_password>",

                // For IAM Role Authentication
                "AWS_REGION": "<your_aws_region>",
                "AWS_ACCESS_KEY": "<your_aws_access_key>",
                "AWS_SECRET_ACCESS_KEY": "<your_aws_secret_access_key>",
                "AWS_SESSION_TOKEN": "<your_aws_session_token>"
            }
        }
    }
}
LangChain との連携

OpenSearch MCP サーバーは、SSE サーバートランスポートを使用して LangChain と簡単に連携できます。

前提条件
  1. 必要なパッケージをインストールします
pip install langchain langchain-mcp-adapters langchain-openai
  1. OpenAI API キーを設定します
export OPENAI_API_KEY="<your-openai-key>"
  1. OpenSearch MCP サーバーが SSE モードで実行されていることを確認します
python -m mcp_server_opensearch --transport sse
連携スクリプトの例
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI
from langchain.agents import AgentType, initialize_agent

# Initialize LLM (can use any LangChain-compatible LLM)
model = ChatOpenAI(model="gpt-4o")

async def main():
    # Connect to MCP server and create agent
    async with MultiServerMCPClient({
        "opensearch-mcp-server": {
            "transport": "sse",
            "url": "http://localhost:9900/sse",  # SSE server endpoint
            "headers": {
                "Authorization": "Bearer secret-token",
            }
        }
    }) as client:
        tools = client.get_tools()
        agent = initialize_agent(
            tools=tools,
            llm=model,
            agent=AgentType.OPENAI_FUNCTIONS,
            verbose=True,  # Enables detailed output of the agent's thought process
        )

        # Example query
        await agent.ainvoke({"input": "List all indices"})

if __name__ == "__main__":
    asyncio.run(main())

注意:

  • このスクリプトは、LangChain と連携し、ツール呼び出しをサポートするあらゆる LLM と互換性があります。
  • スクリプトを実行する前に、OpenSearch MCP サーバーが実行されていることを確認してください。
  • 必要に応じて、認証と環境変数を設定してください。

開発

貢献に興味がありますか?以下をご覧ください:

コメント

MCP は初めてですか?

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

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