Wave MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAVE_BUSINESS_ID | No | Set automatically by auth_flow.py, or manually | |
| WAVE_ACCESS_TOKEN | Yes | Full Access token from Wave app settings |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| accountA | Chart of Accounts management in Wave. Operations: Read: list, get, search Write: create, update, archive Args: operation: One of the operations listed above. account_id: Account ID (base64 string, required for get/update/archive). data: Dict of fields for create/update. Key fields: - name (str, required for create) - subtype (str, AccountSubtypeValue enum) - currency (str, currency code) - description (str) query: Search text for search operation (matches name, client-side). types: Filter by AccountTypeValue list (e.g. ["ASSET", "LIABILITY"]). subtypes: Filter by AccountSubtypeValue list. page: Page number (default 1). page_size: Results per page (default 50). Returns: JSON string with account data or {"error": "..."}. |
| partyA | Customer and vendor management in Wave. NOTE: Vendors are read-only in the Wave API (no create/update/delete mutations). Operations: Read: list, get, search (both customer and vendor) Write: create, update, delete (customer only) Args: operation: One of the operations listed above. party_type: One of: customer, vendor. party_id: Entity ID (base64 string, required for get/update/delete). data: Dict of fields for create/update. Key customer fields: - name (str, required for create) - firstName, lastName (str) - email (str) - phone (str) - address (dict: addressLine1, addressLine2, city, postalCode, countryCode, provinceCode) - currency (str, currency code) - shippingDetails (dict: name, phone, address) query: Search text for search operation (matches name, client-side). page: Page number (default 1). page_size: Results per page (default 50). Returns: JSON string with party data or {"error": "..."}. |
| transactionA | Invoice and money transaction management in Wave. Entity types: invoice, money_transaction Invoice operations: Read: list, get, search Write: create, update, delete, clone, send, approve, mark_sent, create_payment Money transaction operations: Write: create, bulk_create (BETA — create only, no list/get/update/delete) Args: operation: One of the operations listed above. entity_type: One of: invoice, money_transaction. entity_id: Transaction ID (base64 string, required for get/update/delete/clone/send/approve/mark_sent). data: Dict of fields for create/update. Invoice create: customerId, items (list of {productId, description, quantity, unitPrice, accountId}), invoiceDate, dueDate, memo, currency Invoice create_payment: invoiceId, paymentAccountId, amount, paymentDate, paymentMethod (BANK_TRANSFER|CASH|CHEQUE|CREDIT_CARD|OTHER|PAY_PAL), memo Money transaction create: anchor (dict with accountId, amount, direction: DEPOSIT|WITHDRAWAL), lineItems (list of {accountId, amount, balance}), externalId, description Money transaction bulk_create: transactions (list of individual create inputs) query: Search text for search operation (matches invoiceNumber, customer name, memo). page: Page number (default 1). page_size: Results per page (default 50). Returns: JSON string with transaction data or {"error": "..."}. |
| itemA | Products & services management in Wave. Operations: Read: list, get, search Write: create, update, archive Args: operation: One of the operations listed above. item_id: Product ID (base64 string, required for get/update/archive). data: Dict of fields for create/update. Key fields: - name (str, required for create) - description (str) - unitPrice (decimal as string, e.g. "19.99") - isSold (bool) - isBought (bool) - incomeAccountId (str, account ID) - expenseAccountId (str, account ID) - defaultSalesTaxIds (list of tax IDs) query: Search text for search operation (matches name, client-side). page: Page number (default 1). page_size: Results per page (default 50). Returns: JSON string with product data or {"error": "..."}. |
| referenceA | Lookup data, settings, sales taxes, and estimates in Wave. Read operations: list_businesses, get_business, get_user, list_currencies, list_countries, list_account_types, list_account_subtypes, list_sales_taxes, get_sales_tax, list_estimates, get_estimate Write operations (sales taxes only): create_sales_tax, update_sales_tax, archive_sales_tax Args: operation: One of the operations listed above. entity_id: Entity ID (base64 string, for get_sales_tax/update_sales_tax/archive_sales_tax/get_estimate). data: Dict of fields for create/update sales tax: - name (str, required for create) - abbreviation (str) - rate (str, decimal percentage e.g. "13.0") - isCompound (bool) - isRecoverable (bool) page: Page number (for list_estimates, default 1). page_size: Results per page (for list_estimates, default 50). Returns: JSON string with reference data or {"error": "..."}. |
| reportA | Synthesized financial summaries from Wave data. Wave has no report API. These are built from raw account/customer data. Operations: business_summary — Business info + accounts grouped by type with counts account_balances — All accounts with name, type, subtype, and balance info customer_balances — All customers with outstanding and overdue amounts Args: operation: One of the operations listed above. Returns: JSON string with synthesized report data or {"error": "..."}. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/hvkshetry/wave-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server