MCP Server for Wave
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAVE_OP_PATH | No | 1Password secret reference to read the token, e.g. op://Vault/Item/credential (optional) | |
| WAVE_TIMEOUT_MS | No | Per-request timeout in milliseconds (optional, default 20000) | 20000 |
| WAVE_BUSINESS_ID | No | Default business ID so tools can omit business_id (optional) | |
| WAVE_ACCESS_TOKEN | Yes | OAuth2 bearer token from the Wave developer portal (required) | |
| WAVE_ALLOW_WRITES | No | Set to 1 to register the 44 tools that change or send data (optional, default off) | 0 |
| WAVE_HTTP_RETRIES | No | Number of retries on 429 and 5xx (optional, default 2) | 2 |
| WAVE_TOTAL_BUDGET_MS | No | Total time for one call including retries in milliseconds (optional, default 50000) | 50000 |
| WAVE_ACCESS_TOKEN_FILE | No | Path to a file containing the access token (optional) | |
| WAVE_MAX_RESPONSE_BYTES | No | Reject responses above this size in bytes (optional, default 8388608) | 8388608 |
| WAVE_DISABLE_AGENT_CONFIG_FALLBACK | No | Set to 1 to read only the environment, not agent config files (optional, default off) | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wave_auth_statusA | Report how this server resolved its Wave credentials and whether write tools are enabled. Makes no Wave API request, so it works even when the token is missing or expired -- use it first when other tools report authentication problems. |
| wave_get_userA | Get the Wave user account that owns the current access token. Useful for confirming which account a token authenticates as. |
| wave_list_currenciesA | List the currency codes Wave supports. Wave supports about 160 currencies, so pass search to narrow the list. |
| wave_get_currencyA | Get one currency by ISO 4217 code. |
| wave_list_countriesA | List the countries Wave supports, with each one's default currency. |
| wave_get_countryA | Get one country and its provinces or states. Use this to find the province codes that address fields expect. |
| wave_get_provinceA | Get one province or state by its code. |
| wave_list_account_typesA | List the five top-level account types in Wave's chart of accounts: ASSET, LIABILITY, EQUITY, INCOME, and EXPENSE, each with its normal balance. |
| wave_list_account_subtypesA | List account subtypes -- the value wave_create_account needs. Every account belongs to a subtype (CASH_AND_BANK, EXPENSE, INCOME, ...), which in turn determines its type. Some subtypes are system-created and cannot be used for new accounts. |
| wave_get_oauth_applicationA | Get the OAuth application that issued the current access token. |
| wave_list_businessesA | List the Wave businesses this access token can reach. Start here: every other tool needs a business ID. Pass one to wave_set_default_business so later calls can omit it. |
| wave_get_businessA | Get full detail for one business: currency, address, type, and settings. |
| wave_set_default_businessA | Set the business that later tool calls use when none is given. This is session state on the running server, not a change in Wave. Set WAVE_BUSINESS_ID in the environment to make it persist across restarts. |
| wave_get_invoice_estimate_settingsA | Get the branding applied to invoices and estimates: accent color and logo. |
| wave_list_accountsA | List the chart of accounts, with balances. Filter by type to find the account a transaction needs: EXPENSE for expense categories, INCOME for revenue, ASSET with subtype CASH_AND_BANK for bank accounts, LIABILITY with subtype CREDIT_CARD for cards. |
| wave_get_accountA | Get one account by ID, including its current balance. |
| wave_list_customersA | List customers, with each one's outstanding and overdue balance. Wave can filter by exact email only; name_contains is applied by this server after fetching, so combine it with fetch_all=true when searching a large customer list. |
| wave_get_customerA | Get one customer by ID, including address and shipping details. |
| wave_list_vendorsA | List vendors -- the suppliers a business buys from. Vendors are read-only in Wave's API: they can be listed and read but not created, changed, or deleted. Wave filters by exact email only; name_contains is applied locally, so pair it with fetch_all=true on a long vendor list. |
| wave_get_vendorA | Get one vendor by ID, including address and shipping details. |
| wave_list_productsA | List products and services. Invoice and estimate line items must reference a product, so this is the usual first step when building either one. |
| wave_get_productA | Get one product by ID, including its accounts and default sales taxes. |
| wave_list_sales_taxesA | List sales taxes, with their current rate and rate history. |
| wave_get_sales_taxA | Get one sales tax by ID, including its full rate history. |
| wave_list_invoicesA | List invoices, filtered by status, customer, date range, or amount due. To find unpaid invoices use status "UNPAID"; "OVERDUE" narrows that to ones past their due date. |
| wave_get_invoiceA | Get one invoice in full: line items, taxes, discounts, and payments. |
| wave_get_invoice_paymentA | Get one invoice payment by ID. To see every payment on an invoice, call wave_get_invoice instead: it returns them all. |
| wave_list_estimatesB | List estimates (quotes), filtered by status, customer, or date range. |
| wave_get_estimateA | Get one estimate in full: line items, deposits, and acceptance history. |
| wave_get_estimate_paymentA | Get one estimate deposit payment by ID. To see every deposit on an estimate, call wave_get_estimate with include_deposit_payments=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Wave businesses | Every Wave business this access token can reach, with IDs and currencies. |
| Chart of accounts | The default business's chart of accounts, with types, subtypes, and balances. |
| Customers | The default business's customers, with outstanding and overdue balances. |
| Vendors | The default business's vendors. Read-only: Wave's API has no vendor mutations. |
| Products and services | The default business's products. Invoice and estimate line items must reference one. |
| Sales taxes | The default business's sales taxes, with current rates and rate history. |
| Account type taxonomy | Wave's account types and subtypes -- the vocabulary wave_create_account expects. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/oliverames/wave-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server