wave-mcp-server
v1.0.2
Published
Model Context Protocol server for Wave Accounting
Maintainers
Readme
Wave Accounting MCP Server
A production-ready Model Context Protocol (MCP) server for Wave Accounting, built with Node.js and TypeScript. This server provides tools to interact with Wave Accounting's GraphQL API, enabling you to create expenses, income transactions, invoices, and manage customers, vendors, and accounts.
Quick Start (Recommended)
For Claude Desktop
Add the following to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "wave-mcp-server@latest"],
"env": {
"WAVE_ACCESS_TOKEN": "your_wave_access_token_here"
}
}
}
}For OpenCode
Add the following to your OpenCode MCP configuration:
{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "wave-mcp-server@latest"],
"env": {
"WAVE_ACCESS_TOKEN": "your_wave_access_token_here"
}
}
}
}For Cursor
Add the following to your Cursor settings (Settings > MCP):
{
"mcpServers": {
"wave": {
"command": "npx",
"args": ["-y", "wave-mcp-server@latest"],
"env": {
"WAVE_ACCESS_TOKEN": "your_wave_access_token_here"
}
}
}
}Or add via Cursor's MCP settings UI by creating a new MCP server with:
- Name:
wave - Command:
npx - Args:
-y wave-mcp-server@latest - Env:
WAVE_ACCESS_TOKEN=your_token_here
Features
17 MCP Tools:
Business (2):
list_businesses- List all available Wave businesses with paginationset_business- Set the active business for operations
Expenses (3):
create_expense_from_receipt- Create expenses from receipt datasearch_vendor- Search for existing vendorsget_expense_accounts- List expense accounts
Income (3):
create_income_from_payment- Create income transactionssearch_customer- Search for existing customersget_income_accounts- List income accounts
Invoices (8):
list_invoices- List invoices with paginationget_invoice- Get detailed invoice informationcreate_invoice- Create new invoiceupdate_invoice- Modify existing invoicedelete_invoice- Delete an invoiceclone_invoice- Copy an invoiceapprove_invoice- Approve draft invoicesend_invoice- Email invoice to customers
Debug (1):
debug_accounts- Debug tool for account issues
4 MCP Resources:
wave://businesses- Business informationwave://accounts- Chart of accountswave://vendors- Vendors listwave://customers- Customers list
Smart Account Matching:
- Fuzzy matching with synonyms
- Apartment/property number detection for rental accounts
- Multi-stage matching with confidence scoring
Multi-Business Support:
- Pagination support for large datasets
- Auto-selection of single business
- Optional manual business selection
Getting a Wave Access Token
- Log into Wave at https://waveapps.com
- Go to Settings > Developer > API Access
- Create a new OAuth2 application
- Generate an access token
Manual Installation
If you prefer to install and run locally:
# Clone the repository
git clone https://github.com/yourusername/wave-mcp-server.git
cd wave-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
npm startConfiguration
Create a .env file in the project root:
# REQUIRED: Your Wave API access token (OAuth2 Bearer token)
WAVE_ACCESS_TOKEN=your_wave_access_token_here
# OPTIONAL: Your Wave business ID (auto-detected if not provided)
WAVE_BUSINESS_ID=
# OPTIONAL: Logging level (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=INFOSee .env.example for more details.
Local Development Config
For local development with Claude Desktop, use this config instead:
{
"mcpServers": {
"wave": {
"command": "node",
"args": ["/absolute/path/to/wave-mcp-server/dist/server.js"],
"env": {
"WAVE_ACCESS_TOKEN": "your_token_here"
}
}
}
}Available Tools
Business Management
list_businesses- List all businesses with pagination supportset_business- Set the active business context
Expense Management
create_expense_from_receipt- Create expenses from receipt datasearch_vendor- Find vendors by name or emailget_expense_accounts- List available expense accounts
Income Management
create_income_from_payment- Create income transactions from payment datasearch_customer- Find customers by name or emailget_income_accounts- List available income accounts
Invoice Management
list_invoices- List all invoices with filtering and paginationget_invoice- Get detailed information for a specific invoicecreate_invoice- Create a new invoice with items, discounts, etc.update_invoice- Modify an existing invoicedelete_invoice- Delete an invoiceclone_invoice- Copy an existing invoiceapprove_invoice- Approve a draft invoice (change status from DRAFT to SAVED)send_invoice- Send an invoice via email to customers
Debug Tools
debug_accounts- Inspect accounts and test account matching
Resources
wave://businesses- View all your businesseswave://accounts- Browse your chart of accountswave://vendors- List all vendorswave://customers- List all customers
Project Structure
wave-mcp-server/
├── src/
│ ├── server.ts # Main entry point
│ ├── client/
│ │ ├── WaveClient.ts # GraphQL API client
│ │ ├── types.ts # TypeScript interfaces and Zod schemas
│ │ └── queries.ts # GraphQL query constants
│ ├── handlers/
│ │ ├── tools/
│ │ │ ├── index.ts # Tool registry
│ │ │ ├── expenseTools.ts # Expense-related tools
│ │ │ ├── incomeTools.ts # Income-related tools
│ │ │ ├── invoiceTools.ts # Invoice-related tools
│ │ │ ├── businessTools.ts # Business management tools
│ │ │ └── debugTools.ts # Debug tools
│ │ └── resources/
│ │ └── index.ts # Resource handlers
│ ├── utils/
│ │ ├── accountMatcher.ts # Smart account matching
│ │ ├── synonyms.ts # Category synonyms
│ │ └── logger.ts # Logging utility
│ └── config/
│ └── env.ts # Environment configuration
├── dist/ # Compiled JavaScript (generated by tsc)
├── .env.example # Environment variables template
├── package.json
├── tsconfig.json
└── README.mdKey Features
- Smart account matching with fuzzy matching
- Apartment/property number detection for rental accounts
- Multi-business support with pagination
- Optional vendor/customer association
- Payment/deposit account selection
- Comprehensive debug tool
- Full invoice CRUD operations
License
ISC
