About jmespath-mcp
jmespath-mcp is an MCP server for querying JSON with JMESPath, aimed at workflows that need projections, filters, and built-in functions. Its implementation is pure JavaScript and requires no native binary.
Key features
- 01Run JMESPath expressions on JSON
- 02Project and filter arrays
- 03Use pipes and built-in functions
- 04Pure JavaScript; no native binary
Use cases
- 01Select nested JSON values
- 02Filter and project array entries
- 03Sort values or calculate JSON properties
MCP support
It exposes the `json_query` tool to MCP clients, which runs a JMESPath expression against supplied JSON data.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
1Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| data | any | Yes | JSON to query. Pass as a JSON string OR a pre-parsed value. |
| expression | string | Yes | JMESPath expression. Examples: foo.bar | items[*].name | locations[?state=='WA'].name | length(@). |
Details
From the project README@mukundakatta/jmespath-mcp
MCP server for JMESPath JSON queries. One tool: json_query(expression, data). Pure JavaScript implementation, no jq binary needed (works the same on macOS / Linux / Windows).
Why this exists
LLMs handle shallow JSON paths well (foo.bar.baz) but reliably mess up:
- Array projections (
people[*].name) - Filters (
locations[?state == 'WA']) - Pipes and built-in functions (
length,sort_by,contains,keys) - Round-trips through
to_entries/from_entries
JMESPath is the AWS-standardized query language for JSON. This server runs your expression through the real JMESPath engine and returns the result.
Why JMESPath instead of jq?
node-jq requires a postinstall step that downloads the jq binary, which fails reliably on Windows. JMESPath is pure JavaScript with no native dependencies. The query language is similar enough for most LLM use-cases (deep paths, filters, projections, built-ins).
Install — Claude Desktop
{
"mcpServers": {
"jmespath": { "command": "npx", "args": ["-y", "@mukundakatta/jmespath-mcp"] }
}
}
Same shape for Cursor / Cline / Windsurf / Zed.
Tutorial
See https://jmespath.org/tutorial.html for the language. Common patterns:
foo.bar— nested key accesspeople[*].name— pluck from each itempeople[?age > \30`].name` — filter then projectsort_by(people, &age)[*].name— sort + projectkeys(@),values(@),length(@)— basic functions
License
MIT OR Apache-2.0.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.