mcpField
J
jmespath-mcp

jmespath-mcp

Local
github.com/MukundaKattaDeveloper Tools0Updated 20w ago

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

  1. 01Run JMESPath expressions on JSON
  2. 02Project and filter arrays
  3. 03Use pipes and built-in functions
  4. 04Pure JavaScript; no native binary

Use cases

  1. 01Select nested JSON values
  2. 02Filter and project array entries
  3. 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.

mcp.json · Universal config
{
"mcpServers": {
"mukundakatta-jmespath": {
"command": "npx",
"args": [
"-y",
"@mukundakatta/jmespath-mcp"
]
}
}
}
Run commandnpx -y @mukundakatta/jmespath-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@mukundakatta/jmespath-mcp0.1.0

Tools

1

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
dataanyYesJSON to query. Pass as a JSON string OR a pre-parsed value.
expressionstringYesJMESPath 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 access
  • people[*].name — pluck from each item
  • people[?age > \30`].name` — filter then project
  • sort_by(people, &age)[*].name — sort + project
  • keys(@), values(@), length(@) — basic functions

License

MIT OR Apache-2.0.

Comments

Markdown supported

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.