Quaderno MCP by usefulapi

io.usefulapi/quaderno

MCP server for Quaderno — tax-rate calculation, invoices, contacts, products, receipts & expenses.

Yes, your AI can use this right now.Answered a live MCP handshake in 172 ms with no sign-in needed and exposes 23 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://quaderno.usefulapi.io/mcp

23 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
pingread-only

Verify the API key and connection by pinging Quaderno. Returns account/authentication status. Quaderno API: GET /ping.

calculate_taxread-only

Calculate the correct tax rate/amount for a sale given the customer's location and product. This is Quaderno's flagship endpoint — it applies the right VAT / GST / US sales-tax rules per jurisdiction. READ-ONLY (no record is created). Quaderno API: GET /tax_rates/calculate. Returns { name, rate, country, region, county, city, tax_code, status (taxable|non_taxable|not_registered|reverse_charge), ta

list_invoicesread-only

List invoices, newest first, with optional filters. Quaderno API: GET /invoices. Returns invoice objects (id, number, issue_date, due_date, currency, contact, items, taxes, payments, state, total_cents, subtotal_cents), wrapped as { data, pagination } when more pages exist.

get_invoiceread-only

Fetch a single invoice by id (full object incl. items, taxes, payments, permalink, pdf). Quaderno API: GET /invoices/{id}.

list_contactsread-only

List contacts (customers/vendors), newest first. Quaderno API: GET /contacts. Returns contact objects (id, kind, first_name, last_name, contact_name, email, country, tax_id, tax_status, …), wrapped as { data, pagination } when more pages exist.

get_contactread-only

Fetch a single contact by id. Quaderno API: GET /contacts/{id}.

list_itemsread-only

List products/items in the catalog, newest first. Quaderno API: GET /items. Returns item objects (id, code, name, kind, product_type, unit_cost, tax_class, tax_type, currency, stock, …), wrapped as { data, pagination } when more pages exist.

get_itemread-only

Fetch a single product/item by id. Quaderno API: GET /items/{id}.

list_credit_notesread-only

List credit notes (refund documents), newest first. Quaderno API: GET /credit_notes. Wrapped as { data, pagination } when more pages exist.

get_credit_noteread-only

Fetch a single credit note by id. Quaderno API: GET /credit_notes/{id}.

list_receiptsread-only

List receipts, newest first. Quaderno API: GET /receipts. Wrapped as { data, pagination } when more pages exist.

get_receiptread-only

Fetch a single receipt by id. Quaderno API: GET /receipts/{id}.

list_expensesread-only

List expenses (bills you received), newest first. Quaderno API: GET /expenses. Wrapped as { data, pagination } when more pages exist.

get_expenseread-only

Fetch a single expense by id. Quaderno API: GET /expenses/{id}.

list_tax_codesread-only

List the product tax codes Quaderno supports (id, name, description) — used as the tax_code on products / tax calculations. Quaderno API: GET /tax_codes.

list_jurisdictionsread-only

List the tax jurisdictions (id, name, country, region) where the account is registered to collect tax. Quaderno API: GET /jurisdictions.

list_webhooksread-only

List the account's configured webhooks (id, url, events). Quaderno API: GET /webhooks.

quaderno_requestread-only

Power-user escape hatch: GET any Quaderno API path not wrapped by a dedicated tool. READ-ONLY — only GET is allowed. Path is taken after /api (e.g. "/tax_ids", "/evidence"). Quaderno API: GET {path}.

create_contactcan modify

MUTATES Quaderno data — create a contact (customer or vendor). Provide kind plus a name; use `fields` for any other Quaderno contact attribute (phone_1, region, postal_code, city, street_line_1/2, tax_status, language, discount, notes, processor/processor_id). Quaderno API: POST /contacts. Returns the created contact.

update_contactcan modify

MUTATES Quaderno data — update an existing contact. Only the fields you pass are changed; use `fields` for any attribute not typed here. Quaderno API: PUT /contacts/{id}. Returns the updated contact.

create_itemcan modify

MUTATES Quaderno data — create a product/item in the catalog. Provide name + unit_cost; use `fields` for any other attribute (code, description, tax_class, tax_type, currency, country, stock). Quaderno API: POST /items. Returns the created item.

create_invoicecan modify

MUTATES Quaderno data — create an invoice for a contact. Provide contact_id (or a contact via `fields`) and items; use `fields` for any other attribute (currency, issue_date, due_date, po_number, notes, tag_list, custom_metadata, payment_details). Each item = { description, quantity, unit_price, tax_1_name?, tax_1_rate?, discount_rate?, … }. Quaderno API: POST /invoices. Returns the created invoic

create_transactioncan modify

MUTATES Quaderno data — record a sale or refund transaction (Quaderno computes tax and produces the compliant document). Provide the customer, items, and payment. Use `fields` for any other attribute (date, currency, shipping_address, evidence, processor, processor_id, processor_fee_cents, exchange_rate, po_number, notes, tags, custom_metadata). Quaderno API: POST /transactions. Returns the create

Alternatives in Finance & Payments

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”