The JQ API

Free hosted jq MCP server and REST API. Run real jq on inline JSON, public HTTPS URLs, or reusable 15-minute uploads. No install or signup.

Hosted MCP Server

npx add-mcp 'https://thejqapi.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

POST /process API reference

Try a jq filter.

Live playground

Choose an example, or bring your own JSON.

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 URL https://thejqapi.com/mcp

Add to Cursor Add to VS Code All AI apps

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.

POST https://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.

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.

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"}}}'