mcpField
I
indexsearch

indexsearch

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

indexsearch について

indexsearchは、エージェントやターミナル利用者向けのElasticsearch用コマンドラインツール兼MCPサーバーです。クラスタのHTTP APIを通じて、query DSLやES|QL検索を含む5つの操作を提供します。

主な機能

  1. 01Elasticsearchインデックスの一覧表示
  2. 02インデックスのフィールドマッピング取得
  3. 03query DSLによる検索
  4. 04ES|QLクエリの実行
  5. 05シャード配置の確認

活用シーン

  1. 01分析前に利用可能なインデックスを確認
  2. 02クエリ作成前にフィールドを確認
  3. 03query DSLまたはES|QLでデータを検索

MCP 対応

標準入出力のMCPサーバーとして、インデックス一覧、マッピング取得、query DSLまたはES|QLによる検索、シャード確認のツールを提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-indexsearch": {
"command": "npx",
"args": [
"-y",
"@reneturcios/indexsearch"
]
}
}
}
起動コマンドnpx -y @reneturcios/indexsearch

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

パッケージ
npm@reneturcios/indexsearch0.1.0
ocighcr.io/cloudcorprecords/indexsearch:0.1.0

ツール

5

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

indexsearch

indexsearch を使うと、エージェントやターミナルを使うユーザーは、Elasticsearch の5つの基本ツールを利用できます。存在するインデックスの確認、インデックスのフィールドマッピングの読み取り、Query DSL での検索、ES|QL クエリの実行、シャード配置の確認ができます。すべてクラスター独自の HTTP API を経由するため、クライアントライブラリは同梱されておらず、別のクエリ言語を覚える必要もありません。

各ツール呼び出しは、まず単純な HTTP リクエスト(メソッド、パス、JSON ボディ)にマッピングされ、そのマッピングが契約のすべてです。 GET /_cat/indices?format=json、GET /{index}/_mapping、 POST /{index}/_search、POST /_query、GET /_cat/shards。 トランスポートには差し替え可能な fetch 関数を使い、テストスイートはこれを利用します。動作の検証に稼働中のクラスターは不要で、クラスターに接続できない場合やエラーが返された場合に、結果を捏造することはありません。

インストール

npx @reneturcios/indexsearch list-indices

または、コンテナーイメージを実行します。

docker run -i ghcr.io/cloudcorprecords/indexsearch

コンテナーはデフォルトで MCP サーバーを起動します(下記参照)。CLI として使うには CLI 引数を渡し、クラスター設定は環境変数(-e ES_URL=...)として渡します。

設定

変数意味デフォルト
ES_URLクラスターのベース URLhttp://localhost:9200
INDEXSEARCH_URLES_URL が未設定の場合に使われるフォールバックのクラスターのベース URL—
ES_API_KEYAPI キー。Authorization: ApiKey <key> として送信されます未設定(認証なし)

CLI

# List indices
indexsearch list-indices

# Read one index's field mappings
indexsearch mappings products

# Search with query DSL (a bare clause, or a full {"query": ...} body)
indexsearch search products '{"match":{"name":"shoes"}}'

# Run an ES|QL query
indexsearch esql 'FROM products | SORT price DESC | LIMIT 5'

# Shard information for every index, or for one
indexsearch shards
indexsearch shards products

# Start the MCP server
indexsearch mcp

indexsearch --version

終了コード:成功時は 0、リクエストまたはクラスターのエラー時は 1(エラーには HTTP ステータスまたは接続できない URL が示されます)、使用方法のエラー時は 2 です。

インデックス名は、リクエストを行う前に検証されます。Elasticsearch のインデックス名で禁止されている文字(空白、/、*、?、"、<、>、|、,、#、:、\)を含む名前は、ローカルで拒否されます。

MCP サーバー

1つのバイナリーで、どちらの使い方にも対応します。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。

npx -y @reneturcios/indexsearch mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "indexsearch": {
      "command": "npx",
      "args": ["-y", "@reneturcios/indexsearch", "mcp"],
      "env": { "ES_URL": "http://localhost:9200" }
    }
  }
}
ツール
ツール必須任意HTTP リクエスト機能
list_indices——GET /_cat/indices?format=json利用可能なすべてのインデックスを一覧表示します
get_mappingsindex—GET /{index}/_mappingインデックスのフィールドマッピングを取得します
searchindex、query(オブジェクト)—{ "query": ... } を指定して POST /{index}/_searchQuery DSL を使って検索します
esqlquery(文字列)—{ "query": ... } を指定して POST /_queryES
get_shards—indexGET /_cat/shards[/{index}]?format=jsonすべてのインデックス、または指定したインデックスのシャード情報を取得します

応答は、クラスターが解析した JSON として返されます。JSON 以外の応答は破棄せず、raw キーの下に返されます。空の応答は空のオブジェクトとして扱われます。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network, no live cluster
npm run dev     # run the CLI from source via tsx

リクエストの構築、検証、ヘッダーとボディの組み立て、エラーの通知、設定の解決はすべて、フェイクの fetch を使ってコアを実行し、正確なパスとボディを検証するテストでカバーされています。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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