zoho-books-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZOHO_CLIENT_ID | Yes | Self Client id | |
| ZOHO_API_DOMAIN | No | Change for non-US data centers | https://www.zohoapis.com |
| ZOHO_ALLOW_DELETE | No | Set to "true" to permit DELETE operations | false |
| ZOHO_ALLOW_WRITES | No | Set to "true" to permit create/update operations | false |
| ZOHO_CLIENT_SECRET | Yes | Self Client secret | |
| ZOHO_REFRESH_TOKEN | Yes | Long-lived refresh token | |
| ZOHO_ACCOUNTS_DOMAIN | No | Change for non-US data centers | https://accounts.zoho.com |
| ZOHO_ORGANIZATION_ID | No | Organization ID (recommended, auto-added to every call) |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zoho_readA | Read any Zoho Books endpoint (GET). path is everything after /books/v3, e.g. '/invoices', '/journals/123', '/chartofaccounts', '/contacts'. organization_id is added automatically. Read-only and always available. |
| zoho_writeA | Create or update any Zoho Books resource (POST or PUT). e.g. POST /invoices, PUT /items/123. Gated by ZOHO_ALLOW_WRITES. |
| zoho_deleteB | Delete a Zoho Books resource (DELETE), e.g. /invoices/123. Disabled unless ZOHO_ALLOW_DELETE=true. |
| zoho_create_journalA | Create a manual journal entry (guarded wrapper). Refuses to post unless total debits == total credits. Gated by ZOHO_ALLOW_WRITES. |
| zoho_create_accountC | Create a GL account in the chart of accounts (guarded wrapper). Gated by ZOHO_ALLOW_WRITES. |
| zoho_categorize_bank_txnA | Categorize an uncategorized bank-feed line IN PLACE (clears the feed queue without creating a parallel transaction). Route: POST /banktransactions/uncategorized/{transaction_id}/categorize (generic types) or .../categorize/{categorize_as} (expenses|customerpayments|vendorpayments). CONVENIENCE: pass offset_account_id (the non-bank side) and the wrapper maps it to the right field — for a money-IN deposit type it becomes from_account_id (credited) with to_account_id = the bank (debited); for categorize_as=expenses it becomes account_id with paid_through_account_id = the bank. amount/date and the bank account are AUTO-DERIVED from the feed line when omitted (pass bank_account_id to make that list lookup reliable). VERIFIED: owner contribution -> transaction_type='deposit', offset_account_id=; bank fee -> categorize_as='expenses', offset_account_id=. NOTE: offset auto-mapping assumes money-IN; for money-OUT/other directions pass explicit from_account_id/to_account_id/account_id or a full body. Gated by ZOHO_ALLOW_WRITES; Zoho's response is returned verbatim on error. |
| zoho_match_bank_txnA | Match an uncategorized bank-feed line to one or more EXISTING transactions (invoices/bills/payments) rather than creating a new one. Confirmed route: POST /banktransactions/uncategorized/{transaction_id}/match. Provide transactions_to_be_matched as an array of { transaction_id, transaction_type }. Gated by ZOHO_ALLOW_WRITES; Zoho's response is returned verbatim on error. |
| zoho_attach_documentA | Attach a document (receipt / source doc) to a Zoho Books record via multipart upload — e.g. an expense receipt (path '/expenses/{id}/receipt', field 'receipt'), a bill attachment (path '/bills/{id}/attachment', field 'attachment'), or a journal attachment (path '/journals/{id}/attachment', field 'attachment'). Provide the file EITHER as file_content (base64 — for docs you hold in-context / received in chat) plus file_name (filename WITH extension, e.g. 'invoice.pdf'; Zoho detects the type from it), OR as file_path (a file on the server host). Allowed types: gif, png, jpeg, jpg, bmp, pdf, xls, xlsx, doc, docx. Gated by ZOHO_ALLOW_WRITES. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool has a unique purpose: document attachment, bank transaction categorization/ matching, account creation, journal entry creation, resource deletion, generic read, and generic write. No two tools overlap in functionality.
All tools follow a consistent verb_noun pattern with lowercase snake_case (e.g., attach_document, create_account). The prefix 'zoho_' unifies them, and verbs like read/write are single-word but fit the pattern.
8 tools is well-scoped for an accounting server: it provides both generic CRUD (read/write/delete) and specialized operations (categorize/match bank transactions, attach documents, create accounts/journals).
The generic read/write tools cover most CRUD operations, and specific tools handle key accounting workflows. Missing explicit tools for invoices or contacts, but those can be accessed via the generic endpoints. Minor gap.