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) |
Capabilities
Features and capabilities supported by this server
| 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 | |
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/Operamatix/zoho-books-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server