Elasticsearch 7.x MCP Server について
Elasticsearch 7.x MCP Serverは、MCPクライアント経由でクラスターにアクセスするためのElasticsearch 7.x向けインターフェースです。接続確認やクラスター情報の取得に加え、集計などを含む検索に対応します。
主な機能
- 01Elasticsearchの接続確認
- 02クラスター情報の取得
- 03インデックス文書の検索
- 04集計、ハイライト、ソートに対応
活用シーン
- 01Elasticsearchクラスターの接続確認
- 02MCP経由でインデックス文書を検索
- 03集計やハイライト付き検索の実行
MCP 対応
MCP サーバーとして、ping、クラスター情報、検索の各メソッドをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Elasticsearch 7.x MCP サーバー
Elasticsearch 7.x 向けの MCP サーバーです。Elasticsearch 7.x のバージョンとの互換性を提供します。
機能
- Elasticsearch 7.x と連携するための MCP プロトコルインターフェースを提供します
- 基本的な Elasticsearch 操作(ping、info など)をサポートします
- 集計クエリ、ハイライト表示、ソートなどの高度な機能を含む、完全な検索機能をサポートします
- 任意の MCP クライアントから Elasticsearch の機能に簡単にアクセスできます
必要条件
- Python 3.10+
- Elasticsearch 7.x(7.17.x を推奨)
インストール
Smithery 経由でのインストール
Smithery 経由で Claude Desktop 用の Elasticsearch 7.x MCP Server を自動的にインストールするには:
npx -y @smithery/cli install @imlewc/elasticsearch7-mcp-server --client claude
手動インストール
pip install -e .
環境変数
サーバーには次の環境変数が必要です。
ELASTIC_HOST:Elasticsearch ホストアドレス(例:http://localhost:9200)ELASTIC_USERNAME:Elasticsearch ユーザー名ELASTIC_PASSWORD:Elasticsearch パスワードMCP_PORT:(任意)MCP サーバーのリスニングポート。デフォルトは 9999 です
Docker Compose の使用
.envファイルを作成し、ELASTIC_PASSWORDを設定します。
ELASTIC_PASSWORD=your_secure_password
- サービスを起動します。
docker-compose up -d
これにより、Elasticsearch 7.17.10 の 3 ノードクラスター、Kibana、および MCP サーバーが起動します。
MCP クライアントの使用
任意の MCP クライアントを使用して MCP サーバーに接続できます。
from mcp import MCPClient
client = MCPClient("localhost:9999")
response = client.call("es-ping")
print(response) # {"success": true}
API ドキュメント
現在サポートされている MCP メソッド:
es-ping:Elasticsearch への接続を確認しますes-info:Elasticsearch クラスター情報を取得しますes-search:Elasticsearch インデックス内のドキュメントを検索します
検索 API の例
基本検索
# Basic search
search_response = client.call("es-search", {
"index": "my_index",
"query": {
"match": {
"title": "search keywords"
}
},
"size": 10,
"from": 0
})
集計クエリ
# Aggregation query
agg_response = client.call("es-search", {
"index": "my_index",
"size": 0, # Only need aggregation results, no documents
"aggs": {
"categories": {
"terms": {
"field": "category.keyword",
"size": 10
}
},
"avg_price": {
"avg": {
"field": "price"
}
}
}
})
高度な検索
# Advanced search with highlighting, sorting, and filtering
advanced_response = client.call("es-search", {
"index": "my_index",
"query": {
"bool": {
"must": [
{"match": {"content": "search term"}}
],
"filter": [
{"range": {"price": {"gte": 100, "lte": 200}}}
]
}
},
"sort": [
{"date": {"order": "desc"}},
"_score"
],
"highlight": {
"fields": {
"content": {}
}
},
"_source": ["title", "date", "price"]
})
開発
- リポジトリをクローンします
- 開発用の依存関係をインストールします
- サーバーを実行します:
elasticsearch7-mcp-server
ライセンス
[LICENSE ファイル内のライセンス]
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
