zoho-bookkeeper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP server host (default: 0.0.0.0). | |
| PORT | No | HTTP server port (default: 8004). | |
| ZOHO_API_URL | No | Regional API URL (default: https://www.zohoapis.com/books/v3). Options: US, EU, IN, AU. | |
| ZOHO_CLIENT_ID | Yes | Zoho OAuth client ID from Zoho API Console. | |
| ZOHO_CLIENT_SECRET | Yes | Zoho OAuth client secret from Zoho API Console. | |
| ZOHO_REFRESH_TOKEN | Yes | Zoho OAuth refresh token with scope ZohoBooks.fullaccess.all. | |
| ZOHO_ORGANIZATION_ID | No | Default Zoho Books organization ID (optional). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_organizationsA | List all Zoho organizations the user has access to. Use this tool first to get organization_id for all other tools. Returns organization name, ID, currency, and timezone. |
| get_organizationA | Get detailed information about a specific organization. Returns full organization details including address, contact info, and settings. |
| list_accountsA | List all accounts in the chart of accounts. Supports filtering by account type (e.g., income, expense, asset, liability, equity). Use this to find account_id values for journal entries and transactions. |
| get_accountA | Get detailed information about a specific account. Returns account details including balance, currency, and parent account info. |
| create_accountA | Create a new account in the chart of accounts. Account types: income, expense, cost_of_goods_sold, other_income, other_expense, asset (bank, other_current_asset, fixed_asset, other_asset, cash, accounts_receivable), liability (other_current_liability, credit_card, long_term_liability, other_liability, accounts_payable), equity (equity, retained_earnings). |
| list_account_transactionsA | List transactions for a specific account. Returns all transactions (journals, invoices, bills, etc.) affecting this account. Useful for account reconciliation and analysis. |
| list_journalsA | List all manual journal entries. Returns journal entries with date, reference number, and total. Use date filters to narrow down results. |
| get_journalA | Get detailed information about a specific journal entry. Returns full journal details including all line items. |
| create_journalA | Create a new manual journal entry. Line items must balance (total debits = total credits). Use list_accounts to find valid account_id values. |
| update_journalA | Update an existing journal entry. Can update date, reference, notes, and line items. Line items must still balance after update. |
| delete_journalA | Delete a journal entry. This action cannot be undone. The journal will be permanently removed. |
| publish_journalA | Publish (mark as posted) a draft journal entry. Published journals are finalized and affect account balances. |
| add_journal_attachmentA | Upload a file attachment to a journal entry. Supported file types: PDF, PNG, JPG, JPEG, GIF, DOC, DOCX, XLS, XLSX. Use this to attach invoices, receipts, or supporting documents to journal entries. Files must be in allowed directories and under 10MB. |
| get_journal_attachmentA | Get attachment information for a journal entry. Returns details about any files attached to the journal. |
| delete_journal_attachmentA | Delete attachment from a journal entry. Removes the file association from the journal. |
| list_expensesB | List all expenses. Supports filtering by date, status, and customer. Returns expense details with account, amount, and vendor info. |
| get_expenseA | Get detailed information about a specific expense. Returns full expense details including account, vendor, and billable status. |
| create_expenseA | Create a new expense record. Requires account_id (expense account) and paid_through_account_id (payment account). Use list_accounts to find valid account IDs. |
| add_expense_receiptA | Upload a receipt attachment to an expense. Supported file types: PDF, PNG, JPG, JPEG, GIF, DOC, DOCX, XLS, XLSX. Use this to attach scanned receipts or invoice images. Files must be in allowed directories and under 10MB. |
| get_expense_receiptA | Get receipt/attachment information for an expense. Returns details about any files attached to the expense. |
| delete_expense_receiptA | Delete receipt/attachment from an expense. Removes the file association from the expense. |
| list_billsA | List all bills (accounts payable). Supports filtering by date, vendor, and status. Returns bill details with vendor, amount, and due date. |
| get_billA | Get detailed information about a specific bill. Returns full bill details including line items and vendor info. |
| create_billA | Create a new bill (accounts payable). Use list_contacts to find vendor_id values. Use list_accounts to find account_id values for line items. |
| add_bill_attachmentA | Upload a file attachment to a bill. Supported file types: PDF, PNG, JPG, JPEG, GIF, DOC, DOCX, XLS, XLSX. Use this to attach vendor invoices or supporting documents. |
| get_bill_attachmentA | Get attachment information for a bill. Returns details about any files attached to the bill. |
| delete_bill_attachmentC | Delete attachment from a bill. Removes the file association from the bill. |
| list_invoicesA | List all customer invoices (accounts receivable). Supports filtering by date, customer, and status. Returns invoice details with customer, amount, and due date. |
| get_invoiceA | Get detailed information about a specific invoice. Returns full invoice details including line items and customer info. |
| add_invoice_attachmentA | Upload a file attachment to an invoice. Supported file types: PDF, PNG, JPG, JPEG, GIF, DOC, DOCX, XLS, XLSX. Use this to attach supporting documents to invoices. |
| get_invoice_attachmentA | Get attachment information for an invoice. Returns details about any files attached to the invoice. |
| delete_invoice_attachmentA | Delete attachment from an invoice. Removes the file association from the invoice. |
| list_contactsA | List all contacts (customers and vendors). Supports filtering by contact type (customer or vendor). Use this to find contact_id values for bills, invoices, and expenses. |
| get_contactA | Get detailed information about a specific contact. Returns full contact details including payment terms and currency settings. |
| list_vendorsA | List vendor contacts only. Use this to find vendor_id values for expenses, bills, and vendor-payment bank categorization workflows. |
| get_vendorA | Get detailed information about a specific vendor. Use this to confirm a vendor_id before creating expenses, bills, or vendor-payment categorizations. |
| create_vendorA | Create a new vendor contact. Use this when expense, bill, or vendor-payment workflows need a vendor_id that does not exist yet in Zoho Books. |
| update_vendorA | Update an existing vendor contact. Use this to correct or enrich vendor details needed for expenses, bills, and vendor-payment workflows. |
| list_bank_accountsA | List all bank accounts in Zoho Books. Returns bank account details with name, type, and balance. These are the accounts linked in Zoho Books, not live bank data. |
| get_bank_accountA | Get detailed information about a specific bank account. Returns full bank account details including routing number and balance. |
| list_bank_transactionsA | List bank transactions in Zoho Books. Returns transactions recorded in Zoho Books for bank reconciliation. These are transactions imported/entered in Zoho, not live bank feeds. Bank transaction status is a reconciliation status and is separate from journal creation. |
| get_bank_transaction_matchesA | Get candidate Zoho transactions that can be matched to an uncategorized bank transaction. Use this before match_bank_transaction to inspect possible matches. Zoho may return direct bank transactions and also invoices, bills, or credit notes that can be reconciled via derived payment/refund entries. |
| match_bank_transactionA | Match an uncategorized bank transaction to one or more existing Zoho transactions. Use get_bank_transaction_matches first to inspect candidates. This updates bank reconciliation status; creating a journal alone does not mark imported bank transactions as matched. |
| unmatch_bank_transactionA | Unmatch a previously matched bank transaction and return it to uncategorized status. Use this when the wrong Zoho transaction was reconciled to a statement line. |
| categorize_bank_transaction_genericA | Categorize an uncategorized bank transaction into a general Zoho bank transaction. Use this for deposits, transfers, owner contributions/drawings, interest income, other income, sales without invoices, expense refunds, sales returns, and similar bank-native bookkeeping flows. Prefer matching or expense/vendor/customer payment categorization when those are a better fit than a generic bank transaction. |
| categorize_bank_transaction_as_expenseA | Categorize an uncategorized bank transaction as an expense. Use this for routine spending that should become a new expense record. Prefer matching when the bank line should be linked to an existing Zoho transaction, and use manual journals only for exception cases that cannot be matched or categorized cleanly. |
| categorize_bank_transaction_as_vendor_paymentA | Categorize an uncategorized bank transaction as a vendor payment. Use this when the bank line represents payment of one or more vendor bills. Prefer matching when the bank line should be linked to an existing Zoho transaction, and use manual journals only for exception cases that cannot be matched or categorized cleanly. |
| categorize_bank_transaction_as_customer_paymentA | Categorize an uncategorized bank transaction as a customer payment. Use this when the bank line represents receipt of payment for one or more invoices. Prefer matching when the bank line should be linked to an existing Zoho transaction, and use manual journals only for exception cases that cannot be matched or categorized cleanly. |
| uncategorize_bank_transactionA | Uncategorize a previously categorized bank transaction and return it to uncategorized status. Use this to reverse an incorrect categorization and reprocess the bank line correctly. After uncategorizing, decide whether the bank line should be matched to an existing Zoho transaction, recategorized, or handled with a manual journal only in exception cases. |
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
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/bu5hm4nn/zoho-bookkeeper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server