Papierkram MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.17.4Updated Nov 7, 2026

Read Papierkram invoices, vouchers, contacts, projects, time; create contacts, time, draft invoices.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinanceBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for Papierkram accounting: read invoices, vouchers, contacts, projects and time, and create contacts, time entries and draft invoices.

What you can do
  • Read invoices, estimates, expense vouchers and their PDFs or uploaded receipts, with filters by company, project and date range
  • Read contacts (companies and persons), products and services, payment terms, projects, tasks, time entries, users and bank connections or transactions
  • Create and update contacts, persons, projects, tasks, time entries and products
  • Create draft invoices and estimates, and book, pay or update expense vouchers, with a confirm step for the riskier writes
  • Upload receipt files to vouchers and check usage or manage the subscription
When to use it
Useful when you keep books in Papierkram and want an assistant to answer questions about unpaid invoices, supplier vouchers or tracked hours, or to prepare draft invoices and record time and expenses without switching apps.
Requirements
Remote endpoint reached over streamable HTTP; no local install. Sign-in uses OAuth, and the login page asks for the Papierkram account name and an API token created under Einstellungen > API (API is a beta feature of the M and L plans). No API key goes in the client config. A paid plan is needed beyond 50 tool calls per month.
Before you install
Write tools change accounting data: vouchers are booked immediately as unpaid, and voucher updates replace all line items. Papierkram API credits are consumed per create, invoice or estimate, and the monthly quota is limited. The service itself meters tool calls (free tier 50 per month) and offers paid plans with Stripe checkout links. Your Papierkram credentials and API token are stored per user by the third-party host.

Installation

In SourceWeft

  1. Open Papierkram MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fpapierkram/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "papierkram-by-usefulapi": {
      "type": "http",
      "url": "https://papierkram.usefulapi.io/mcp"
    }
  }
}

README

Papierkram MCP by usefulapi

Use Papierkram from Claude, Cursor, or any MCP client — work with your invoices, expense vouchers, contacts, projects, tracked time and bank transactions. Hosted, no local install: connect with your own Papierkram account and API token.

Live endpoint: https://papierkram.usefulapi.io/mcp · Homepage: https://usefulapi.io/papierkram

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://papierkram.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http papierkram https://papierkram.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "papierkram": {      "url": "https://papierkram.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Papierkram credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/papierkram/

On first connect you'll enter your Papierkram account (the first part of https://<account>.papierkram.de) and an API token (create it under Einstellungen > API; the API is a beta feature of the plans M and L). They are validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
papierkram_get_inforeadGet account info
papierkram_list_companiesreadList companies
papierkram_get_companyreadGet company
papierkram_list_personsreadList persons of a company
papierkram_get_personreadGet person
papierkram_list_invoicesreadList invoices
papierkram_get_invoicereadGet invoice
papierkram_list_estimatesreadList estimates
papierkram_get_estimatereadGet estimate
papierkram_list_vouchersreadList expense vouchers
papierkram_get_voucherreadGet expense voucher
papierkram_list_payment_termsreadList payment terms
papierkram_list_propositionsreadList products and services
papierkram_get_propositionreadGet product or service
papierkram_list_projectsreadList projects
papierkram_get_projectreadGet project
papierkram_list_tasksreadList tasks
papierkram_get_taskreadGet task
papierkram_list_time_entriesreadList time entries
papierkram_get_time_entryreadGet time entry
papierkram_list_bank_connectionsreadList bank connections
papierkram_list_bank_transactionsreadList bank transactions
papierkram_get_bank_transactionreadGet bank transaction
papierkram_list_usersreadList users
papierkram_get_userreadGet user
papierkram_create_companywriteCreate company
papierkram_update_companywriteUpdate company
papierkram_create_personwriteCreate person
papierkram_create_projectwriteCreate project
papierkram_create_taskwriteCreate task
papierkram_create_time_entrywriteCreate time entry
papierkram_create_propositionwriteCreate product or service
papierkram_create_invoicewriteCreate draft invoice
papierkram_create_estimatewriteCreate draft estimate
papierkram_get_voucher_pdfreadGet voucher PDF
papierkram_get_voucher_documentreadGet voucher document
papierkram_upload_voucher_documentwriteUpload voucher document
papierkram_create_voucherwriteCreate expense voucher
papierkram_pay_voucherwritePay expense voucher
papierkram_update_voucherwriteUpdate expense voucher
papierkram_usage_statusmetaUsage status (free-tier meter)
papierkram_request_featuremetaRequest a missing feature
papierkram_upgrademetaUpgrade to Pro or Pro+
papierkram_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per account)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with papierkram_upgrade (it returns a Stripe Checkout link). Cancel any time with papierkram_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running papierkram_upgrade before then undoes the cancel. Or write to [email protected].

License

Source: servers/papierkram/README.md at commit 4046075

Tools

40

papierkram_get_info

Get account info

Read the API version and the account's custom invoice templates (ids usable as custom_template_id when creating an invoice).

Takes no parameters.

papierkram_list_companies

List companies

List contacts (companies: customers and suppliers) with address, VAT id and contact data. Paged.

Parameterspageorder_bypage_sizeorder_direction

papierkram_get_company

Get company

Get one contact (company) by id, with its people.

Parametersidrequired

papierkram_list_persons

List persons of a company

List the contact persons of one company. Paged.

Parameterspageorder_bypage_sizecompany_idrequiredorder_direction

papierkram_get_person

Get person

Get one contact person of a company.

Parametersidrequiredcompany_idrequired

papierkram_list_invoices

List invoices

List outgoing invoices (Ausgangsrechnungen) with state (draft, ...), dates, totals and outstanding_amount. Filter by company, project or document date range. Paged.

Parameterspageorder_bypage_sizecompany_idproject_idorder_directiondocument_date_range_enddocument_date_range_start

papierkram_get_invoice

Get invoice

Get one outgoing invoice with its line items, billing address and payment term.

Parametersidrequired

papierkram_list_estimates

List estimates

List estimates (Angebote) with state, dates and totals. Filter by company, project or document date range. Paged.

Parameterspageorder_bypage_sizecompany_idproject_idorder_directiondocument_date_range_enddocument_date_range_start

papierkram_get_estimate

Get estimate

Get one estimate with its line items.

Parametersidrequired

papierkram_list_vouchers

List expense vouchers

List expense vouchers (Belege / incoming invoices and receipts) with creditor, state, dates and amounts. Filter by creditor (supplier company), project or document date range. Paged.

Parameterspageorder_bypage_sizeproject_idcreditor_idorder_directiondocument_date_range_enddocument_date_range_start

papierkram_get_voucher

Get expense voucher

Get one expense voucher with its line items.

Parametersidrequired

papierkram_list_payment_terms

List payment terms

List the payment term templates (ids needed as payment_term_id when creating an invoice).

Parameterspageorder_bypage_sizeorder_direction

papierkram_list_propositions

List products and services

List the stored products and services (Leistungen/Artikel) with article number, price and unit (the VAT rate is only in papierkram_get_proposition). Paged.

Parameterspageorder_bypage_sizeorder_direction

papierkram_get_proposition

Get product or service

Get one stored product or service, including its vat_rate (name such as 19% and rate such as 0.19).

Parametersidrequired

papierkram_list_projects

List projects

List projects with dates, budget and state. Filter by company. Paged.

Parameterspageorder_bypage_sizecompany_idorder_direction

papierkram_get_project

Get project

Get one project by id.

Parametersidrequired

papierkram_list_tasks

List tasks

List time-tracking tasks. Filter by project or product/service. Paged.

Parameterspageorder_bypage_sizeproject_idproposition_idorder_direction

papierkram_get_task

Get task

Get one task by id.

Parametersidrequired

papierkram_list_time_entries

List time entries

List tracked time entries. Filter by project, task, invoice, user, billing state or start time range (RFC 3339 date-time). Paged.

Parameterspagetask_iduser_idorder_bypage_sizeinvoice_idproject_idbilling_stateorder_directionstart_time_range_endstart_time_range_start

papierkram_get_time_entry

Get time entry

Get one time entry by id.

Parametersidrequired

papierkram_list_bank_connections

List bank connections

List the bank accounts connected to Papierkram (name, IBAN, balance data as Papierkram reports it). Paged.

Parameterspageorder_bypage_sizeorder_direction

papierkram_list_bank_transactions

List bank transactions

List bank transactions (value, currency, usage text, booking date, counterparty). Filter by bank connection. Paged.

Parameterspageorder_bypage_sizeorder_directionbank_connection_id

papierkram_get_bank_transaction

Get bank transaction

Get one bank transaction by id.

Parametersidrequired

papierkram_list_users

List users

List the users of the account (ids needed as user_id for time entries and tasks).

Parameterspageorder_bypage_sizeorder_direction

papierkram_get_user

Get user

Get one user by id.

Parametersidrequired

papierkram_create_company

Create company

WRITE: create a contact (company) in Papierkram. Papierkram assigns the customer number. Nothing is sent to the contact. Check papierkram_list_companies first to avoid duplicates. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parametersnamerequiredemailnotesphonewebsitebank_bicust_idnrbank_ibanpostal_zippostal_citycontact_typerequiredpostal_street+2 more

papierkram_update_company

Update company

WRITE: change fields of an existing contact (only the fields you pass are changed). Read it first with papierkram_get_company.

Parametersidrequirednameemailnotesphonewebsitebank_bicust_idnrbank_ibanpostal_zippostal_citycontact_type+3 more

papierkram_create_person

Create person

WRITE: add a contact person to an existing company. Nothing is sent to the person. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parametersemailphonemobilecommentpositionlast_namerequiredcompany_idrequireddepartmentfirst_namerequiredsalutation

papierkram_create_project

Create project

WRITE: create a project for a customer. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parametersnamerequiredend_datestart_datebudget_timebudget_typecustomer_idrequireddescriptionbudget_moneybudget_time_unit

papierkram_create_task

Create task

WRITE: create a time-tracking task in a project. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parametersnamerequireduser_iddeadlineproject_idrequiredproposition_id

papierkram_create_time_entry

Create time entry

WRITE: record a time entry (worked time) on a task. Not billed until an invoice is made. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parameterstask_idrequireduser_idrequiredcommentsentry_daterequiredunbillableended_at_timerequiredstarted_at_timerequired

papierkram_create_proposition

Create product or service

WRITE: create a stored product or service (Leistung/Artikel) with a price. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parametersnamerequiredpricevat_raterequiredtime_unitrequiredarticle_norequireddescriptionunit_name_1unit_name_nproposition_typerequired

papierkram_create_invoice

Create draft invoice

WRITE: create a DRAFT outgoing invoice (state draft; it is NOT finalized or sent, and gets no invoice number until the user completes it in Papierkram). Needs a payment term id (papierkram_list_payment_terms) and at least one line item. Use papierkram_list_invoices afterwards to check it. Costs Papierkram API credits (a create 10, an invoice or estimate 50; the monthly quota is limited).

Parametersnamerequiredgrossline_itemsrequiredproject_idcustomer_idrequireddescriptionsupply_datedocument_datepayment_term_idrequiredcontact_person_idcustom_template_id

papierkram_create_estimate

Create draft estimate

WRITE: create a DRAFT estimate (Angebot; state draft, it is NOT finalized or sent, and gets no estimate number until the user completes it in Papierkram). Needs a customer and at least one line item (name, quantity, unit, net unit price, VAT rate). Use papierkram_list_estimates afterwards to check it. Costs 50 Papierkram API credits (the monthly quota is limited).

Parametersnamerequiredgrossline_itemsrequiredproject_idcustomer_idrequireddescriptionthanks_textdocument_dategreetings_textcontact_person_idcustom_template_id

papierkram_get_voucher_pdf

Get voucher PDF

Get the PDF that Papierkram makes for one expense voucher (GET /expense/vouchers/{id}/pdf). The API reference does not say whether it embeds the uploaded receipt; for the original uploaded file use papierkram_get_voucher_document. Returns the PDF as an embedded file (up to 3 MB).

Parametersidrequired

papierkram_get_voucher_document

Get voucher document

Get an original file uploaded to an expense voucher (a receipt PDF or image), so its content can be read. Reads the voucher (papierkram_get_voucher) and fetches documents[].uri. Images come back as images, PDFs as an embedded file (up to 3 MB). The API has no documented download for one document: if Papierkram does not serve the file to an API token, the tool says so; then use papierkram_get_voucher_pdf. Files that are not yet attached to a voucher (the upload inbox) are not reachable through the Papierkram API.

Parametersvoucher_idrequireddocument_id

papierkram_upload_voucher_document

Upload voucher document

WRITE: attach a file (receipt PDF or image) to an existing expense voucher (POST /expense/vouchers/{id}/documents). The file is given as base64, up to 3 MB. Check papierkram_get_voucher first: a repeated upload attaches the file twice. Costs 10 Papierkram API credits.

Parametersfilenamerequiredmime_typerequiredvoucher_idrequiredcontent_base64required

papierkram_create_voucher

Create expense voucher

WRITE: book an expense voucher (Beleg) in Papierkram, e.g. from a receipt. Papierkram books it at once (state unpaid, no draft), so this tool works in two steps. Without confirm it creates nothing: it returns the exact request and possible duplicates (same document date, creditor and total) for the user to review. After the user approves, call again with the same arguments and confirm: true. Then attach the file with papierkram_upload_voucher_document and record a payment with papierkram_pay_voucher. Asset categories that need a depreciation (AfA) setting must be finished in Papierkram. Costs 50 Papierkram API credits; each duplicate check reads 1.

Parametersnamerequiredconfirmflaggeddue_dateline_itemsrequiredprovenancerequiredcreditor_iddescriptiondocument_daterequiredallow_duplicateentertainment_reasonentertainment_persons

papierkram_pay_voucher

Pay expense voucher

WRITE: book a payment of an expense voucher (POST /expense/vouchers/{id}/pay), with a value and payment date or with an existing bank transaction. Without confirm it changes nothing: it reads the voucher and returns the exact request for the user to review. After approval, call again with confirm: true. A value that differs from the open amount needs difference_reason (teilzahlung = part payment, skonto = cash discount, mahnung = reminder fee, schmaelerung = reduction, sonstige = other). A repeated call books a second payment: after an error, check the voucher state with papierkram_get_voucher before retrying.

Parametersidrequiredvalueconfirmpayment_datedifference_reasonbanking_transaction_id

papierkram_update_voucher

Update expense voucher

WRITE: change an existing expense voucher (PUT /expense/vouchers/{id}): title, supplier, provenance, dates, notes, flag or line items (amount, VAT rate, category). Only the fields you pass are changed. line_items REPLACES all lines of the voucher: pass the full new list. Without confirm it changes nothing: it reads the voucher and returns its current values next to the exact request for the user to review. After approval, call again with the same arguments and confirm: true. Papierkram refuses a voucher that can no longer be edited (e.g. a paid or locked one). Lines with a billing (re-invoicing) or depreciation (AfA) setting cannot be replaced here, so the tool refuses line_items for such a voucher; change those lines in Papierkram. Payments are booked with papierkram_pay_voucher. Costs 1 Papierkram API credit; the preview, and a confirmed line change, also read the voucher (1 each).

Parametersidrequirednameconfirmflaggeddue_dateline_itemsprovenancecreditor_iddescriptiondocument_dateentertainment_reasonentertainment_persons

Version history

12
  1. v1.17.4LatestNov 7, 2026
  2. v1.16.3Nov 5, 2026
  3. v1.16.2Nov 5, 2026
  4. v1.16.1Nov 4, 2026
  5. v1.16.0Nov 3, 2026
  6. v1.15.1Nov 3, 2026
  7. v1.13.0Nov 1, 2026
  8. v1.11.0Oct 31, 2026
  9. v1.9.0Oct 31, 2026
  10. v1.7.2Oct 30, 2026
  11. v1.7.0Oct 30, 2026
  12. v1.2.0Oct 26, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations