# Moneybird — how to use (mcp.ai)

Moneybird is an online invoicing and accounting platform designed for small businesses and freelancers, offering features like invoicing, expense tracking, and financial reporting.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_moneybird?ms=1781543100000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `moneybird_add_note_to_contact`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/moneybird`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/moneybird/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/moneybird/add/note/to/contact` — Tool to add a note or to-do to a contact. use when you need to record a comment or assign a task to a contact.
  - body: { note: object, contact_id: string, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/archive/contact` — Tool to archive a contact. use when a contact is no longer needed and should be hidden permanently.
  - body: { contact_id: integer, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/create/contact` — Tool to create a new contact in moneybird. use after you have an administration id and need to onboard a new company/person. provide either company name or both firstname and lastname.
  - body: { city?: string, phone?: string, country?: string, zipcode?: string, address1?: string, address2?: string, lastname?: string, sepa_bic?: string, firstname?: string, sepa_iban?: string, tax_number?: string, customer_id?: string, sepa_active?: boolean, bank_account?: string, company_name?: string, si_identifier?: string, delivery_method?: string, sepa_mandate_id?: string, administration_id: integer, sepa_mandate_date?: string, sepa_sequence_type?: string, si_identifier_type?: string, chamber_of_commerce?: string, invoice_workflow_id?: integer, estimate_workflow_id?: integer, send_invoices_to_email?: string, sepa_iban_account_name?: string, send_estimates_to_email?: string, custom_fields_attributes?: object }
- `POST https://api.mcp.ai/api/moneybird/create/contact/person` — Tool to create a new contact person. use when you have the contact id and need to add a person after confirming their firstname and lastname.
  - body: { contact_id: integer, contact_person: object, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/create/sales/invoice` — Tool to create a new sales invoice. use when you need to bill a contact with specified line items.
  - body: { sales_invoice: object, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/delete/contact` — Tool to delete a contact. use after confirming that contact should be removed.
  - body: { contact_id: integer, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/delete/contact/note` — Tool to delete a note from a contact. use when a note is no longer needed and should be removed permanently.
  - body: { note_id: integer, contact_id: integer, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/delete/contact/person` — Tool to delete a contact person from a contact. use after confirming the administration id, contact id, and contact person id.
  - body: { contact_id: integer, administration_id: integer, contact_person_id: integer }
- `POST https://api.mcp.ai/api/moneybird/filter/contacts` — Tool to filter contacts. use when you need to retrieve contacts matching specific criteria like created after or first name.
  - body: { per_page?: integer, last_name?: string, first_name?: string, created_after?: string, updated_after?: string, include_archived?: boolean, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/get/additional/charges` — Tool to get additional charges for a contact. use when you need to view pending (or optionally billed) usage or recurring charges.
  - body: { contact_id: string, include_billed?: boolean, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/get/contact` — Tool to retrieve all information about a specific contact by id. use when you need the full details of a contact, for example before generating invoices.
  - body: { contact_id: string, include_archived?: boolean, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/get/contact/by/customer/id` — Tool to retrieve full contact details by customer id. use when you need all fields of a contact given its customer id.
  - body: { customer_id: string, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/get/contact/person` — Tool to get all information about a contact person. use when you have the administration, contact, and contact person ids and need full details before updating.
  - body: { contact_id: integer, administration_id: integer, contact_person_id: integer }
- `POST https://api.mcp.ai/api/moneybird/get/sales/invoice` — Tool to get a single sales invoice by id. use when you need detailed invoice data for a known invoice id.
  - body: { invoice_id: string, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/list/administrations` — Tool to list all administrations accessible by the authenticated user. use when you need to obtain administration id for subsequent operations like create contact.
- `POST https://api.mcp.ai/api/moneybird/list/contacts/synchronization` — Tool to list all contact ids and versions for synchronization. use when you need to detect which contacts have changed and update local data accordingly.
  - body: { filter?: string, include_archived?: boolean, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/list/sales/invoices` — Tool to list all sales invoices in an administration. use when you need an overview of invoices for a given administration.
  - body: { page?: integer, filter?: string, per_page?: integer, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/request/contact/payments/mandate/url` — Tool to request a url for setting up a payments mandate. use when you need to generate a direct-debit authorization link for a contact (valid for 14 days).
  - body: { contact_id: integer, identity_id?: integer, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/update/contact` — Tool to update a contact. use when you need to modify existing contact details by id. only provided fields will be changed.
  - body: { contact: object, contact_id: string, administration_id: integer }
- `POST https://api.mcp.ai/api/moneybird/update/contact/person` — Tool to update a contact person. use after selecting a specific contact person when you need to change their details.
  - body: { email?: string, phone?: string, lastname?: string, firstname?: string, contact_id: string, department?: string, administration_id: integer, contact_person_id: string }
- `POST https://api.mcp.ai/api/moneybird/update/sales/invoice` — Tool to update an existing sales invoice by id. use when modifying invoice header or line items.
  - body: { sales_invoice: object, sales_invoice_id: string, administration_id: integer }

## More
- Page: https://mcp.ai/moneybird
- Agent spec (llms.txt): https://mcp.ai/moneybird/llms.txt
- Postman collection: https://mcp.ai/moneybird/postman.json
