jmespath-mcp について
jmespath-mcpは、JMESPathでJSONを検索するMCPサーバーです。射影、フィルター、組み込み関数を使う処理に適しており、純粋なJavaScript実装のためネイティブバイナリは不要です。
主な機能
- 01JSONにJMESPath式を実行
- 02配列の射影とフィルター
- 03パイプと組み込み関数の利用
- 04純粋なJavaScript実装でネイティブバイナリ不要
活用シーン
- 01ネストしたJSON値の選択
- 02配列要素の絞り込みと射影
- 03値の並べ替えやJSONプロパティの計算
MCP 対応
MCPクライアントに`json_query`ツールを提供し、渡されたJSONデータにJMESPath式を実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| data | any | はい | クエリ対象の JSON。JSON 文字列または解析済みの値を渡します。 |
| expression | string | はい | JMESPath 式。例:foo.bar | items[*].name | locations[?state=='WA'].name | length(@)。 |
詳細
@mukundakatta/jmespath-mcp
JMESPath JSON クエリ用の MCP サーバーです。ツールは json_query(expression, data) の 1 つです。純粋な JavaScript 実装のため、jq バイナリは不要です(macOS/Linux/Windows で同じように動作します)。
これが作られた理由
LLM は浅い JSON パス(foo.bar.baz)の処理は得意ですが、次の処理では確実に間違えます。
- 配列プロジェクション(
people[*].name) - フィルター(
locations[?state == 'WA']) - パイプと組み込み関数(
length、sort_by、contains、keys) to_entries/from_entriesを使った往復変換
JMESPath は、AWS が標準化した JSON クエリ言語です。このサーバーは実際の JMESPath エンジンで式を実行し、結果を返します。
jq ではなく JMESPath を使う理由
node-jq は jq バイナリをダウンロードする postinstall 手順を必要としますが、これは Windows で確実に失敗します。JMESPath は純粋な JavaScript で、ネイティブ依存関係がありません。クエリ言語も、ほとんどの LLM のユースケース(深いパス、フィルター、プロジェクション、組み込み関数)で十分に似ています。
インストール — Claude Desktop
{
"mcpServers": {
"jmespath": { "command": "npx", "args": ["-y", "@mukundakatta/jmespath-mcp"] }
}
}
Cursor/Cline/Windsurf/Zed でも同様の形式です。
チュートリアル
言語については https://jmespath.org/tutorial.html をご覧ください。よく使われるパターンは次のとおりです。
foo.bar— ネストされたキーへのアクセスpeople[*].name— 各項目から値を抽出people[?age > \30`].name` — フィルターを適用してからプロジェクションsort_by(people, &age)[*].name— ソートしてプロジェクションkeys(@)、values(@)、length(@)— 基本的な関数
ライセンス
MIT OR Apache-2.0。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。