Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,552Letters: 14Defects: 1,323counted 1 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:12800856c694cae9ae68f5a89be18966d8054ab62e482163e9e2702fcae20cf1 | sha256sum