Skip to main content
Glama
mvicari

Wave MCP Server

Wave MCP Server

A complete Model Context Protocol (MCP) server for Wave Accounting, providing comprehensive access to invoicing, customers, products, transactions, bills, estimates, taxes, and financial reporting.

Features

🔧 45+ Tools across 10 categories:

Invoices (10 tools)

  • List, get, create, update, delete invoices

  • Send invoices via email

  • Approve and mark invoices as sent

  • List and record invoice payments

Customers (6 tools)

  • List, get, create, update, delete customers

  • Search customers by name or email

Products (5 tools)

  • List, get, create, update, archive products and services

  • Filter by sold/bought status

Accounts (4 tools)

  • List, get, create, update chart of accounts

  • Filter by account type (ASSET, LIABILITY, EQUITY, INCOME, EXPENSE)

Transactions (6 tools)

  • List, get, create, update transactions

  • Categorize transactions to accounts

  • List transaction attachments

Bills (7 tools)

  • List, get, create, update bills (accounts payable)

  • List and record bill payments

Estimates (6 tools)

  • List, get, create, update, send estimates

  • Convert estimates to invoices

Taxes (3 tools)

  • List, get, create sales taxes

Businesses (3 tools)

  • List businesses

  • Get current or specific business details

Reporting (5 tools)

  • Profit & Loss (Income Statement)

  • Balance Sheet

  • Aged Receivables (A/R Aging)

  • Tax Summary

  • Cashflow Statement

📱 17 MCP Apps - Pre-built UI workflows:

  1. invoice-dashboard - Overview of invoices with status breakdown

  2. invoice-detail - Detailed invoice view with payments and actions

  3. invoice-builder - Create/edit invoices with line items

  4. customer-detail - Customer profile with invoice history

  5. customer-grid - Searchable customer grid

  6. product-catalog - Product/service management

  7. chart-of-accounts - Account tree view

  8. transaction-feed - Real-time transaction stream

  9. transaction-categorizer - Bulk transaction categorization

  10. bill-manager - Track and pay bills

  11. estimate-builder - Create and manage quotes

  12. tax-overview - Tax configuration and summary

  13. profit-loss - P&L report with visualization

  14. balance-sheet - Balance sheet report

  15. cashflow-chart - Cashflow waterfall chart

  16. aging-report - Aged receivables report

  17. business-overview - Business dashboard with quick actions

Related MCP server: mercury-invoicing-mcp

Installation

cd servers/wave
npm install
npm run build

Configuration

Prerequisites

  1. Wave Account: You need a Wave account at waveapps.com

  2. API Access Token: Get an OAuth2 access token from Wave Developer Portal

Environment Variables

# Required
WAVE_ACCESS_TOKEN=your_oauth2_access_token

# Optional - set a default business ID
WAVE_BUSINESS_ID=your_business_id

Usage

As MCP Server

Run the server:

WAVE_ACCESS_TOKEN=your_token npm run dev

With Claude Desktop

Add to your claude_desktop_config.json:

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

With NPX

npx @mcpengine/wave-server

Tool Examples

List Invoices

// List all invoices
wave_list_invoices({ businessId: "business_123" })

// Filter by status
wave_list_invoices({ 
  businessId: "business_123",
  status: "OVERDUE"
})

// Filter by customer
wave_list_invoices({
  businessId: "business_123", 
  customerId: "customer_456"
})

Create Invoice

wave_create_invoice({
  businessId: "business_123",
  customerId: "customer_456",
  invoiceDate: "2025-01-15",
  dueDate: "2025-02-15",
  title: "January Services",
  items: [
    {
      description: "Consulting Services",
      quantity: 10,
      unitPrice: "150.00",
      taxIds: ["tax_789"]
    },
    {
      productId: "product_101",
      description: "Software License",
      quantity: 1,
      unitPrice: "500.00"
    }
  ]
})

Create Customer

wave_create_customer({
  businessId: "business_123",
  name: "Acme Corporation",
  email: "billing@acme.com",
  addressLine1: "123 Main Street",
  city: "San Francisco",
  provinceCode: "CA",
  countryCode: "US",
  postalCode: "94105"
})

Generate Reports

// Profit & Loss
wave_profit_and_loss({
  businessId: "business_123",
  startDate: "2025-01-01",
  endDate: "2025-01-31"
})

// Balance Sheet
wave_balance_sheet({
  businessId: "business_123",
  asOfDate: "2025-01-31"
})

// Aged Receivables
wave_aged_receivables({
  businessId: "business_123",
  asOfDate: "2025-01-31"
})

API Architecture

GraphQL-Based

Wave uses a GraphQL API, not REST. The server handles:

  • Authentication: OAuth2 Bearer token

  • Error Handling: GraphQL error parsing and network error detection

  • Type Safety: Full TypeScript types for all Wave entities

  • Pagination: Automatic page handling for large result sets

Client Implementation

// client.ts
import { GraphQLClient } from 'graphql-request';

const client = new GraphQLClient('https://gql.waveapps.com/graphql/public', {
  headers: {
    Authorization: `Bearer ${accessToken}`
  }
});

Tool Organization

src/tools/
├── invoices-tools.ts      # 10 tools for invoice management
├── customers-tools.ts     # 6 tools for customer management
├── products-tools.ts      # 5 tools for product/service catalog
├── accounts-tools.ts      # 4 tools for chart of accounts
├── transactions-tools.ts  # 6 tools for transaction management
├── bills-tools.ts         # 7 tools for bills payable
├── estimates-tools.ts     # 6 tools for estimates/quotes
├── taxes-tools.ts         # 3 tools for sales tax management
├── businesses-tools.ts    # 3 tools for business info
└── reporting-tools.ts     # 5 tools for financial reports

Type System

Complete TypeScript types for all Wave entities:

// types/index.ts
export interface Invoice {
  id: string;
  invoiceNumber: string;
  customer: Customer;
  status: 'DRAFT' | 'SENT' | 'VIEWED' | 'PAID' | 'PARTIAL' | 'OVERDUE' | 'APPROVED';
  items: InvoiceItem[];
  total: Money;
  amountDue: Money;
  amountPaid: Money;
  // ... full type definitions
}

Error Handling

The server provides comprehensive error handling:

try {
  const invoice = await wave_get_invoice({ invoiceId: "inv_123" });
} catch (error) {
  // GraphQL errors
  if (error.graphQLErrors) {
    console.error('GraphQL errors:', error.graphQLErrors);
  }
  
  // Network errors
  if (error.networkError) {
    console.error('Network error:', error.networkError);
  }
  
  // HTTP status codes
  if (error.statusCode) {
    console.error('HTTP status:', error.statusCode);
  }
}

MCP Apps

Apps are accessed via resources:

// List all apps
const apps = await readResource({ uri: "wave://apps" });

// Load specific app
const invoiceDashboard = await readResource({ 
  uri: "wave://apps/invoice-dashboard" 
});

Each app includes:

  • Display name and description

  • Default tools to load

  • Layout configuration for UI rendering

  • Workflow steps (for process-driven apps)

Development

Build

npm run build

Watch Mode

npm run watch

Type Checking

npx tsc --noEmit

License

MIT

Contributing

Contributions welcome! Please see the main MCPEngine repository for guidelines.

Support

For issues or questions:

Install Server
F
license - not found
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    This project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Wave Financial (beta): https://www.cdata.com/download/download.aspx?sku=HWZK-V&type=beta
    Last updated
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    This MCP server enables AI assistants like Claude to perform Wave Accounting bookkeeping tasks—such as drafting invoices, managing customers, recording payments, and looking up financial data—through natural language commands.
    Last updated
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    Comprehensive MCP server for Wave Accounting, providing 45+ tools across invoicing, customers, products, transactions, bills, estimates, taxes, and financial reporting, plus 17 pre-built UI workflows.
    Last updated
    4

View all related MCP servers

Related MCP Connectors

  • MCP Server for agents to onboard, pay, and provision services autonomously with InFlow

  • Hosted MCP server for the Wavix telecom platform: SMS, voice, 2FA, SIP, numbers, 10DLC, CDRs.

  • Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mvicari/wave-mcp-remote'

If you have feedback or need assistance with the MCP directory API, please join our Discord server