100+ integrations are ready to connect to your AI.Connect your first MCP

Wave MCP server for your AI

Ask who owes you money and what is overdue, draft an invoice and send it once you have checked it, record a payment you received, add a customer or product, and log an income or expense, all from your AI client.

PopMCPWave

Who owes me money right now, and which invoices are overdue?

Supported Wave tools

Every query and action in Wave's public API is covered, from invoices, estimates and deposits to customers, vendors, products, sales taxes and accounts, with everyday tools loaded by default and the rest one search away.

71 tools in the full catalog: 29 read and 42 write. 32 load by default, and the rest are found with tool search.

wave_convert_estimate_to_invoice

Turn an estimate into a new invoice and return the invoice id.

wave_create_estimate

Create a draft estimate for a customer.

wave_get_estimate

One estimate with lines, taxes, attachments, acceptance history and deposit payments.

wave_list_estimates

List estimates (quotes).

wave_send_estimate

EMAILS AN ESTIMATE TO A REAL CUSTOMER.

wave_approve_invoice

Approve a draft invoice, which posts it to the books and makes it ready to send.

wave_create_invoice

Create an invoice for a customer.

wave_delete_invoice

Delete an invoice for good, along with what it put in the books.

wave_get_invoice

One invoice with lines, taxes, payments and its view and PDF links.

wave_list_invoices

List invoices.

wave_mark_invoice_sent

Record that an invoice was sent some other way, such as by hand or from your own email.

wave_send_invoice

EMAILS AN INVOICE TO A REAL CUSTOMER.

wave_update_invoice

Change an invoice.

wave_list_accounts

The chart of accounts with balances.

wave_create_customer

Add a customer to the business.

wave_create_product

Add a product or service.

wave_get_customer

One customer with address, shipping details, internal notes and amounts owed.

wave_get_product

One product or service with its price, accounts and default sales taxes.

wave_list_customers

List customers of the business with what each owes.

wave_list_products

List products and services.

wave_list_sales_taxes

List sales taxes of the business with their current rate (0.15 means 15%).

wave_record_invoice_payment

Record money already received against an invoice, which changes the books.

wave_send_invoice_payment_receipt

EMAILS A RECEIPT TO A REAL CUSTOMER.

wave_update_customer

Change a customer.

wave_update_product

Change a product or service.

wave_get_business

Details of the connected business: name, currency, timezone, address, and emailSendEnabled.

wave_get_user

The Wave user behind this connection: id, name and email.

wave_create_and_send_invoice

Create an approved invoice and email it to a real customer in one call.

wave_find_records

Find a customer, product, vendor, account or sales tax by part of its name.

wave_get_receivables_summary

Who owes what: money still due by currency and customer, with overdue split out.

wave_create_money_transaction

Add one income or expense to the books (Wave marks this beta).

wave_list_vendors

List vendors of the business.

wave_approve_estimate

Approve a draft estimate so it can be sent.

wave_clone_estimate

Copy an estimate into a new one.

wave_delete_estimate

Delete an estimate for good.

wave_delete_estimate_payment

Remove a recorded deposit from an estimate.

wave_generate_estimate_pdf

Make a PDF of an estimate and return its link.

wave_get_estimate_payment

One deposit payment or refund on an estimate.

wave_mark_estimate_accepted

Record that the customer accepted an estimate.

wave_mark_estimate_sent

Record that an estimate was sent some other way.

wave_record_estimate_deposit_payment

Record a deposit already received on an estimate.

wave_reset_estimate_acceptance

Undo a recorded acceptance so the estimate is open again.

wave_send_estimate_acceptance_email

EMAILS A REAL CUSTOMER to tell them their estimate acceptance was received.

wave_send_estimate_deposit_receipt

EMAILS A DEPOSIT RECEIPT TO A REAL CUSTOMER.

wave_update_estimate

Change an estimate.

wave_update_estimate_deposit_payment

Correct a recorded estimate deposit.

wave_clone_invoice

Copy an invoice into a new one for the same customer.

wave_archive_account

Archive an account.

wave_create_account

Add an account to the chart of accounts.

wave_get_account

One account with its balance and sequence.

wave_list_account_subtypes

The account subtypes Wave has, with their type and whether they can be archived.

wave_list_account_types

The account types Wave has (asset, liability, equity, income, expense).

wave_update_account

Rename or redescribe an account.

wave_archive_product

Archive a product or service so it no longer shows for new invoices.

wave_archive_sales_tax

Archive a sales tax so it no longer shows for new invoices.

wave_create_sales_tax

Add a sales tax.

wave_delete_customer

Delete a customer for good.

wave_delete_invoice_payment

Remove a recorded payment from an invoice, which reopens what it paid.

wave_get_country

One country by ISO code with its provinces or states, whose codes go in an address's provinceCode.

wave_get_currency

One currency by ISO code, such as USD or CAD.

wave_get_invoice_payment

One payment on an invoice.

wave_get_province

One province or state by its code, such as CA-ON or US-NY.

wave_get_sales_tax

One sales tax with its rate history.

wave_list_countries

Every country Wave knows, with its code and currency.

wave_list_currencies

Every currency Wave knows, with symbol and decimal places.

wave_update_invoice_payment

Correct a recorded payment.

wave_update_sales_tax

Change a sales tax.

wave_get_oauth_application

The Wave application this connection's token belongs to: its name and client id.

wave_list_businesses

The Wave business this connection is locked to, with its currency, timezone and whether it can email invoices.

wave_create_money_transactions

Add several income or expense entries in one call (Wave marks this beta).

wave_get_vendor

One vendor with address and contact details.

Connect Wave to Claude, ChatGPT and Claude Code

Credentials off one Wave screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In Wave's developer portal open Manage Applications, make a small application, click Create token and copy the Full Access Token into PopMCP. It works on any Wave plan. If your login has several businesses, you pick one next and the connection stays locked to it.

Full Access Token••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “Who owes me money right now, and which invoices are overdue?”

    • get_receivables_summary
    • list_invoices
    • get_invoice
  • “Invoice Northwind for two days of consulting, due in 30 days, and show it to me before anything goes out”

    • find_records
    • list_products
    • create_invoice
  • “Northwind paid invoice 1042 by bank transfer today: record it and send them a receipt”

    • list_invoices
    • list_accounts
    • record_invoice_payment
    • send_invoice_payment_receipt
  • “Turn last week's accepted estimate for Acme into an invoice and email it to their billing address”

    • list_estimates
    • convert_estimate_to_invoice
    • approve_invoice
    • send_invoice
  • “Add yesterday's $250 office chair purchase from the business checking account as an expense”

    • list_accounts
    • create_money_transaction

Use Wave from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Wave MCP server questions

What teams ask before putting Wave behind an AI client.

What does the Wave MCP server need to connect?

A Full Access Token. In Wave's developer portal open Manage Applications, click Get started, complete the short form and click Create application, then open the application and click Create token. Paste the token into PopMCP. It checks the token against Wave and stores it encrypted.

Do I need a paid Wave plan?

Not for a Full Access Token: Wave's developer docs offer it to people without a Pro account. Wave's own sign-in flow is different: it can only grant access to businesses with an active Pro or Wave Advisor subscription.

I have several businesses in Wave. What can the AI reach?

One. A Full Access Token reaches every business in your Wave login, so PopMCP asks which one to connect and locks the connection to it. A request naming another business, or using an id from one, is refused before it is sent. To work in a second business, connect it to its own PopMCP workspace.

Can the AI email my customers?

Yes, if you allow write actions. Sending an invoice, estimate or receipt emails a real customer through Wave, and those tools say so plainly so your AI client can check with you first. Creating and approving an invoice emails no one. On a read-only connection none of this is available.

Does recording a payment charge my customer?

No. It records money you already received against an invoice, which updates your books. It does not take a payment, and nothing here moves money.

What can Wave's API not do?

It cannot read bookkeeping transactions back, transfer between bank accounts, work with bills, change vendors (it reads them only), or run reports such as profit and loss. Your AI will say so rather than guess, and those stay in Wave itself.

Why does it ask me to find a customer by name first?

Wave's lists can filter by email but not by name. The find_records tool reads through your records and matches on part of a name, so you can say Northwind and the AI gets the right id. It stops after a fixed number of records and says so if it did.

Do I have to run or host the Wave MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Wave to Claude Code?

Connect Wave in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Wave on the consent screen. The Wave tools are then available in that session, and no Wave credential is stored on your machine.

Why do only 32 of the 71 tools load by default?

Loading 71 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 32-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 71 here. A trigger is something PopMCP watches for you: 6 Wave events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Wave.

Connect Wave to your AI in minutes

Launch a hosted MCP endpoint for Wave, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP