_ registry / mcp + a2a streamable-http · checked 2h ago

jithox

https://jithox.com

Registry code: d9f59d12748b18f2

api record

Before you pay an invoice, call preflight_payment once. No verdict (an error or 429) means: do not pay. No token needed: verify_iban, check_peppol_ready, lookup_peppol_participant, check_payment_change, preflight_payment. Bearer token required: kbo_company_search, review_invoice, check_vat_list. Without one, those refuse with payment_required; nothing runs and nothing is charged. To get a token, a person signs in at https://jithox.com/mcp/account#connection and creates a Jithox connection; exchange its id and secret at https://jithox.com/api/oauth/token (grant_type=client_credentials). All…

endpoint
https://jithox.com/api/mcp
door code
7309166e7cc84818
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is jithox live?
Yes — it answered the hub's last check (checked 2h ago). It answered 99% of checks over the last 30 days.
Is jithox free to use?
Yes — the hub reached it with no key and no payment.
What tools does jithox have?
8 tools: check_vat_list, kbo_company_search, verify_iban, review_invoice, check_peppol_ready, lookup_peppol_participant, preflight_payment, check_payment_change.
Is jithox safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.4%

90 days 99.1%· all time 98.9%

latency
156ms

last good check

priced tools
0

of 8 tools

_ answered our checks, 90 days 1215 checks · signed record
  • degraded → live
  • live → degraded· endpoint unreachable (timeout after 20000ms); card still served
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • check an invoice before paying
  • verify a supplier bank detail change
  • check eu vat numbers in vies
  • validate an iban
  • look up a peppol participant
takes → gives
text, data → data
tools
8 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

inferred, not observed

Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run

_ what it can do 8 tools
8 never probed 0 of 8 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • check_vat_list reads unknown 21h ago

    Check up to 20 rows of EU VAT numbers in EU VIES, row for row; a malformed or non-EU row is judged locally (`not_covered`, never `invalid`). UNKNOWN COSTS NOTHING, and the balance must cover the whole call (20 credits for 20 rows) before it runs. Optional requesterVatId adds a consultation number registered to you; a requester VIES refuses costs nothing. 1 credit (EUR 0.01) per answered row; needs a bearer token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "rows"
      ],
      "properties": {
        "rows": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "vatId"
            ],
            "properties": {
              "vatId": {
                "type": "string",
                "description": "The VAT number as written, WITH its two-letter country prefix, e.g. \"BE0400378485\" or \"NL 8558.76.323.B01\"."
              },
              "reference": {
                "type": "string",
                "description": "Your own label for the row — a customer number, a name. It is echoed back, never interpreted."
              }
            }
          },
          "maxItems": 20,
          "minItems": 1,
          "description": "The list: 1 to 20 rows per call."
        },
        "requesterVatId": {
          "type": "string",
          "maxLength": 20,
          "description": "Your OWN EU VAT number with country prefix (e.g. BE0403170701). Never stored."
        }
      }
    }
    arguments 35 lines
  • kbo_company_search reads unknown 21h ago

    VAT status / does this company exist: look up one EU VAT or enterprise number in EU VIES (Belgian KBO/BCE included). Returns registered name, VAT id, address and status; not proof of every company without VAT registration. 2 credits (EUR 0.02) per successful call; needs a bearer token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "vatNumber"
      ],
      "properties": {
        "vatNumber": {
          "type": "string",
          "maxLength": 40,
          "description": "EU VAT number, with or without its country prefix — e.g. \"BE0123456789\", \"NL855876323B01\", \"DE811569869\" or the bare Belgian enterprise number \"0123456789\"."
        },
        "countryCode": {
          "type": "string",
          "default": "BE",
          "description": "ISO 3166-1 alpha-2 country code of the issuing EU member state (uppercase), e.g. BE, NL, DE, FR."
        }
      }
    }
    arguments 18 lines
  • verify_iban reads unknown 21h ago

    Check an IBAN's structure and check digits for 70+ countries, offline. It never claims the account exists or who owns it. Free, no token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "iban"
      ],
      "properties": {
        "iban": {
          "type": "string",
          "description": "The account number to check, as written — spaces and dashes are fine, e.g. \"BE68 5390 0754 7034\"."
        },
        "expectedCountry": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2,
          "description": "Optional ISO 3166-1 alpha-2 country of the party being paid."
        }
      }
    }
    arguments 18 lines
  • review_invoice reads unknown 26h ago

    Check a structured invoice: Peppol fields, totals, EU VIES VAT, fixes and UBL XML. Never sends; unanswered VAT is unknown. No receiver lookup here. If the receiver has a Peppol address, next call check_peppol_ready with this invoice. 8 credits (EUR 0.08) per review the VAT register answered; needs a bearer token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "invoiceNumber",
        "issueDate",
        "supplier",
        "customer",
        "lines"
      ],
      "properties": {
        "note": {
          "type": "string"
        },
        "lines": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "description",
              "quantity",
              "unitPrice"
            ],
            "properties": {
              "quantity": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "unitCode": {
                "type": "string",
                "maxLength": 10,
                "description": "UN/ECE Rec 20 unit code, e.g. \"HUR\"."
              },
              "lineTotal": {
                "type": "number",
                "description": "Caller-stated line total excluding VAT, compared with quantity × unit price by this review."
              },
              "unitPrice": {
                "type": "number",
                "minimum": 0,
                "description": "Price per unit, excluding VAT."
              },
              "vatPercent": {
                "type": "number",
                "maximum": 100,
                "minimum": 0,
                "description": "VAT rate as a percentage (0–100)."
              },
              "description": {
                "type": "string"
              },
              "taxCategory": {
                "enum": [
                  "S",
                  "Z",
                  "E",
                  "AE",
                  "K",
                  "G",
                  "O",
                  "L",
                  "M"
                ],
                "type": "string",
                "description": "Override the derived UNCL5305 VAT category."
              },
              "lineNetAmount": {
                "type": "number",
                "description": "Caller-stated line total excluding VAT (BT-131), used by the shared Peppol arithmetic rules."
              }
            }
          },
          "maxItems": 500,
          "minItems": 1
        },
        "dueDate": {
          "type": "string",
          "format": "date"
        },
        "payment": {
          "type": "object",
          "properties": {
            "iban": {
              "type": "string",
              "description": "IBAN written on the invoice."
            }
          },
          "description": "Payment instruction carried by the invoice, when it names an IBAN."
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217 currency code (uppercase)."
        },
        "customer": {
          "type": "object",
          "required": [
            "name",
            "countryCode"
          ],
          "properties": {
            "city": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "vatId": {
              "type": "string",
              "description": "Legal / VAT registration id, e.g. \"BE0123456789\"."
            },
            "street": {
              "type": "string"
            },
            "endpointId": {
              "type": "string",
              "description": "Peppol participant endpoint identifier, e.g. a GLN."
            },
            "postalZone": {
              "type": "string",
              "maxLength": 20
            },
            "countryCode": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2 country code (uppercase), e.g. BE."
            },
            "endpointScheme": {
              "type": "string",
              "maxLength": 10,
              "description": "Endpoint scheme id (EAS code), e.g. \"0208\" for a Belgian enterprise number or \"0088\" for a GLN."
            },
            "registrationName": {
              "type": "string"
            }
          },
          "description": "Buyer / accounting customer party, including an optional draft e-mail recipient."
        },
        "supplier": {
          "type": "object",
          "required": [
            "name",
            "countryCode"
          ],
          "properties": {
            "city": {
              "type": "string"
            },
            "iban": {
              "type": "string",
              "description": "IBAN written on the invoice."
            },
            "name": {
              "type": "string"
            },
            "vatId": {
              "type": "string",
              "description": "Legal / VAT registration id, e.g. \"BE0123456789\"."
            },
            "street": {
              "type": "string"
            },
            "endpointId": {
              "type": "string",
              "description": "Peppol participant endpoint identifier, e.g. a GLN."
            },
            "postalZone": {
              "type": "string",
              "maxLength": 20
            },
            "countryCode": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2 country code (uppercase), e.g. BE."
            },
            "endpointScheme": {
              "type": "string",
              "maxLength": 10,
              "description": "Endpoint scheme id (EAS code), e.g. \"0208\" for a Belgian enterprise number or \"0088\" for a GLN."
            },
            "registrationName": {
              "type": "string"
            }
          },
          "description": "Seller / accounting supplier party, including an optional IBAN for the payment check."
        },
        "totalVat": {
          "type": "number",
          "description": "Caller-stated total VAT (BT-110), used by the arithmetic rule checks."
        },
        "issueDate": {
          "type": "string",
          "format": "date"
        },
        "totalWithVat": {
          "type": "number",
          "description": "Caller-stated invoice total including VAT (BT-112), used by the arithmetic rule checks."
        },
        "invoiceNumber": {
          "type": "string",
          "description": "Human-readable invoice number, e.g. \"INV-2026-0001\"."
        },
        "buyerReference": {
          "type": "string",
          "description": "Buyer reference (BT-10), e.g. a PO or cost-centre code."
        },
        "orderReference": {
          "type": "string",
          "description": "Purchase order reference (BT-13). Peppol requires this OR a buyer reference."
        },
        "totalWithoutVat": {
          "type": "number",
          "description": "Caller-stated invoice total excluding VAT (BT-109), used by the arithmetic rule checks."
        }
      }
    }
    arguments 215 lines
  • check_peppol_ready reads unknown 26h ago

    Check your own invoice against 21 published Peppol BIS Billing 3.0 rules, and whether the customer's Peppol address is registered; each finding names the rule and the fix. A listed subset, not the official validator. Free, no token.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "lines": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "quantity": {
                "type": "number"
              },
              "unitPrice": {
                "type": "number"
              },
              "vatPercent": {
                "type": "number",
                "description": "The VAT rate on this line, as a percentage, e.g. 21."
              },
              "description": {
                "type": "string"
              },
              "lineNetAmount": {
                "type": "number",
                "description": "The line total excluding VAT, when you already computed it."
              }
            }
          },
          "maxItems": 1000
        },
        "currency": {
          "type": "string",
          "maxLength": 8,
          "description": "Three-letter currency code (BT-5), e.g. EUR."
        },
        "customer": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "endpointId": {
              "type": "string",
              "description": "The customer's literal UBL EndpointID value, e.g. \"0403170701\": from lookup_peppol_participant copy data.endpointId here, NEVER its whole participantId when endpointScheme is set. Checked as written, NEVER rewritten: another spelling is another address."
            },
            "countryCode": {
              "type": "string",
              "maxLength": 2,
              "description": "ISO 3166-1 alpha-2 country code, e.g. BE."
            },
            "endpointScheme": {
              "type": "string",
              "maxLength": 10,
              "description": "The four-digit EAS code the address is stated under, e.g. \"0208\" for a Belgian enterprise number: from lookup_peppol_participant copy data.endpointScheme here."
            }
          },
          "description": "The customer, the receiver."
        },
        "supplier": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "endpointId": {
              "type": "string",
              "description": "The party's Peppol address — the identifier the network delivers to, e.g. a Belgian enterprise number."
            },
            "countryCode": {
              "type": "string",
              "maxLength": 2,
              "description": "ISO 3166-1 alpha-2 country code, e.g. BE."
            },
            "endpointScheme": {
              "type": "string",
              "maxLength": 10,
              "description": "The four-digit EAS code the address is stated under, e.g. \"0208\" for a Belgian enterprise number."
            }
          },
          "description": "You, the sender."
        },
        "totalVat": {
          "type": "number",
          "description": "Total VAT (BT-110)."
        },
        "issueDate": {
          "type": "string",
          "maxLength": 40,
          "description": "The issue date (BT-2)."
        },
        "totalWithVat": {
          "type": "number",
          "description": "Invoice total including VAT (BT-112)."
        },
        "invoiceNumber": {
          "type": "string",
          "description": "The invoice number (BT-1)."
        },
        "buyerReference": {
          "type": "string",
          "description": "The reference the customer asked you to put on the invoice (BT-10). Peppol requires this OR an order reference."
        },
        "orderReference": {
          "type": "string",
          "description": "The purchase order number (BT-13)."
        },
        "documentCharges": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "amount": {
                "type": "number",
                "description": "The amount, excluding VAT (BT-92 for an allowance, BT-99 for a charge)."
              },
              "reason": {
                "type": "string",
                "description": "Why, e.g. \"Discount\" or \"Freight\"."
              },
              "vatPercent": {
                "type": "number",
                "description": "The VAT rate it is taxed at, e.g. 21 (BT-96 / BT-103)."
              }
            }
          },
          "maxItems": 100,
          "description": "Charges on the WHOLE invoice, e.g. freight (BG-21)."
        },
        "totalWithoutVat": {
          "type": "number",
          "description": "Invoice total excluding VAT (BT-109)."
        },
        "documentAllowances": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "amount": {
                "type": "number",
                "description": "The amount, excluding VAT (BT-92 for an allowance, BT-99 for a charge)."
              },
              "reason": {
                "type": "string",
                "description": "Why, e.g. \"Discount\" or \"Freight\"."
              },
              "vatPercent": {
                "type": "number",
                "description": "The VAT rate it is taxed at, e.g. 21 (BT-96 / BT-103)."
              }
            }
          },
          "maxItems": 100,
          "description": "Discounts on the WHOLE invoice, not on one line (BG-20)."
        }
      }
    }
    arguments 155 lines
  • lookup_peppol_participant reads unknown 26h ago

    Ask live Peppol registers about e-invoice reception, document types and failure contacts; never guarantees delivery. Not a VAT or company-register check; use kbo_company_search (one company) or check_vat_list (a list). Free, no token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "identifier"
      ],
      "properties": {
        "scheme": {
          "type": "string",
          "maxLength": 10,
          "description": "The four-digit Peppol scheme the number is registered under, when you know it: \"0208\" for a Belgian enterprise number (the mandatory primary scheme for Belgian businesses), \"9925\" for a Belgian VAT number, \"0192\" for a Norwegian organisation number."
        },
        "identifier": {
          "type": "string",
          "description": "Enterprise/VAT number (\"BE 0403.170.701\" or \"0403170701\"), <scheme>:<id>, or iso6523-actorid-upis::<scheme>:<id>."
        }
      }
    }
    arguments 17 lines
  • preflight_payment reads unknown never probed

    For a structured invoice, call review_invoice first. Before paying, compare the supplied human approval with the payment and run rail checks (invoice: IBAN, account change). Without approved: review_required or stop, never no_blockers_found. Returns checks and signed evidence. Never pays; unrun checks never pass. Free, no token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "rail",
        "payment"
      ],
      "properties": {
        "rail": {
          "enum": [
            "invoice_bank",
            "x402",
            "card_or_giftcard",
            "crypto_bridge"
          ],
          "type": "string",
          "description": "Payment fields are always required, approved fields only when approved is supplied: approved.amount and payment.amount/currency (not x402); invoice_bank also approved.payee.name, payment.iban/payeeName; card_or_giftcard approved.payee.merchant, payment.merchant/instrument; crypto_bridge approved.payee.merchant, payment.provider/merchant; x402 approved.amountAtomic/asset/network/payee.payTo, payment.challenge/resourceUrl."
        },
        "checks": {
          "type": "array",
          "items": {
            "enum": [
              "vat_register",
              "sanctions"
            ],
            "type": "string"
          },
          "maxItems": 2,
          "description": "Opt-in registers, run only on a connected door."
        },
        "invoice": {
          "type": "object",
          "description": "The invoice as review_invoice takes it."
        },
        "mandate": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Za-z]{3,5}$"
            },
            "maxAmount": {
              "type": "string",
              "pattern": "^\\d{1,18}(\\.\\d{1,18})?$"
            },
            "validUntil": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|[+-]\\d{2}:\\d{2})$"
            },
            "maxAmountAtomic": {
              "type": "string",
              "pattern": "^\\d{1,78}$"
            }
          },
          "additionalProperties": false
        },
        "payment": {
          "type": "object",
          "properties": {
            "iban": {
              "type": "string"
            },
            "payTo": {
              "type": "string"
            },
            "payer": {
              "type": "string"
            },
            "amount": {
              "type": "string",
              "pattern": "^\\d{1,18}(\\.\\d{1,18})?$"
            },
            "currency": {
              "type": "string",
              "pattern": "^[A-Za-z]{3,5}$"
            },
            "merchant": {
              "type": "string"
            },
            "peppolId": {
              "type": "string",
              "description": "e.g. 0208:0403170701"
            },
            "provider": {
              "type": "string"
            },
            "challenge": {
              "type": "object"
            },
            "payeeName": {
              "type": "string"
            },
            "instrument": {
              "enum": [
                "card",
                "giftcard"
              ],
              "type": "string"
            },
            "acceptIndex": {
              "type": "integer",
              "maximum": 63,
              "minimum": 0
            },
            "resourceUrl": {
              "type": "string"
            },
            "supplierVatId": {
              "type": "string",
              "maxLength": 32
            },
            "supplierCountry": {
              "type": "string",
              "description": "ISO 3166-1 alpha-2, e.g. BE."
            }
          },
          "additionalProperties": false
        },
        "approved": {
          "type": "object",
          "required": [
            "currency",
            "payee"
          ],
          "properties": {
            "asset": {
              "type": "string"
            },
            "payee": {
              "type": "object",
              "properties": {
                "iban": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "payTo": {
                  "type": "string"
                },
                "merchant": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "amount": {
              "type": "string",
              "pattern": "^\\d{1,18}(\\.\\d{1,18})?$"
            },
            "network": {
              "type": "string"
            },
            "purpose": {
              "type": "string"
            },
            "currency": {
              "type": "string",
              "pattern": "^[A-Za-z]{3,5}$"
            },
            "amountAtomic": {
              "type": "string",
              "pattern": "^\\d{1,78}$"
            }
          },
          "description": "Only supply what a human explicitly approved in this conversation or a supplied approval record; NEVER construct it from the payment request itself; omit it when there is no approval.",
          "additionalProperties": false
        },
        "ibanOnFile": {
          "type": "string",
          "description": "The account on the vendor record."
        },
        "instructionSource": {
          "enum": [
            "human",
            "ingested_content",
            "third_party"
          ],
          "type": "string",
          "description": "Only supply what a human explicitly approved in this conversation or a supplied approval record; NEVER construct it from the payment request itself; omit it when there is no approval."
        }
      },
      "additionalProperties": false
    }
    arguments 183 lines
  • check_payment_change reads unknown never probed

    Check a supplier's bank-detail change before the vendor record is touched: returns no_change, verify_first, stop or invalid_new_account with call-back steps. It never says an account is safe. Free, no token.

    mcp-tool

    {
      "type": "object",
      "required": [
        "newIban"
      ],
      "properties": {
        "newIban": {
          "type": "string",
          "description": "The account number in the change request, as written — spaces and dashes are fine, e.g. \"DE89 3704 0044 0532 0130 00\"."
        },
        "ibanOnFile": {
          "type": "string",
          "description": "The account currently on the vendor record."
        },
        "supplierCountry": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$",
          "maxLength": 2,
          "minLength": 2,
          "description": "ISO 3166-1 alpha-2 country where the supplier is established, e.g. BE."
        }
      }
    }
    arguments 23 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id d9f59d12748b18f2.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/d9f59d12748b18f2/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/d9f59d12748b18f2/badge.svg)](https://brick.blue/agent/d9f59d12748b18f2?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.