Skip to main content
Glama
hvkshetry

Wave MCP Server

by hvkshetry

Wave MCP Server

MCP server for Wave accounting — 6 tools, 52 operations covering the full Wave GraphQL API.

Built with FastMCP and httpx. Mirrors the architecture of quickbooks-mcp.

Quick Start

# Install dependencies
uv sync

# Configure credentials
cp .env.example .env
# Edit .env — add your WAVE_ACCESS_TOKEN from Wave > Settings > API Applications

# Discover your business ID
uv run python auth_flow.py

# Run (STDIO for Claude Desktop / MCP clients)
uv run python server.py

# Run (SSE on port 3076)
uv run python server.py sse

Related MCP server: waveapps-mcp

Configuration

Variable

Description

WAVE_ACCESS_TOKEN

Full Access token from Wave app settings

WAVE_BUSINESS_ID

Set automatically by auth_flow.py, or manually

Tools & Operations

account — Chart of Accounts

Operation

Description

list

List accounts with optional type/subtype filters, pagination

get

Get account by ID

create

Create account (name, subtype, currency, description)

update

Update account fields

archive

Archive an account

search

Client-side name search

party — Customers & Vendors

Operation

Customer

Vendor

list

Yes

Yes

get

Yes

Yes

create

Yes

Read-only

update

Yes

Read-only

delete

Yes

Read-only

search

Yes

Yes

transaction — Invoices & Money Transactions

Invoice operations: list, get, create, update, delete, clone, send, approve, mark_sent, create_payment, search

Money transaction operations: create, bulk_create (BETA)

item — Products & Services

list, get, create, update, archive, search

reference — Lookup Data & Settings

list_businesses, get_business, get_user, list_currencies, list_countries, list_account_types, list_account_subtypes, list_sales_taxes, get_sales_tax, create_sales_tax, update_sales_tax, archive_sales_tax, list_estimates, get_estimate

report — Synthesized Summaries

Operation

Description

business_summary

Business info + accounts grouped by type with counts

account_balances

All accounts with name, type, balance, balanceInBusinessCurrency

customer_balances

All customers with outstanding and overdue amounts

MCP Client Configuration

Claude Desktop / Claude Code (STDIO)

{
  "mcpServers": {
    "wave": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/wave-mcp", "python", "server.py"]
    }
  }
}

SSE (remote / multi-client)

{
  "mcpServers": {
    "wave": {
      "url": "http://localhost:3076/sse"
    }
  }
}

Key Differences from QuickBooks MCP

Wave

QuickBooks

API

GraphQL

REST

Auth

Static Bearer token

OAuth 2.0 + token refresh

IDs

Base64 strings

Integers

Pagination

Page-based (page/pageSize)

Offset-based (start_position)

Search

Client-side name filtering

Server-side WHERE queries

Vendors

Read-only

Full CRUD

Reports

Synthesized from account data

Native report API

Money Transactions

Create-only (BETA)

N/A

Known Limitations

  • Vendors are read-only — no create/update/delete mutations in the Wave API

  • Money transactions are create-only (BETA) — no list/get/update/delete

  • No server-side text search — client-side filtering, limited to first ~250 results per query

  • No financial reports API — synthesized account balance summaries only

  • Estimates are read-only — no create/update mutations

  • Rate limit: 60 requests/minute (automatic exponential backoff on 429)

Available Tools

6 tools
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": "..."}.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
pageNo
queryNo
typesNo
subtypesNo
operationYes
page_sizeNo
account_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, but the description only lists operations without elaborating on behavioral traits like authentication needs, rate limits, or side effects of 'archive' (which might be destructive despite the annotation). The description adds little beyond the annotations and operation list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections for operations and arguments. It is reasonably concise given the parameter count (8), though some sentences could be tighter. No filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 params, nested objects, output schema exists), the description covers all parameters, return format, and key behavioral notes (e.g., client-side search, required account_id). It omits details on output schema structure but that is acceptable as an output schema is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining each parameter: operation enum list, account_id format and usage, data dict with key fields and types, query behavior, filters, and pagination. This provides excellent guidance beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's for 'Chart of Accounts management in Wave' and lists specific operations (list, get, search, create, update, archive), providing a clear sense of purpose. However, it does not differentiate from sibling tools like 'item', 'party', etc., leaving the agent to infer context from tool names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the operations and their required parameters (e.g., account_id for get/update/archive, query for search). It implies when to use each operation but does not explicitly state when to use this tool versus its siblings, nor provide when-not or alternative suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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": "..."}.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
pageNo
queryNo
item_idNo
operationYes
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds the return format (JSON string with data or error) and implies mutation via archive, but does not elaborate on behavioral traits like side effects or permissions. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized into sections (operations, args, returns) but is somewhat verbose for a single tool description. It front-loads the purpose and operations, but some details (like default page_size) could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all major aspects: operations, parameters, return format, and key data fields. Given the presence of an output schema (not shown), this is sufficient. Minor gaps include error handling details or examples, but overall it provides a complete picture for correct tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, yet the description fully compensates by explaining each parameter's purpose, including nested data fields (name, unitPrice, etc.) and their types. This adds essential meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as managing 'Products & services in Wave' and lists specific operations (Read: list, get, search; Write: create, update, archive). This is specific and helps distinguish from sibling tools like account or transaction, though it doesn't explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context for each operation, listing required parameters (e.g., item_id for get/update/archive) and optional fields (data, query). It does not explicitly exclude use cases or name alternatives, but the structured breakdown of operations guides appropriate selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

partyA
Destructive

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": "..."}.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
pageNo
queryNo
party_idNo
operationYes
page_sizeNo
party_typeNocustomer

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint true, readOnlyHint false, which aligns with the description's mention that vendors are read-only (no create/update/delete mutations). The description adds behavioral context beyond annotations, such as the API limitation for vendors and the operation semantics. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (NOTE, Operations, Args, Returns). It is front-loaded with its purpose and every sentence adds value. It is appropriately sized for the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, nested objects, multiple operations, output schema exists), the description covers input parameters, the read-only vendor limitation, and return format. It could be more detailed on error cases or specifics of the output schema, but the presence of an output schema reduces the burden. Overall, it is quite complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by thoroughly explaining each parameter: operation (list of operations), party_type (customer/vendor), party_id (required for get/update/delete), data (dict with key fields like name, email, address structured), query (search text), page, page_size. This adds significant meaning beyond the schema's titles and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Customer and vendor management in Wave' and lists specific operations (list, get, search, create, update, delete) with differentiation between customer (full CRUD) and vendor (read-only). This provides a specific verb+resource and distinguishes from siblings by mentioning the API's limitation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use read vs write operations and notes that vendors are read-only. However, it does not explicitly compare with sibling tools (account, item, etc.) or state when not to use this tool. Still, the guidance on operation and party_type is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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": "..."}.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
pageNo
entity_idNo
operationYes
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, and description adds that write operations are only for sales taxes and returns JSON with error info. This aligns well, though it could further clarify potential side effects like archiving.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement, bullet-pointed operation lists, and a concise Args section. Every sentence adds value; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple operations) and the presence of an output schema, the description adequately covers purpose, parameters, return format, and operation categories without missing essential details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, yet the description thoroughly documents all parameters: operation with listed values, entity_id as base64 string, data dict with subfields (name, abbreviation, rate, etc.), page and page_size for list_estimates. This fully compensates for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Lookup data, settings, sales taxes, and estimates in Wave' and lists specific read and write operations. While it effectively communicates the tool's scope, it does not explicitly differentiate from sibling tools like account, item, or report, which handle specific entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description separates read and write operations and notes that write operations are limited to sales taxes. This provides clear usage context, but it lacks explicit guidance on when to choose this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reportA
Read-onlyIdempotent

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": "..."}.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=False. Description adds value by detailing the output format (JSON string with synthesized data or error) and explaining that data is synthesized from raw account/customer data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and well-structured: bold intro, context paragraph, bullet list of operations, then Args and Returns sections. Every sentence is informative with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter), annotations, and presence of output schema, the description covers purpose, operations, output format, and source limitation comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has one parameter 'operation' with no enum or description. Description compensates by listing the three valid values (business_summary, account_balances, customer_balances), adding crucial meaning for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool synthesizes financial summaries from Wave data. It lists three specific operations (business_summary, account_balances, customer_balances) and distinguishes itself from sibling tools like account, item, party, reference, transaction by focusing on reports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains that Wave has no report API, so this tool fills that gap using raw data. It provides clear context for when to use, but does not explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transactionA
Destructive

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": "..."}.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
pageNo
queryNo
entity_idNo
operationYes
page_sizeNo
entity_typeNoinvoice

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description notes BETA status for bulk_create, lists all operations (including destructive ones), and explains parameter requirements. This adds useful context about behavior and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections for entity types, operations, args, and returns. It is fairly concise given the complexity, though some redundancy could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers most aspects of the tool, including all parameters and operation-specific details. The return format is only briefly mentioned, but overall it is sufficiently complete for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by detailing each parameter, including nested fields for data, operations, and entity types. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool manages 'Invoice and money transaction management in Wave' and lists specific entity types and operations. This distinguishes it from sibling tools like 'account' or 'report'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. It lists operations but lacks context about when not to use it or how it compares to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedaccount
    • First observeditem
    • First observedparty
    • First observedreference
    • First observedreport
    • First observedtransaction

TDQS

A4/5.0

Scored across 6 tools

Disambiguation4/5

Each tool focuses on a distinct domain (accounts, items, parties, reference data, reports, transactions), making it easy for an agent to select the right tool based on context. However, the 'reference' tool aggregates many unrelated operations (business info, countries, sales taxes, estimates), which could cause confusion. Overall, ambiguity is low.

Naming Consistency3/5

Tool names are single-word nouns (account, item, party, etc.), consistent in form. However, operations within tools follow different patterns: most use standard verbs (list, get, create, update, delete), but 'reference' uses descriptive names like 'list_businesses' and 'list_currencies', and 'report' uses compound names like 'business_summary'. This mix reduces overall consistency.

Tool Count5/5

With 6 tools covering major Wave entities (accounts, products, customers, transactions, reference data, reports), the count is well-scoped for an accounting MCP server. Each tool earns its place by handling a core domain, and there are no redundant or missing high-level categories.

Completeness4/5

The tool set covers essential CRUD operations for accounts, items, customers, and transactions, plus reference lookups and synthesized reports. Notable gaps include limited vendor management (read-only), no dedicated bill/expense tool (though money transactions may cover it), and read-only estimates. The surface is mostly complete for typical accounting workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    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
    MIT
  • A
    license
    Not graded
    quality
    D
    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.
    3
    MIT
  • F
    license
    Not graded
    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.
    4
    -
  • F
    license
    B
    quality
    C
    maintenance
    A complete MCP server for Wave Accounting, providing comprehensive access to invoicing, customers, products, transactions, bills, estimates, taxes, and financial reporting.
    54
    -