Skip to content

Quickstart

Install Jithox in your AI client

Public MCP endpoint: https://jithox.com/api/mcp

8 tools on this address; 5 of them answer without an account or key.

This public endpoint is separate from the authenticated Jithox connection and product servers below. Client availability depends on your plan and workspace permissions.

These links open your installed client. Review the server configuration before adding it.

Claude Code

claude mcp add --transport http jithox https://jithox.com/api/mcp

Codex

codex mcp add jithox --url https://jithox.com/api/mcp

Grok Build CLI

grok mcp add --transport http jithox https://jithox.com/api/mcp

Grok Build CLI 1.0.46 (2026-10-02): doctor exit 0, healthy=true, protocol 2025-11-25, 8 tools discovered. Discovery only; no tool call or grok.com test. Setup reference — Grok Build CLI

Claude.ai / Claude Desktop
  1. Open Customize → Connectors → Add custom connector. On Team and Enterprise, an owner first adds it in Organization settings → Connectors → Add → Custom → Web.
  2. Name: Jithox. Remote MCP server URL: https://jithox.com/api/mcp.
  3. For this public setup, choose No sign-in if Authentication is shown; leave OAuth credentials and request headers empty. Click Add, then enable the connector for your conversation.

Setup reference — Claude.ai / Claude Desktop

ChatGPT developer mode
  1. On ChatGPT web, open Settings → Security and login → Developer mode and turn it on. Then go to https://chatgpt.com/plugins and select the plus button to add your MCP app (custom connector).
  2. Name: Jithox. Remote MCP server URL: https://jithox.com/api/mcp. Authentication: No Authentication.
  3. In the app details, enable only verify_iban for this demonstration. Select the app in a conversation when it fits the task; no search/fetch pair is required.
  4. The platform supports SSE and streaming HTTP, with OAuth, No Authentication or Mixed Authentication. No Authentication fits this free demonstration.
  5. ChatGPT asks for confirmation by default for write actions. It uses readOnlyHint to identify read-only tools and treats tools without that hint as writes. MCP annotations are not authorization.
  6. Expand the tool details and inspect the actual JSON input and output. A configured app is not proof that a call ran; surface errors or missing results rather than substituting model prose.

Setup reference — ChatGPT developer mode

Gemini CLI
  1. Merge this block into ~/.gemini/settings.json; keep your other server entries.
{
  "mcpServers": {
    "jithox": {
      "httpUrl": "https://jithox.com/api/mcp"
    }
  }
}

Setup reference — Gemini CLI

n8n
  1. Use the community package n8n-nodes-jithox. Follow its README for installation and credentials. This is a separate n8n integration, not an MCP install link.
n8n-nodes-jithox

Setup reference — n8n

Grok (grok.com)
  1. According to xAI documentation: grok.com/connectors → New Connector → Custom → https://jithox.com/api/mcp.
  2. On Grok Business and Enterprise, a team admin must first provision the connector. The free tools on this public endpoint need no key.
  3. Not tested on grok.com. Inspect the actual tool result; a configured connector is not proof of a successful call.

Setup reference — Grok (grok.com)

Goose
  1. Use Add to Goose above, or run goose configure → Add Extension → Remote Extension (Streamable HTTP).
  2. Name: Jithox. URL: https://jithox.com/api/mcp.
  3. Deeplink decoded on 2026-10-02; not tested in Goose. Review the configuration before adding it.

Setup reference — Goose

Skills for dozens of agents
  1. skills.sh can add task instructions to supported agents. Review the skill and choose your agent before installing.
  2. Discovery on 2026-10-02 found pay-invoices-safely. This is a skill installation, not a completed tool call or an MCP connection test.
npx skills add victor-emmanuel-c/jithox-mcp

Setup reference — Skills for dozens of agents

Client setup only. A saved configuration is not proof of a tool call. Check the actual tool output; do not substitute model prose for a missing result.

Choose your MCP client

No Jithox account or key is needed for this free, read-only verify_iban demonstration. It checks IBAN structure, not account existence or ownership. This public endpoint is separate from the authenticated Jithox connection and product servers described below.

Remote URL: https://jithox.com/api/mcp. Demonstration tool: verify_iban.

LOKAAL GETEST, NIET E2E BEWEZEN

OpenAI and Grok examples: Vendor documentation and local contract tests only. Locally tested, not proven end to end. These examples do not prove a provider journey, a tools/call, adoption or revenue. No ChatGPT/Grok listing or recommendation is promised.

The API snippets are individual MCP tool entries, not complete requests. Provider access and usage may have separate requirements and costs; no provider call is made by these examples.

Use a tool only when it fits the user request. Configuration does not force tool selection. Never substitute an invented tool answer for a missing or failed result.

OpenAI Agents API

Source: Vendor documentation — OpenAI Agents API · Checked

Add this entry to agent.tools. The nested HTTP transport connects from the OpenAI service; no session environment is required for this public server.

{
  "type": "mcp",
  "server_label": "jithox",
  "transport": {
    "type": "http",
    "server_url": "https://jithox.com/api/mcp"
  },
  "connection_origin": "service",
  "required": true,
  "allowed_tools": [
    "verify_iban"
  ]
}
  • Keep allowed_tools limited to verify_iban. This is an Agents API contract, not a Responses API tool entry.

Check the outcome: With required: true, initialization failure fails the turn. Inspect the error in agent.session.turn.failed and check the URL and connection origin; do not treat a failed turn as a tool result.

OpenAI Responses API

Source: Vendor documentation — OpenAI Responses API · Checked

Add this entry to the Responses request tools array. The server_url belongs at the top level, not inside an Agents transport object.

{
  "type": "mcp",
  "server_label": "jithox",
  "server_url": "https://jithox.com/api/mcp",
  "allowed_tools": [
    "verify_iban"
  ],
  "require_approval": "always"
}
  • The approval flow needs client code: inspect mcp_approval_request, show the proposed arguments for a decision, then send mcp_approval_response with the matching approval_request_id and approve decision in a follow-up request using previous_response_id. Do not auto-approve.
  • Provider approval is not a Jithox credential. Jithox authorization remains a separate server boundary for authenticated tools; this demonstration needs none.

Check the outcome: Inspect response output items: mcp_list_tools must include verify_iban. If a call occurs, check mcp_call.error and the actual mcp_call.output, including any tool-level failure. A list, an approval request or model prose alone is not a successful call; report missing output or errors instead of guessing.

xAI Responses API

Source: Vendor documentation — xAI Responses API · Checked

Add this entry to tools in the xAI OpenAI-compatible Responses API. The remote server can use streaming HTTP or SSE.

{
  "type": "mcp",
  "server_url": "https://jithox.com/api/mcp",
  "server_label": "jithox",
  "allowed_tools": [
    "verify_iban"
  ]
}
  • Keep the non-empty allowed_tools list: an empty allowlist enables all tools on xAI. The native xAI SDK instead calls this parameter allowed_tool_names; that name does not belong in this Responses object.
  • Do not copy OpenAI-specific approval or connector options: xAI does not support them here. No provider approval flow is promised. Server authorization and any required consent remain separate obligations.

Check the outcome: Inspect the actual Responses output for tool discovery and call results, not just model text. Check mcp_list_tools when present, and mcp_call.error and mcp_call.output for a returned call; missing output or an error is not success. No xAI response has been observed in this local contract test.

Grok CLI

Source: Vendor documentation — Grok CLI · Checked

Not executed: these are documented commands for an already available Grok CLI. Run from the intended project directory; project scope writes .grok/config.toml there, not a global user configuration.

grok mcp add --scope project --transport http jithox https://jithox.com/api/mcp
grok mcp list --json
grok mcp doctor jithox --json
  • No CLI was installed or user profile changed for this guide. For servers that need it, OAuth can require interactive browser consent; this no-auth demonstration does not need that flow.
  • Adding a server is not the API allowlist above: these commands do not restrict its tool set. Keep the demonstration to verify_iban and review available tools before use.

Check the outcome: After list and doctor, inspect the JSON for the configured URL and any configuration or connectivity errors. Successful discovery or diagnostics is not proof of a tool call.

Hermes Agent

Source: Vendor documentation — Hermes Agent · Checked

For an installed Hermes Agent with native MCP support, merge this YAML into the active Hermes profile's config.yaml under mcp_servers; keep other entries. The url selects Streamable HTTP. No Jithox account, token or headers are needed. Restart Hermes after saving.

mcp_servers:
  jithox:
    url: "https://jithox.com/api/mcp"
    tools:
      include:
        - verify_iban
      resources: false
      prompts: false
    sampling:
      enabled: false
  • Example task: Check whether Belgian IBAN BE68539007547034 is structurally valid. Use only one free check. Do not infer that the account exists or belongs to anyone; do not pay or change supplier data.
  • Internally tested on 2026-09-29 with Hermes Agent v0.21.4: Hermes natively discovered this endpoint and completed one check_payment_change tools/call with HTTP 200, a JSON-RPC result without error and Hermes is_error:false, before a safe final answer. The narrower verify_iban example above was not that exact end-to-end task. This does not prove support in every Hermes version, an external installation, adoption, provider recommendation, repeat use, payment or revenue.

Check the outcome: Inspect the actual mcp__jithox__verify_iban tool output. Discovery, a tool description or model prose alone is not a successful call. Report missing output or errors instead of guessing. A successful check concerns IBAN structure, not account existence or ownership.

From nothing to a verified tool call with a signed receipt. No card, no application, no approval — 25 free accepted calls over 14 days, once for your workspace across every product.

Free to start

You are charged per accepted call. A failure, a refusal, a rate limit or an unavailable source costs €0,00 and never consumes a free call.

One connection, four steps

You do not create a key per server. One Jithox connection reaches every live tool and the free Labs tools; the credential is shown once on your account page and travels only as a bearer header.

  1. 1Endpoint

    POST https://jithox.com/api/agent-connection/v1/mcp — Streamable HTTP, JSON answers, MCP 2025-06-18. initialize and tools/list need no credential.

  2. 2Authenticate

    Authorization: Bearer <PASTE_YOUR_JITHOX_CONNECTION> — the connection credential from /mcp/account, or a ten-minute token from https://jithox.com/api/oauth/token (client_credentials: client_id = connection id, client_secret = the credential).

  3. 3Call

    tools/call with the tool name exactly as listed and an x-jithox-idempotency-key; only an accepted answer is charged, at the price the tool's description states.

  4. 4Receipt

    _meta.receipt (the server's signed receipt) and _meta.jithoxConnection.receiptReference in every accepted answer; your account page lists them.

The shortest working configuration for your client

Official endpoint, a safe placeholder, the minimum fields — and the exact status of each snippet. CERTIFIED means a real client completed a call on production; nothing is CERTIFIED yet.

CONFIG_READYLoaded by Claude Code against a local production build on 2026-09-06 (Connected). Not yet run on production with a real credential.

Run it once in a terminal where Claude Code is installed, with the credential from your account page in place of <PASTE_YOUR_JITHOX_CONNECTION>. Claude Desktop: Settings → Connectors → Add custom connector with the endpoint and the same Authorization header.

claude mcp add --transport http jithox https://jithox.com/api/agent-connection/v1/mcp --header "Authorization: Bearer <PASTE_YOUR_JITHOX_CONNECTION>"

Claude Desktop and Claude Code speak MCP over Streamable HTTP with OAuth.

Prefer a terminal? npm install -g jithox@0.2.4 installs the Connect Kit, and jithox discover lists every tool and its price without an account or a credential. How the Connect Kit works

One safe test

First list the tools (free, no credential), then one read-only accepted call with a public company VAT number. Replace the placeholder with your own credential; never paste a credential anywhere else.

curl -sS https://jithox.com/api/agent-connection/v1/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
curl -sS https://jithox.com/api/agent-connection/v1/mcp \
  -H "Authorization: Bearer <PASTE_YOUR_JITHOX_CONNECTION>" \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -H 'x-jithox-idempotency-key: first-call-1' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"validate_vat_number","arguments":{"vatNumber":"BE0403170701"}}}'

Every refusal names its way out

A stable code, a plain explanation, the safe next step, the human page, and a machine-readable action in error.data.recovery. The same words the funnel records.

CodeJSON-RPCWhat happenedNext stepAction
parse_error-32700The body was not valid JSON.Send one JSON-RPC 2.0 object per POST. pagefix_request
invalid_request-32600The request is not a JSON-RPC 2.0 object, or it is a batch or too large.Send one object with jsonrpc, id, method and params, under 64 KB. pagefix_request
method_not_found-32601This gateway serves initialize, ping, tools/list and tools/call only.Use tools/list to see what exists, then tools/call. pagefix_request
invalid_params-32602The tool refused the arguments before running anything. Nothing was charged.Read data.issues, fix the arguments, and call again with a new idempotency key. pagefix_request
unauthorized-32001No valid Jithox connection credential was presented, or the connection is revoked or expired.Create a connection on the account page and send it as Authorization: Bearer. pagecreate_connection
not_entitled-32002The tool is not on sale right now, or the server refused the call for this workspace. Nothing was charged.Choose a live tool from tools/list, or ask the owner to check the workspace on the account page. pagechoose_another_tool
insufficient_scope-32003This connection does not carry the scope the tool needs.Ask the owner for a connection that carries it; the challenge header names the scope. pageask_owner
budget_exceeded-32004The per-call or daily budget of this connection would be exceeded. Nothing was charged.Ask the owner to raise the budget on the account page, or wait for the next UTC day. pageask_owner
rate_limited-32005Too many requests from this origin in one minute.Wait for the Retry-After window and try again. pageslow_down
replayed_request-32006This idempotency key was already used on this connection; the earlier outcome stands and nothing ran twice.Read data.earlier_outcome; to run again on purpose, use a new idempotency key. pagenew_idempotency_key
tool_not_found-32010No tool with this exact name exists on this gateway.Use the names from tools/list exactly as listed. pagechoose_another_tool
upstream_unavailable-32011The server that owns the tool did not answer. Nothing ran and nothing was charged.Try again in a moment with a new idempotency key. pageretry_later
store_unavailable-32012The connection store or the key vault is not answering, so budgets and keys cannot be checked. Nothing ran and nothing was charged.Try again shortly. pageretry_later
credential_unavailable-32013This connection holds no server key for the product yet.Open the account page: the connection can create one, or replace a key made by hand — never silently. pagecheck_connection
tool_retired-32014This tool was served here and is retired on purpose. Nothing ran and nothing was charged.Choose a tool from tools/list on this endpoint, or see the tools Jithox offers now. pagechoose_another_tool

Prefer the guided route? The Setup Doctor asks which AI you use, hands you the same snippet and checks what you pasted. The steps below are the long way: one key per server, which still works.

The long way: one key per server

1Discover what exists and what it costs — no account

Two public documents, no key and no account. The first lists every server, its endpoint and its tools and says which are publicly available; the second is the only price that counts, per product and per tool, with the free allowance and the rules for what is charged.

curl -sS https://jithox.com/api/capabilities/v1

curl -sS https://jithox.com/api/pricing/v1

If you are an agent rather than a person, the agent context names every canonical document and what each is authoritative for, and SKILL.md is the same onboarding as an instruction file you can load.

2Create an account and a key

Sign up, verify your e-mail, then create an MCP credential from your dashboard. The credential is shown once — copy it immediately. If you lose it, rotate it; you never have to pay twice and your balance is untouched by a rotation.

One key per server, created on that server’s connect page and shown once:

3Point your MCP client at the endpoint

Each product is its own MCP server with its own OAuth resource, so a token minted for one is refused by another. That is deliberate: a credential cannot spend somewhere you did not intend.

ProductMCP endpoint
Jithox E-Invoicehttps://mcp.jithox.com/mcp
EU Import Preflighthttps://import.mcp.jithox.com/mcp
EU Energy Label Preflighthttps://energy.mcp.jithox.com/mcp
EU Counterparty Sanctions Preflighthttps://sanctions.mcp.jithox.com/mcp

Authentication is OAuth 2.1 with PKCE (S256, mandatory). Your client discovers the authorization server from /.well-known/oauth-protected-resource and registers itself — you paste your access key once on the consent screen, and the client keeps a refreshing connection. Discovery below needs none of that; a paid tool call does.

4List the tools — copy, paste, run (no key needed)

Discovery is open on every server: initialize and tools/listneed no token and cost nothing. These two commands run in a bare terminal exactly as written — swap the URL for another product’s endpoint from the table above to explore it instead.

curl -sS https://mcp.jithox.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"quickstart","version":"1"}}}'

curl -sS https://mcp.jithox.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

initializereturns the server’s name and protocol version; tools/list returns the tools and their input schemas. Both answer with plain JSON — there is no session header to carry between requests.

5Make your first call — from an MCP client, or from a terminal

A tool call spends a free call or balance, so it needs your key. An MCP client exchanges it for an OAuth token on the consent screen; a terminal sends the key itself as a bearer token and needs no browser. Every client needs the same thing — the endpoint. In VS Code that is .vscode/mcp.json:

{
  "servers": {
    "jithox-einvoice": {
      "type": "http",
      "url": "https://mcp.jithox.com/mcp"
    }
  }
}

For these authenticated product endpoints, follow the client-specific OAuth instructions on the connect page rather than the public-server installation above.

A structural VAT check is the fastest way to see the whole path — decision, evidence and a signed receipt. Ask your client to run validate_vat_number on BE0403170701. From a terminal it is one JSON-RPC request carrying your key as a bearer token. In Bash or Zsh the key is read into $JITHOX_ACCESS_KEY silently, so it never lands in shell history:

# Bash/Zsh (read -rs is not POSIX sh). Paste the key when prompted; it is read silently and never lands in shell history.
read -rs JITHOX_ACCESS_KEY && export JITHOX_ACCESS_KEY

curl -sS https://mcp.jithox.com/mcp \
  -H "Authorization: Bearer $JITHOX_ACCESS_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"validate_vat_number","arguments":{"vatNumber":"BE0403170701"}}}'

# Clear the key from this shell when you are done:
unset JITHOX_ACCESS_KEY

The result carries a machine-readable decision state, the evidence behind it, and a _meta.receiptyou can verify offline against the server’s published public key. Without a key this exact call returns 401 and runs nothing; a key this server does not accept is refused as invalid_api_key. Neither is ever charged.

6Know what a call costs before you make it

Prices are server-side and per accepted call. Your client never sends an amount, and nothing a client says can change a price.

ProductPrice per accepted callTools
einvoice€0,015
eu-import-preflight€0,015
eu-energy-label-preflight€0,015
eu-sanctions-preflight€0,095

Every row here is read from the running price catalog at request time, so the products shown are exactly the ones on sale right now. If an official source is down, that product’s calls return a truthful unavailable and cost €0,00 — the price is what a call costs, not a promise the source is up this second.

7When the free calls run out

The server answers 402 payment_required with a typed payment_required object on the error: the product and tool, why (budget_exhausted or entitlement_required), the amount required in cents, your remaining free calls, and the pricing and checkout URLs to act on. chargeable is always false: it does not execute, does not charge, and does not upgrade you to anything. Add prepaid credit and repeat the same call.

  • One balance covers every product — spend it wherever you like.
  • Credit does not expire and there is no automatic top-up.
  • Tax is charged on top of credit and is never spendable.
  • A refund reverses credit; it never creates a negative balance.

8Keep the receipt, and verify it without asking us

Every accepted call answers with _meta.receipt: an Ed25519 signature over what was asked, what was answered and when. The public key is published separately from the receipt, so verifying one is a local computation — the receipt verification guide walks through it with the exact commands.

# The key that signs this server's receipts (every server publishes its own):
curl -sS https://mcp.jithox.com/receipts/public-key.pem

Your calls and every receipt they produced are also listed on your usage page.

Troubleshooting

You seeWhat it means
401No valid token. Re-run the OAuth flow; your client should do this for you.
403The token is valid but not for this resource or scope — check you are calling the product you authorized.
404 / 405Wrong URL or method. The endpoint answers POST at the paths above; a plain browser GET returning 405 is the server working, not an outage.
402 payment_requiredFree calls used up and the balance cannot cover this call. Add credit and retry the same request.
429 rate_limitedToo many calls too quickly. Honour the retry-after header; nothing was charged.
503 canary_disabledThe operator paused this server. Nothing was executed and nothing was charged.
unavailable / source_unavailableAn upstream official source did not answer. You get a truthful non-answer, never a guess, and it costs €0,00.
Credential rejected after rotationThe old credential is contained on purpose. Use the new one; your balance and free calls are unchanged.

Something not covered here? Contact — include the correlation id from the error body and we can trace the exact call.

These figures are read from the running price catalog at request time, so this page cannot promise a price the server does not charge.