jpx
JMESPath query tool with 320+ extended functions for JSON transformation and analysis
jmespath-extensions
NOTE
This work has moved to https://github.com/joshrotenberg/jpx which includes a full JMESPath Specification
implementation with some performance improvements over the official crate, the full extensions (plus more) implemented here, a higher level "engine"
library that includes meta for both evaluation and function discovery, and the jpx CLI tool and the jpx-mcp MCP server.
No further development will be done on this repository.
Extended JMESPath with 400+ functions. Rust library and Python bindings.
Installation
Rust
[dependencies]
jmespath_extensions = "0.9"
Python
pip install jmespath-extensions
Usage
Rust
use jmespath_extensions::search;
use serde_json::json;
let data = json!({"items": [1, 2, 3, 4, 5]});
let result = search("sum(items)", &data)?;
assert_eq!(result, json!(15));
// String functions
let data = json!({"name": "alice"});
let result = search("upper(name)", &data)?;
assert_eq!(result, json!("ALICE"));
// Date functions
let result = search("format_date(now(), '%Y-%m-%d')", &json!({}))?;
// Array functions
let data = json!({"values": [1, 2, 2, 3, 3, 3]});
let result = search("unique(values)", &data)?;
assert_eq!(result, json!([1, 2, 3]));
Python
import jmespath_extensions as jmx
# Basic usage
data = {"items": [1, 2, 3, 4, 5]}
result = jmx.search("sum(items)", data)
assert result == 15
# String functions
result = jmx.search("upper(name)", {"name": "alice"})
assert result == "ALICE"
# Array functions
result = jmx.search("unique(values)", {"values": [1, 2, 2, 3]})
assert result == [1, 2, 3]
Function Categories
| Category | Examples |
|---|---|
| String | upper, lower, split, replace, camel_case, pad_left |
| Array | first, last, unique, chunk, zip, flatten, group_by |
| Math | round, sqrt, median, stddev, percentile |
| Date/Time | now, parse_date, format_date, date_add, date_diff |
| Hash | md5, sha256, hmac_sha256, crc32 |
| Encoding | base64_encode, base64_decode, hex_encode, url_encode |
| Regex | regex_match, regex_extract, regex_replace |
| Geo | haversine, geo_distance_km, geo_bearing |
| Network | cidr_contains, is_private_ip, ip_to_int |
| JSON Patch | json_patch, json_merge_patch, json_diff |
| Fuzzy | levenshtein, jaro_winkler, soundex, metaphone |
| Expression | map_expr, filter_expr, sort_by_expr, group_by_expr |
See docs.rs for the full function reference.
Related Projects
- jpx - CLI, MCP server, and query engine built on this library
- JMESPath - The query language specification
- jmespath.rs - Rust JMESPath implementation
License
MIT or Apache-2.0
Servidores relacionados
Scout Monitoring MCP
patrocinadorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
patrocinadorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Command Executor
Execute pre-approved shell commands securely on a server.
CPAN Package README MCP Server
Fetch READMEs, metadata, and search for CPAN packages.
Remote MCP Server (Authless)
A simple, auth-less MCP server on Cloudflare Workers that provides the current time in the US Eastern timezone.
Flowbite MCP
This MCP server is the official tool that allows you to work with the Flowbite UI framework and generate websites, layouts, and themes using AI
gluestack-ui MCP Server
An MCP server tailored for React Native–first development using Gluestack UI
Azure DevOps MCP
Integrates with Azure DevOps, allowing interaction with its services. Requires a Personal Access Token (PAT) for authentication.
Website Generator MCP
An example MCP server designed for deployment on Cloudflare Workers, supporting both remote and local setups.
microCMS
Manage content on the microCMS headless CMS using its content and management APIs.
shadcn/ui MCP
Provides context about shadcn/ui components, including structure, usage, and installation for React, Svelte, and Vue.
Windsor
Windsor MCP enables your LLM to query, explore, and analyze your full-stack business data integrated into Windsor.ai with zero SQL writing or custom scripting.