Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Wave

FreeNot checked

Provides 54 tools across 10 categories for Wave Accounting, enabling invoicing, customer management, products, transactions, bills, estimates, taxes, businesses

GitHubEmbed

About

Provides 54 tools across 10 categories for Wave Accounting, enabling invoicing, customer management, products, transactions, bills, estimates, taxes, businesses, and financial reporting through Wave's GraphQL API.

README

An MCP server for Wave Accounting, providing access to invoicing, customers, products, transactions, bills, estimates, taxes, and financial reporting via Wave's GraphQL API.

Features

54 Tools across 10 categories

Category Tools Capabilities
Invoices 10 List, get, create, update, delete, send, approve, mark sent, list/record payments
Customers 6 List, get, create, update, delete, search by name/email
Products 5 List, get, create, update, archive products and services
Accounts 4 List, get, create, update chart of accounts
Transactions 6 List, get, create, update, categorize, list attachments
Bills 6 List, get, create, update, list/record bill payments
Estimates 6 List, get, create, update, send, convert to invoice
Taxes 3 List, get, create sales taxes
Businesses 3 List, get current, get by ID
Reporting 5 P&L, Balance Sheet, Aged Receivables, Tax Summary, Cashflow

17 MCP App Resources

Pre-built UI layout definitions accessible via wave://apps/{name}:

invoice-dashboard, invoice-detail, invoice-builder, customer-detail, customer-grid, product-catalog, chart-of-accounts, transaction-feed, transaction-categorizer, bill-manager, estimate-builder, tax-overview, profit-loss, balance-sheet, cashflow-chart, aging-report, business-overview

Prerequisites

  1. A Wave account
  2. An OAuth2 access token from the Wave Developer Portal

Installation

npm install
npm run build

Configuration

# Required
export WAVE_ACCESS_TOKEN=your_oauth2_access_token

# Optional — set a default business ID so you don't have to pass it every call
export WAVE_BUSINESS_ID=your_business_id

Usage

Run directly

WAVE_ACCESS_TOKEN=your_token npm run dev

With Cursor / Claude Desktop

Add to your MCP config:

{
  "mcpServers": {
    "wave": {
      "command": "node",
      "args": ["/path/to/wave-mcp/build/main.js"],
      "env": {
        "WAVE_ACCESS_TOKEN": "your_access_token",
        "WAVE_BUSINESS_ID": "optional_business_id"
      }
    }
  }
}

Examples

// List overdue invoices
wave_list_invoices({ status: "OVERDUE" })

// Create an invoice
wave_create_invoice({
  customerId: "customer_456",
  invoiceDate: "2026-01-15",
  items: [
    { description: "Consulting", quantity: 10, unitPrice: "150.00" }
  ]
})

// Profit & Loss report
wave_profit_and_loss({ startDate: "2026-01-01", endDate: "2026-03-31" })

// Search customers
wave_search_customers({ query: "acme" })

Architecture

src/
├── main.ts                 # Entry point — reads env, starts server
├── server.ts               # MCP server setup, request routing
├── client.ts               # Wave GraphQL API client (gql.waveapps.com)
├── types/index.ts           # TypeScript types for all Wave entities
├── tools/
│   ├── invoices-tools.ts    # 10 invoice tools
│   ├── customers-tools.ts   # 6 customer tools
│   ├── products-tools.ts    # 5 product tools
│   ├── accounts-tools.ts    # 4 account tools
│   ├── transactions-tools.ts # 6 transaction tools
│   ├── bills-tools.ts       # 6 bill tools
│   ├── estimates-tools.ts   # 6 estimate tools
│   ├── taxes-tools.ts       # 3 tax tools
│   ├── businesses-tools.ts  # 3 business tools
│   └── reporting-tools.ts   # 5 reporting tools
└── apps/index.ts            # 17 MCP app resource definitions

All tools use parameterized GraphQL queries against https://gql.waveapps.com/graphql/public. Auth is via OAuth2 Bearer token.

Development

npm run build     # Compile TypeScript
npm run watch     # Watch mode
npx tsc --noEmit  # Type-check without emitting

License

MIT

from github.com/NoahMcGraw/wave-mcp

Install Wave in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install wave-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add wave-mcp -- npx -y wave-mcp

FAQ

Is Wave MCP free?

Yes, Wave MCP is free — one-click install via Unyly at no cost.

Does Wave need an API key?

No, Wave runs without API keys or environment variables.

Is Wave hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Wave in Claude Desktop, Claude Code or Cursor?

Open Wave on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Wave with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs