mcpField
J
jmespath-mcp

jmespath-mcp

本地服务
github.com/MukundaKatta开发工具020 周前更新

关于 jmespath-mcp

jmespath-mcp 是使用 JMESPath 查询 JSON 的 MCP 服务,适合需要投影、筛选和内置函数的工作流。它以纯 JavaScript 实现,无需原生二进制文件。

主要功能

  1. 01对 JSON 执行 JMESPath 表达式
  2. 02投影和筛选数组
  3. 03使用管道和内置函数
  4. 04纯 JavaScript 实现,无原生二进制

适用场景

  1. 01选择嵌套 JSON 值
  2. 02筛选并投影数组条目
  3. 03排序值或计算 JSON 属性

MCP 相关

它向 MCP 客户端提供 `json_query` 工具,可对给定 JSON 数据运行 JMESPath 表达式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mukundakatta-jmespath": {
"command": "npx",
"args": [
"-y",
"@mukundakatta/jmespath-mcp"
]
}
}
}
启动命令npx -y @mukundakatta/jmespath-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@mukundakatta/jmespath-mcp0.1.0

工具

1

收录的工具列表 · 更新于 3 周前

参数类型必填说明
dataany是要查询的 JSON。可传入 JSON 字符串或预解析的值。
expressionstring是JMESPath 表达式。示例:foo.bar | items[*].name | locations[?state=='WA'].name | length(@)。

详细介绍

@mukundakatta/jmespath-mcp

用于 JMESPath JSON 查询的 MCP 服务。提供一个工具:json_query(expression, data)。采用纯 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 引擎运行表达式并返回结果。

为什么选 JMESPath,而不是 jq?

node-jq 需要执行 postinstall 步骤来下载 jq 二进制文件,这在 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。