mcpbeat Sign in

The JQ API MCP Server

answering

The JQ API is answering right now. Last checked 9 min ago. It exposes 5 tools.

Free hosted jq MCP server for inline JSON, public HTTPS URLs, and reusable 15-minute uploads.

Uptime history 12 hours of history
12 hours agonow
100.0%
Uptime 24h
42 of 42 checks
5
Tools
read from the server
243 ms
Response time
average over 24h
open, no key
Access
streamable-http

Nothing serious here today

Today is the operative word: we check The JQ API every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 9 min ago.

run in your terminal
claude mcp add jq-api --transport http https://thejqapi.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://thejqapi.com/mcp
~/.codex/config.toml
[mcp_servers.jq-api]
url = "https://thejqapi.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "jq-api": {
      "url": "https://thejqapi.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "jq-api": {
      "type": "http",
      "url": "https://thejqapi.com/mcp"
    }
  }
}

Available tools 5

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

upload
delete_upload
Permanently delete only the JSON upload identified by upload_id; other uploads, filters, modules, and quota records are unaffected. Use after the final process_json query or when early removal is needed. Use get_upload to inspect availability first if uncertain; do not delete while the ID is still needed. Pass the exact secret ID returned by upload_json or REST POST /uploads, not a filename or URL. Anyone holding that ID can delete the upload; a UUID quota key is not an ownership credential. Returns success:true,deleted:true even if already deleted or expired, so retries are safe. Reusing a deleted ID for processing fails. Does not consume processing quota and remains available when that quota is exhausted. Invalid ID arguments are rejected; storage failure returns success:false,error,status:503.
get_upload
Inspect one upload’s availability, expiration, and byte size without reading its contents, running jq, or extending its lifetime. Use before reusing an older upload_id or to check whether deletion or expiration has made it unavailable. To read contents, use process_json with upload_id and filter ".". To remove it, use delete_upload. Pass the exact secret upload_id returned by upload_json or REST POST /uploads. No upload listing is exposed; anyone holding an ID can inspect that one upload. Returns success, available, status (available, missing, or expired), expires_at (UTC), expires_in_seconds, and size_bytes. Missing/deleted and expired uploads return available:false and size_bytes:null as a successful status check; expiration reports zero seconds. Does not consume processing quota or change stored data. Invalid IDs are rejected; a storage failure returns success:false,error,status:503.
upload_json
Store one JSON document in private temporary storage for repeated process_json queries; this does not run a jq filter. Use when the same input will be queried more than once. For a single query, pass input or url directly to process_json instead. Provide exactly one of input or url, never both. A local file must be sent to REST POST /uploads by the client; this tool cannot read local paths. Maximum 5 MiB; URLs must be public HTTPS JSON on port 443, without credentials, private addresses, or custom headers. URL fetching is bounded to three redirects and ten seconds. Returns success:true, a secret upload_id, expires_at (UTC), and size_bytes. The ID is reusable for 15 minutes; uploads do not refresh expiration when queried. Uploads are immutable: create a new upload to change the JSON, then delete the old ID. Anyone holding the ID can inspect, query, or delete it. Use get_upload for metadata, process_json for contents or filtering, and delete_upload for early cleanup. Consumes one shared daily quota call; retrying creates another upload. No signup; a UUID bearer header selects the higher quota but does not establish ownership. Failures return success:false and error, with status 400 for invalid input/URL/JSON, 413 for oversize data, 415 for unsupported content, 502/504 for URL failures, or 503 for storage failure. Exhausted quota returns a tool error with remaining:0; inspect _meta.rateLimit for limit and reset.
process
process_json
Apply a jq filter and return JSON results; this does not create or modify uploads. Choose exactly one source: input for an available JSON value, url for a public HTTPS document, or upload_id to reuse stored JSON. For a single query, pass input or url directly; use upload_json first only when several queries should reuse one document. For example, filter .name extracts a field, keys inspects structure, and . reads the complete document, including an upload. To check upload availability or remaining quota without running jq, use get_upload or get_quota. Document limit 5 MiB; URL fetches allow three redirects and ten seconds, without caller credentials or private networks. Upload IDs expire 15 minutes after creation. Anyone holding an ID can query, inspect, or delete that upload. Runs real jq in isolated WebAssembly memory. Supply modules as options.modules filenames mapped to source on each call; they disappear afterward and need no separate management. Returns success, result, rawResult, results (every emitted jq value), stdout, jqVersion, executionTime, and optional stderr. Uses one shared daily REST/MCP quota call: 100 per IP or 1,000 per client-configured UUID bearer token, resetting at midnight UTC. jq failures return success:false and error; input failures may include status 400 (invalid), 404 (missing upload), 410 (expired), 413 (too large), 415 (unsupported data), 502/504 (URL failure/timeout), or 503 (storage unavailable). Quota exhaustion returns a tool error with remaining:0 and reset details in _meta.rateLimit.
quota
get_quota
Read the current caller’s shared daily REST/MCP quota without consuming a call or creating a usage record. Use before a batch of processing/upload calls or after quota exhaustion to learn when to retry. This does not inspect, process, upload, or delete JSON. Takes no arguments: the server uses the request IP, or the UUID bearer token configured in the MCP client Authorization header. Do not pass credentials as tool arguments. Returns success, tier (anonymous or uuid), limit, used, remaining, and reset_at (next midnight UTC). Limits are 100 calls per IP or 1,000 per UUID. Uploads and jq processing share this counter; metadata checks, deletion, and discovery are free. remaining is zero after exhaustion; used counts attempted charged calls and can exceed the limit. This is a point-in-time snapshot, not a reservation for concurrent requests. Quota UUIDs do not authenticate an account or grant upload ownership. Database failure returns a tool error with success:false,error,status:503; no JSON or caller identifier is returned.

Endpoints

URLTransportStateLatencyChecked
https://thejqapi.com/mcp streamable-http answering 576 ms 9 min ago

Alternatives to The JQ API

same job, measured the same way
Bitwarden Public API and Secrets Manager (unofficial)
by mguttmann

Unofficial MCP server for the Bitwarden Public API and Secrets Manager, self-hosted or cloud.

139 installs/wk local only
flconsole — Upwork jobs
by flconsole

Free hosted MCP server: new Upwork jobs for your agent and Telegram alerts within a minute.

answering
ouicu
by ouicu

Share a dev server or upload a built site at a public https link, and hand the link back.

56 installs/wk local only
Filetourl
by filetourl

Upload a file and get a public shareable URL via API or MCP.

7 tools answering
Mealie MCP Server
by ni-c

MCP server for Mealie, the self-hosted recipe manager and meal planner

97 installs/wk local only
930m310n
by 930m310n

MCP server for the Geomelon geographic API — stdio and remote HTTP transports

104 installs/wk local only
Geomelon MCP
by 930m310n

MCP server for the Geomelon geographic API — stdio and remote HTTP transports

local only
Pinata MCP
by mrfentmen

MCP server for Pinata IPFS: pinned files, pin JSON, unpin. Needs a free API key.

114 installs/wk local only

The JQ API — questions

Answers built from our own checks of this server.

What can The JQ API do?
It exposes 5 tools, read directly from the server on our last check. Among them: delete_upload, get_quota, get_upload, process_json, upload_json. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is The JQ API working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 42 of 42 checks got a reply (100.0%), average response time 243 ms. The bar chart above shows every period we have measured.
How do I connect The JQ API?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does The JQ API need an API key?
No. The JQ API completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 5 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is The JQ API?
It answers our handshake in 243 ms on average, which is faster than 56% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.