Server definition
- Hash
- sha256:12800856c694cae9ae68f5a89be18966d8054ab62e482163e9e2702fcae20cf1
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": "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 tools on this endpoint are read-only or pure document helpers — real-world actions are not exposed over MCP and run only behind Jithox's in-product approval flow. Each tool's full description and terms: https://jithox.com/.well-known/mcp.json",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"ibanOnFile": {
"description": "The account currently on the vendor record.",
"type": "string"
},
"newIban": {
"description": "The account number in the change request, as written — spaces and dashes are fine, e.g. \"DE89 3704 0044 0532 0130 00\".",
"type": "string"
},
"supplierCountry": {
"description": "ISO 3166-1 alpha-2 country where the supplier is established, e.g. BE.",
"maxLength": 2,
"minLength": 2,
"pattern": "^[A-Za-z]{2}$",
"type": "string"
}
},
"required": [
"newIban"
],
"type": "object"
},
"name": "check_payment_change",
"outputSchema": {
"properties": {
"data": {
"type": "object"
},
"evidence": {
"description": "Signed decision evidence, present when a signing key is configured.",
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"buyerReference": {
"description": "The reference the customer asked you to put on the invoice (BT-10). Peppol requires this OR an order reference.",
"type": "string"
},
"currency": {
"description": "Three-letter currency code (BT-5), e.g. EUR.",
"maxLength": 8,
"type": "string"
},
"customer": {
"description": "The customer, the receiver.",
"properties": {
"countryCode": {
"description": "ISO 3166-1 alpha-2 country code, e.g. BE.",
"maxLength": 2,
"type": "string"
},
"endpointId": {
"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.",
"type": "string"
},
"endpointScheme": {
"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.",
"maxLength": 10,
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"documentAllowances": {
"description": "Discounts on the WHOLE invoice, not on one line (BG-20).",
"items": {
"properties": {
"amount": {
"description": "The amount, excluding VAT (BT-92 for an allowance, BT-99 for a charge).",
"type": "number"
},
"reason": {
"description": "Why, e.g. \"Discount\" or \"Freight\".",
"type": "string"
},
"vatPercent": {
"description": "The VAT rate it is taxed at, e.g. 21 (BT-96 / BT-103).",
"type": "number"
}
},
"type": "object"
},
"maxItems": 100,
"type": "array"
},
"documentCharges": {
"description": "Charges on the WHOLE invoice, e.g. freight (BG-21).",
"items": {
"properties": {
"amount": {
"description": "The amount, excluding VAT (BT-92 for an allowance, BT-99 for a charge).",
"type": "number"
},
"reason": {
"description": "Why, e.g. \"Discount\" or \"Freight\".",
"type": "string"
},
"vatPercent": {
"description": "The VAT rate it is taxed at, e.g. 21 (BT-96 / BT-103).",
"type": "number"
}
},
"type": "object"
},
"maxItems": 100,
"type": "array"
},
"invoiceNumber": {
"description": "The invoice number (BT-1).",
"type": "string"
},
"issueDate": {
"description": "The issue date (BT-2).",
"maxLength": 40,
"type": "string"
},
"lines": {
"items": {
"properties": {
"description": {
"type": "string"
},
"lineNetAmount": {
"description": "The line total excluding VAT, when you already computed it.",
"type": "number"
},
"quantity": {
"type": "number"
},
"unitPrice": {
"type": "number"
},
"vatPercent": {
"description": "The VAT rate on this line, as a percentage, e.g. 21.",
"type": "number"
}
},
"type": "object"
},
"maxItems": 1000,
"type": "array"
},
"orderReference": {
"description": "The purchase order number (BT-13).",
"type": "string"
},
"supplier": {
"description": "You, the sender.",
"properties": {
"countryCode": {
"description": "ISO 3166-1 alpha-2 country code, e.g. BE.",
"maxLength": 2,
"type": "string"
},
"endpointId": {
"description": "The party's Peppol address — the identifier the network delivers to, e.g. a Belgian enterprise number.",
"type": "string"
},
"endpointScheme": {
"description": "The four-digit EAS code the address is stated under, e.g. \"0208\" for a Belgian enterprise number.",
"maxLength": 10,
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"totalVat": {
"description": "Total VAT (BT-110).",
"type": "number"
},
"totalWithVat": {
"description": "Invoice total including VAT (BT-112).",
"type": "number"
},
"totalWithoutVat": {
"description": "Invoice total excluding VAT (BT-109).",
"type": "number"
}
},
"type": "object"
},
"name": "check_peppol_ready",
"outputSchema": {
"properties": {
"data": {
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"requesterVatId": {
"description": "Your OWN EU VAT number with country prefix (e.g. BE0403170701). Never stored.",
"maxLength": 20,
"type": "string"
},
"rows": {
"description": "The list: 1 to 20 rows per call.",
"items": {
"properties": {
"reference": {
"description": "Your own label for the row — a customer number, a name. It is echoed back, never interpreted.",
"type": "string"
},
"vatId": {
"description": "The VAT number as written, WITH its two-letter country prefix, e.g. \"BE0400378485\" or \"NL 8558.76.323.B01\".",
"type": "string"
}
},
"required": [
"vatId"
],
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"rows"
],
"type": "object"
},
"name": "check_vat_list",
"outputSchema": {
"properties": {
"billing": {
"type": "object"
},
"data": {
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data",
"billing"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"countryCode": {
"default": "BE",
"description": "ISO 3166-1 alpha-2 country code of the issuing EU member state (uppercase), e.g. BE, NL, DE, FR.",
"type": "string"
},
"vatNumber": {
"description": "EU VAT number, with or without its country prefix — e.g. \"BE0123456789\", \"NL855876323B01\", \"DE811569869\" or the bare Belgian enterprise number \"0123456789\".",
"maxLength": 40,
"type": "string"
}
},
"required": [
"vatNumber"
],
"type": "object"
},
"name": "kbo_company_search",
"outputSchema": {
"properties": {
"billing": {
"type": "object"
},
"data": {
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data",
"billing"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"identifier": {
"description": "Enterprise/VAT number (\"BE 0403.170.701\" or \"0403170701\"), <scheme>:<id>, or iso6523-actorid-upis::<scheme>:<id>.",
"type": "string"
},
"scheme": {
"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.",
"maxLength": 10,
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "lookup_peppol_participant",
"outputSchema": {
"properties": {
"data": {
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"approved": {
"additionalProperties": false,
"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.",
"properties": {
"amount": {
"pattern": "^\\d{1,18}(\\.\\d{1,18})?$",
"type": "string"
},
"amountAtomic": {
"pattern": "^\\d{1,78}$",
"type": "string"
},
"asset": {
"type": "string"
},
"currency": {
"pattern": "^[A-Za-z]{3,5}$",
"type": "string"
},
"network": {
"type": "string"
},
"payee": {
"additionalProperties": false,
"properties": {
"iban": {
"type": "string"
},
"merchant": {
"type": "string"
},
"name": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"type": "object"
},
"purpose": {
"type": "string"
}
},
"required": [
"currency",
"payee"
],
"type": "object"
},
"checks": {
"description": "Opt-in registers, run only on a connected door.",
"items": {
"enum": [
"vat_register",
"sanctions"
],
"type": "string"
},
"maxItems": 2,
"type": "array"
},
"ibanOnFile": {
"description": "The account on the vendor record.",
"type": "string"
},
"instructionSource": {
"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.",
"enum": [
"human",
"ingested_content",
"third_party"
],
"type": "string"
},
"invoice": {
"description": "The invoice as review_invoice takes it.",
"type": "object"
},
"mandate": {
"additionalProperties": false,
"properties": {
"currency": {
"pattern": "^[A-Za-z]{3,5}$",
"type": "string"
},
"maxAmount": {
"pattern": "^\\d{1,18}(\\.\\d{1,18})?$",
"type": "string"
},
"maxAmountAtomic": {
"pattern": "^\\d{1,78}$",
"type": "string"
},
"validUntil": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z|[+-]\\d{2}:\\d{2})$",
"type": "string"
}
},
"type": "object"
},
"payment": {
"additionalProperties": false,
"properties": {
"acceptIndex": {
"maximum": 63,
"minimum": 0,
"type": "integer"
},
"amount": {
"pattern": "^\\d{1,18}(\\.\\d{1,18})?$",
"type": "string"
},
"challenge": {
"type": "object"
},
"currency": {
"pattern": "^[A-Za-z]{3,5}$",
"type": "string"
},
"iban": {
"type": "string"
},
"instrument": {
"enum": [
"card",
"giftcard"
],
"type": "string"
},
"merchant": {
"type": "string"
},
"payTo": {
"type": "string"
},
"payeeName": {
"type": "string"
},
"payer": {
"type": "string"
},
"peppolId": {
"description": "e.g. 0208:0403170701",
"type": "string"
},
"provider": {
"type": "string"
},
"resourceUrl": {
"type": "string"
},
"supplierCountry": {
"description": "ISO 3166-1 alpha-2, e.g. BE.",
"type": "string"
},
"supplierVatId": {
"maxLength": 32,
"type": "string"
}
},
"type": "object"
},
"rail": {
"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.",
"enum": [
"invoice_bank",
"x402",
"card_or_giftcard",
"crypto_bridge"
],
"type": "string"
}
},
"required": [
"rail",
"payment"
],
"type": "object"
},
"name": "preflight_payment",
"outputSchema": {
"properties": {
"data": {
"type": "object"
},
"evidence": {
"description": "Signed decision evidence, present when a signing key is configured.",
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"buyerReference": {
"description": "Buyer reference (BT-10), e.g. a PO or cost-centre code.",
"type": "string"
},
"currency": {
"description": "ISO 4217 currency code (uppercase).",
"type": "string"
},
"customer": {
"description": "Buyer / accounting customer party, including an optional draft e-mail recipient.",
"properties": {
"city": {
"type": "string"
},
"countryCode": {
"description": "ISO 3166-1 alpha-2 country code (uppercase), e.g. BE.",
"type": "string"
},
"email": {
"type": "string"
},
"endpointId": {
"description": "Peppol participant endpoint identifier, e.g. a GLN.",
"type": "string"
},
"endpointScheme": {
"description": "Endpoint scheme id (EAS code), e.g. \"0208\" for a Belgian enterprise number or \"0088\" for a GLN.",
"maxLength": 10,
"type": "string"
},
"name": {
"type": "string"
},
"postalZone": {
"maxLength": 20,
"type": "string"
},
"registrationName": {
"type": "string"
},
"street": {
"type": "string"
},
"vatId": {
"description": "Legal / VAT registration id, e.g. \"BE0123456789\".",
"type": "string"
}
},
"required": [
"name",
"countryCode"
],
"type": "object"
},
"dueDate": {
"format": "date",
"type": "string"
},
"invoiceNumber": {
"description": "Human-readable invoice number, e.g. \"INV-2026-0001\".",
"type": "string"
},
"issueDate": {
"format": "date",
"type": "string"
},
"lines": {
"items": {
"properties": {
"description": {
"type": "string"
},
"lineNetAmount": {
"description": "Caller-stated line total excluding VAT (BT-131), used by the shared Peppol arithmetic rules.",
"type": "number"
},
"lineTotal": {
"description": "Caller-stated line total excluding VAT, compared with quantity × unit price by this review.",
"type": "number"
},
"quantity": {
"exclusiveMinimum": 0,
"type": "number"
},
"taxCategory": {
"description": "Override the derived UNCL5305 VAT category.",
"enum": [
"S",
"Z",
"E",
"AE",
"K",
"G",
"O",
"L",
"M"
],
"type": "string"
},
"unitCode": {
"description": "UN/ECE Rec 20 unit code, e.g. \"HUR\".",
"maxLength": 10,
"type": "string"
},
"unitPrice": {
"description": "Price per unit, excluding VAT.",
"minimum": 0,
"type": "number"
},
"vatPercent": {
"description": "VAT rate as a percentage (0–100).",
"maximum": 100,
"minimum": 0,
"type": "number"
}
},
"required": [
"description",
"quantity",
"unitPrice"
],
"type": "object"
},
"maxItems": 500,
"minItems": 1,
"type": "array"
},
"note": {
"type": "string"
},
"orderReference": {
"description": "Purchase order reference (BT-13). Peppol requires this OR a buyer reference.",
"type": "string"
},
"payment": {
"description": "Payment instruction carried by the invoice, when it names an IBAN.",
"properties": {
"iban": {
"description": "IBAN written on the invoice.",
"type": "string"
}
},
"type": "object"
},
"supplier": {
"description": "Seller / accounting supplier party, including an optional IBAN for the payment check.",
"properties": {
"city": {
"type": "string"
},
"countryCode": {
"description": "ISO 3166-1 alpha-2 country code (uppercase), e.g. BE.",
"type": "string"
},
"endpointId": {
"description": "Peppol participant endpoint identifier, e.g. a GLN.",
"type": "string"
},
"endpointScheme": {
"description": "Endpoint scheme id (EAS code), e.g. \"0208\" for a Belgian enterprise number or \"0088\" for a GLN.",
"maxLength": 10,
"type": "string"
},
"iban": {
"description": "IBAN written on the invoice.",
"type": "string"
},
"name": {
"type": "string"
},
"postalZone": {
"maxLength": 20,
"type": "string"
},
"registrationName": {
"type": "string"
},
"street": {
"type": "string"
},
"vatId": {
"description": "Legal / VAT registration id, e.g. \"BE0123456789\".",
"type": "string"
}
},
"required": [
"name",
"countryCode"
],
"type": "object"
},
"totalVat": {
"description": "Caller-stated total VAT (BT-110), used by the arithmetic rule checks.",
"type": "number"
},
"totalWithVat": {
"description": "Caller-stated invoice total including VAT (BT-112), used by the arithmetic rule checks.",
"type": "number"
},
"totalWithoutVat": {
"description": "Caller-stated invoice total excluding VAT (BT-109), used by the arithmetic rule checks.",
"type": "number"
}
},
"required": [
"invoiceNumber",
"issueDate",
"supplier",
"customer",
"lines"
],
"type": "object"
},
"name": "review_invoice",
"outputSchema": {
"properties": {
"billing": {
"type": "object"
},
"data": {
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data",
"billing"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"expectedCountry": {
"description": "Optional ISO 3166-1 alpha-2 country of the party being paid.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"iban": {
"description": "The account number to check, as written — spaces and dashes are fine, e.g. \"BE68 5390 0754 7034\".",
"type": "string"
}
},
"required": [
"iban"
],
"type": "object"
},
"name": "verify_iban",
"outputSchema": {
"properties": {
"data": {
"type": "object"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"data"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:12800856c694cae9ae68f5a89be18966d8054ab62e482163e9e2702fcae20cf1 | sha256sum