MCP Examples¶
This page demonstrates common workflows using the jpx MCP server with Claude or other AI assistants.
Data Exploration¶
Understanding Unknown JSON¶
When you receive unfamiliar JSON data, start by exploring its structure:
User: I have this API response, can you help me understand it?
Claude: Let me analyze the structure first.
[Uses stats tool]
{
"input": "{\"users\": [{\"id\": 1, \"profile\": {\"name\": \"Alice\", \"settings\": {\"theme\": \"dark\"}}}]}"
}
Result: Object with 1 key, depth 4, contains array of 1 object
[Uses paths tool]
{
"input": "{\"users\": [{\"id\": 1, \"profile\": {\"name\": \"Alice\"}}]}",
"include_types": true
}
Result:
users: array
users.0: object
users.0.id: number
users.0.profile: object
users.0.profile.name: string
Finding the Right Function¶
When you need to transform data but aren't sure which function to use:
User: I need to remove duplicate entries from an array
Claude: Let me search for relevant functions.
[Uses search tool]
{
"query": "remove duplicates array unique"
}
Result: Found unique(), distinct(), dedupe() - all do similar things.
[Uses describe tool]
{
"name": "unique"
}
Result: unique(array) - Returns array with duplicate elements removed, preserving order.
Query Building¶
Iterative Query Development¶
Build complex queries step by step:
User: Help me extract active premium users with their subscription dates
Claude: Let me build this query incrementally.
[Uses evaluate tool - Step 1: Filter active users]
{
"expression": "users[?status == `active`]",
"input": "{\"users\": [{\"name\": \"Alice\", \"status\": \"active\", \"plan\": \"premium\", \"since\": \"2024-01-15\"}, {\"name\": \"Bob\", \"status\": \"inactive\", \"plan\": \"free\", \"since\": \"2023-06-01\"}]}"
}
[Uses evaluate tool - Step 2: Add premium filter]
{
"expression": "users[?status == `active` && plan == `premium`]",
"input": "..."
}
[Uses evaluate tool - Step 3: Project fields]
{
"expression": "users[?status == `active` && plan == `premium`].{name: name, member_since: since}",
"input": "..."
}
Final query: users[?status == `active` && plan == `premium`].{name: name, member_since: since}
Validating Expressions¶
Check syntax before running on large datasets:
[Uses validate tool]
{
"expression": "users[?active].name | sort(@"
}
Result: Invalid - unclosed parenthesis at position 27
[Uses validate tool]
{
"expression": "users[?active].name | sort(@)"
}
Result: Valid expression
Batch Operations¶
Multiple Extractions¶
Extract several pieces of information at once:
[Uses batch_evaluate tool]
{
"input": "{\"items\": [1, 2, 3, 4, 5], \"metadata\": {\"count\": 5, \"type\": \"numbers\"}}",
"expressions": [
"length(items)",
"sum(items)",
"avg(items)",
"metadata.type"
]
}
Result:
length(items): 5
sum(items): 15
avg(items): 3
metadata.type: "numbers"
File Operations¶
Working with Large Files¶
Query files directly without loading into memory:
[Uses evaluate_file tool]
{
"file_path": "/path/to/large-dataset.json",
"expression": "records[?timestamp > `2024-01-01`] | length(@)"
}
Result: 15234 records match the filter
JSON Transformations¶
Generating Patches¶
Track changes between document versions:
[Uses diff tool]
{
"source": "{\"version\": 1, \"config\": {\"debug\": true, \"timeout\": 30}}",
"target": "{\"version\": 2, \"config\": {\"debug\": false, \"timeout\": 60, \"retries\": 3}}"
}
Result:
[
{"op": "replace", "path": "/version", "value": 2},
{"op": "replace", "path": "/config/debug", "value": false},
{"op": "replace", "path": "/config/timeout", "value": 60},
{"op": "add", "path": "/config/retries", "value": 3}
]
Applying Updates¶
Merge configuration updates:
[Uses merge tool]
{
"input": "{\"database\": {\"host\": \"localhost\", \"port\": 5432}, \"cache\": {\"enabled\": true}}",
"patch": "{\"database\": {\"host\": \"db.example.com\"}, \"cache\": null}"
}
Result:
{
"database": {"host": "db.example.com", "port": 5432}
}
Note: Setting a key to null in merge patch removes it.
Function Discovery Workflows¶
Learning New Functions¶
Explore related functionality:
[Uses similar tool]
{
"function": "snake_case"
}
Result:
Same category: camel_case, kebab_case, pascal_case, title_case
Similar signature: upper, lower, capitalize
Related concepts: snake_keys, camel_keys (for object keys)
Category Exploration¶
See all functions in a category:
[Uses functions tool]
{
"category": "datetime"
}
Result:
now() - Current timestamp
format_date(date, format) - Format date string
parse_date(string, format) - Parse date from string
date_add(date, amount, unit) - Add time to date
date_diff(date1, date2, unit) - Difference between dates
...
Multi-Server Discovery¶
When working with multiple MCP servers, use discovery tools to find the right tool across all servers:
[Uses query_tools tool]
{
"query": "send email notification",
"top_k": 5
}
Result:
1. notifications:send_email (score: 12.4)
2. mailer:compose_message (score: 8.2)
3. alerts:notify_user (score: 6.1)
See Multi-Server Discovery for more details on setting up cross-server tool search.