Hosted jq MCP server & REST API

The best free JQ REST and MCP server in the world

Run jq filters directly on JSON from API responses, webhooks, or an AI conversation. Connect with MCP or REST. No local jq installation or server to run.

Free to use · No account required

100 calls/day anonymously. 1,000 with a UUID.

Operated by Craftsman Founder LLC, maintained by Lucas Carlson.

POST /processAPI reference

Try a jq filter.

Live playground

Choose an example, or bring your own JSON.

Edit the input and filter, then run. Ctrl / ⌘ + Enter

OutputExample preview
"Alice"
Optional UUID key 1,000 calls/day

A free key is generated for this playground. Reuse your own UUID, or clear it for 100 anonymous calls/day. How keys work

Your workflow. Your jq.

One jq engine. Two ways to connect.

Read the documentation
MCPFor AI assistants

jq for JSON in your conversation.

Pass JSON, a public HTTPS URL, or an upload ID to the process_json tool. Extract fields, filter arrays, and reshape API responses without creating files or installing a jq server.

Server URLhttps://thejqapi.com/mcp
Using Codex? Copy one command.
codex mcp add jq-api --url https://thejqapi.com/mcp
Using Claude Code? Copy one command.
claude mcp add --transport http jq-api https://thejqapi.com/mcp

Streamable HTTP. No MCP sessions. MCP setup guide

RESTFor apps & scripts

Your JSON. One HTTP request.

Send an input value and a jq filter. Get the result as JSON, ready for your app.

POSThttps://thejqapi.com/process
curl https://thejqapi.com/process \
  -H 'Content-Type: application/json' \
  -d '{"input":{"name":"Alice"},"filter":".name"}'
REST API reference

Also works with your jq actions in Zapier workflows.

Interface, limits & data handling

Know what you’re connecting.

Read the MCP manifest
Hosted, no jq installation
process_json accepts JSON, a public HTTPS URL, or an upload ID and a jq filter. get_upload inspects metadata and get_quota reports remaining calls. upload_json and delete_upload manage reusable JSON for 15 minutes. Use our hosted endpoint; no local jq executable, server package, or Docker container required.
Free, with explicit limits
100 requests/day per IP, or 1,000/day with any UUID. No signup, credit card, or OAuth required. REST and MCP share the same daily quota.
No filesystem or shell access
Processes the JSON you submit over HTTPS to Cloudflare Workers. The tool cannot read your local files, run shell commands, or access connected accounts. Public HTTPS URL input and explicit JSON uploads are supported, up to 5 MiB. Check endpoint health.
Can I buy unlimited queries and private processing?

An optional prepaid pass offers 30 days of unlimited jq queries with ultimate privacy: zero application query logs for 2 USDC. Each renewal is a separate purchase through x402; agents can pay with a supported wallet client. Document and execution limits apply. Payment availability is reported by /pricing. See the purchase flow and the privacy commitment and billing/storage disclosures.

When should I choose a hosted jq MCP server?

Choose The JQ API for JSON already in an AI conversation or HTTP workflow: API responses, webhook payloads, objects, and arrays. Send JSON values directly; no file paths or temporary files are needed. The hosted MCP endpoint uses stateless Streamable HTTP, and MCP and REST run jq compiled to WebAssembly on Cloudflare Workers.

Use jq's built-in filters, regular expressions, output formats, custom functions, and request-supplied modules. Named variables, slurp, text input, and output options work through the same tool. Modules exist only for that call; local files, shell commands, and connected accounts remain unavailable. Use a public HTTPS URL or a short-lived upload to query data without placing the whole document in the model context. jq compatibility & options · Current jq version

How is submitted data handled?

Your JSON and filter are sent over HTTPS to Cloudflare Workers for processing. The application does not persist inline or direct URL processing data, filters, or results. Explicit uploads are stored privately for 15 minutes and can be deleted early. Treat upload IDs as secrets: anyone holding an ID can query or delete its data. Submitted data and filters are kept out of application logs.

Daily quota records contain your IP address or UUID. Expired identifiers are converted to aggregate totals and removed during scheduled cleanup and before subsequent processing requests. Longer-term usage totals contain no client identifiers. Cloudflare manages its own operational logs and backups; the homepage uses Google Analytics. Read the privacy notice.

How do quotas, UUID keys, and errors work?

Quotas reset at midnight UTC. For the 1,000-call limit, generate a UUID and send Authorization: Bearer YOUR_UUID with REST or MCP requests. A UUID identifies a shared usage counter; it does not verify an account. MCP initialization and tool discovery do not consume processing quota.

Successful calls return success, result, rawResult, and executionTime. Processing errors return an error message; MCP marks these with isError: true. REST returns HTTP 429 when its daily quota is exceeded. Authentication details · Contact us about higher limits

Verify the MCP endpoint with one request

Inspect the tool schema with tools/list, then try this direct JSON request. It calls process_json without an account. Expect structuredContent.result to be "Alice" and isError to be false.

curl https://thejqapi.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"process_json","arguments":{"input":{"name":"Alice"},"filter":".name"}}}'