Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Zoho Books in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work in Zoho Books: look up and manage customers, vendors and items, create, email, mark as sent and void invoices, create estimates, record customer payments, bills and expenses, and read the chart of accounts, account ledgers and bank transactions. Any Zoho data center, Zoho OAuth sign-in.
Try asking
Example prompts for Zoho Books
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Zoho Books, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Zoho Books + Cursor
Let your AI work in Zoho Books: look up and manage customers, vendors and items, create, email, mark as sent and void invoices, create estimates, record customer payments, bills and expenses, and read the chart of accounts, account ledgers and bank transactions. Any Zoho data center, Zoho OAuth sign-in.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
ZOHO_BOOKS_CLIENT_ID, ZOHO_BOOKS_CLIENT_SECRET, ZOHO_BOOKS_ORGANIZATION_ID, ZOHO_BOOKS_ACCOUNTS_URL, ZOHO_BOOKS_API_URL
Step 1 — Get credentials
- Find your Zoho data center: it shows in the address bar when you use Zoho Books (for example books.zoho.eu or books.zoho.com). Set
ZOHO_BOOKS_ACCOUNTS_URLandZOHO_BOOKS_API_URLto that data center, without a trailing slash:https://accounts.zoho.euandhttps://www.zohoapis.eufor the EU,https://accounts.zoho.comandhttps://www.zohoapis.comfor the US. India, Australia, Japan, Saudi Arabia, the UAE and China follow the same pattern (.in,.com.au,.jp,.sa,.ae,.com.cn); Canada useshttps://accounts.zohocloud.caandhttps://www.zohoapis.ca. - Open the Zoho API Console at api-console.zoho.com, signed in with your Zoho account, and choose Add Client → Server-based Applications.
- Give the client a name (for example AnythingMCP), your company site as homepage URL and
https://cloud.anythingmcp.com/api/mcp-oauth/callbackas Authorized Redirect URI. If you host AnythingMCP yourself, enterhttps://your-anythingmcp-host/api/mcp-oauth/callbackinstead. Create the client. - On the Client Secret tab, copy the Client ID (it starts with
1000.) and the Client Secret intoZOHO_BOOKS_CLIENT_IDandZOHO_BOOKS_CLIENT_SECRET. If your Books organization lives in another data center than the one the console opened in, enable that data center on the client's Settings tab (Multi-DC) and use the client secret shown there for it. - Find the organization ID: in Zoho Books, click the organization name (top right) and open Manage Organizations; the ID is shown next to each organization. Paste the digits into
ZOHO_BOOKS_ORGANIZATION_ID. One connector works with one organization; install it again for a second one. - Install the connector, click Authorize with Provider on the connector page, sign in to Zoho and approve the requested access.
- Run
zoho_books_list_organizationsand check that your organization ID is listed, thenzoho_books_get_organizationto confirm the name and base currency before the AI reads or writes anything.
Staying signed in: access tokens last an hour and are renewed automatically with the stored refresh token, which does not expire unless it is revoked. Zoho keeps at most 20 refresh tokens per user and client: authorizing the same client a 21st time, in AnythingMCP or elsewhere, silently revokes the oldest one. If the connector loses its sign-in, click Authorize with Provider again.
Permissions and read-only setup: the connector asks for ZohoBooks.settings.ALL, ZohoBooks.contacts.ALL, ZohoBooks.invoices.ALL, ZohoBooks.estimates.ALL, ZohoBooks.customerpayments.ALL, ZohoBooks.bills.ALL, ZohoBooks.expenses.ALL, ZohoBooks.accountants.READ, ZohoBooks.banking.READ. Items, taxes and organization settings fall under ZohoBooks.settings, the chart of accounts under ZohoBooks.accountants. It works as the Zoho user who authorized it, within that user's role. For a read-only setup, change every .ALL to .READ in the connector's OAuth settings, authorize again and switch off zoho_books_create_contact, zoho_books_update_contact, zoho_books_mark_contact_inactive, zoho_books_create_item, zoho_books_update_item, zoho_books_mark_item_inactive, zoho_books_create_invoice, zoho_books_email_invoice, zoho_books_mark_invoice_sent, zoho_books_void_invoice, zoho_books_mark_invoice_draft, zoho_books_create_estimate, zoho_books_create_customer_payment, zoho_books_create_bill and zoho_books_create_expense.
Switched off at install: the delete tools zoho_books_delete_contact, zoho_books_delete_invoice, zoho_books_delete_estimate, zoho_books_delete_customer_payment, zoho_books_delete_bill and zoho_books_delete_expense. A deleted record cannot be restored, so turn one on only if the AI should really delete that kind of record.
Writes are real: zoho_books_email_invoice emails the customer from your organization, zoho_books_mark_invoice_sent and zoho_books_void_invoice change the books, and zoho_books_create_customer_payment, zoho_books_create_bill and zoho_books_create_expense post to the ledger. The AI says what it is about to book or send and waits for your yes. Recording a customer payment is bookkeeping only: no money is collected.
Invoices and corrections: a new invoice is a draft numbered by your organization's auto-numbering, and it is only emailed if you ask for it to go out at once. Zoho refuses to delete a sent invoice: void it with zoho_books_void_invoice instead. A void invoice stays on record, as bookkeeping rules such as Germany's GoBD expect, and zoho_books_mark_invoice_draft turns it back into an editable draft to correct and reissue.
Totals and balances: Zoho does not document a reports API for Books. For totals the AI reads balances from the chart of accounts, the bookings of one account with zoho_books_list_account_transactions, or lists filtered by date.
Limits: 100 requests per minute per organization and, per day, 1,000 on Free, 2,000 on Standard, 5,000 on Professional and 10,000 on Premium and above. Over a limit Zoho answers 429 (code 44 per minute, 45 per day): wait a minute, or until the next day.
Common errors: invalid_client at sign-in or an empty organization list means the two URLs are not your data center. 401 code 57 ("You are not authorized to perform this operation") or invalid_oauthtoken means the sign-in lacks a scope, was revoked, or ZOHO_BOOKS_API_URL is the wrong data center: check both URLs, then click Authorize with Provider again. 400 or 404 naming the organization means ZOHO_BOOKS_ORGANIZATION_ID is wrong or not visible to this user: compare it with zoho_books_list_organizations. Other 400 errors name the field (a duplicate name, an invalid value, a missing required field). Code 4529 means a sent invoice cannot be deleted: void it. Code 3000 when deleting a contact means invoices or payments still refer to it: use zoho_books_mark_contact_inactive.
The connector does not handle sales orders, purchase orders, credit notes, vendor payments, journals, projects, recurring invoices, attachments or PDFs.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Cursor
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Cursor reads MCP servers from ~/.cursor/mcp.json. Add this entry:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart Cursor.
- Open Cursor → Settings → MCP and check that
anythingmcpis listed and connected. - Start chatting: the agent can now call the
Zoho Bookstools.
Available tools
| Tool | What it does |
|---|---|
zoho_books_list_organizations | List the Zoho Books organizations this sign-in can reach: organization_id, name, country, currency, time zone and whether it is the default |
zoho_books_get_organization | Read the connected organization: name, address, base currency, fiscal year start, time zone, tax settings and contact details |
zoho_books_list_contacts | List contacts (customers and vendors) with contact_id, name, company, email, status and outstanding receivables or payables |
zoho_books_get_contact | Read one contact with addresses, contact persons, payment terms, currency, balances and custom fields |
zoho_books_create_contact | Create a customer or vendor |
zoho_books_update_contact | Update a contact |
zoho_books_mark_contact_inactive | Mark a contact inactive: it stays in the books but is hidden from lists and cannot be used on new transactions |
zoho_books_delete_contact | Delete a contact for good |
zoho_books_list_items | List items (products and services) with item_id, name, SKU, rate, unit, tax and status |
zoho_books_get_item | Read one item with selling and purchase prices, accounts, tax, unit and stock details |
zoho_books_create_item | Create an item (product or service) |
zoho_books_update_item | Update an item |
zoho_books_mark_item_inactive | Mark an item inactive so it can no longer be added to new documents |
zoho_books_list_invoices | List invoices with invoice_id, number, customer, status, date, due date, total and balance |
zoho_books_get_invoice | Read one invoice with line items, taxes, totals, balance, payments, customer and status |
zoho_books_create_invoice | Create an invoice (a draft, unless send is true, which also emails it to the customer: confirm that with the user first) |
zoho_books_email_invoice | Email an invoice to the customer from the organization, with the invoice attached |
zoho_books_mark_invoice_sent | Mark a draft invoice as sent without emailing it (for invoices delivered another way) |
zoho_books_void_invoice | Void an invoice: it stays on record with status void but no longer counts as receivable or revenue |
zoho_books_mark_invoice_draft | Turn a void invoice back into a draft, for example to correct and reissue it |
zoho_books_delete_invoice | Delete an invoice for good: only a draft without recorded payments |
zoho_books_list_estimates | List estimates (quotes) with estimate_id, number, customer, status, date, expiry date and total |
zoho_books_get_estimate | Read one estimate with line items, taxes, totals and status |
zoho_books_create_estimate | Create an estimate (quote) as a draft |
zoho_books_delete_estimate | Delete an estimate (quote) for good; it cannot be restored |
zoho_books_list_customer_payments | List payments received from customers with payment_id, customer, date, amount, payment mode and the invoices they paid |
zoho_books_get_customer_payment | Read one customer payment with the invoices it was applied to |
zoho_books_create_customer_payment | Record a payment received from a customer and apply it to invoices (bookkeeping only; no money is collected) |
zoho_books_delete_customer_payment | Delete a recorded customer payment; the invoices become unpaid again |
zoho_books_list_bills | List bills (vendor invoices) with bill_id, number, vendor, status, date, due date, total and balance |
zoho_books_get_bill | Read one bill with line items, accounts, taxes, totals, balance and payments |
zoho_books_create_bill | Record a bill received from a vendor (it posts to the ledger as payable) |
zoho_books_delete_bill | Delete a bill for good (only without recorded payments) |
zoho_books_list_expenses | List expenses with expense_id, date, account, amount, vendor, customer and status (billable, invoiced, ...) |
zoho_books_get_expense | Read one expense with account, paid-through account, tax, vendor, customer and receipts |
zoho_books_create_expense | Record an expense paid from a bank, cash or credit card account (it posts to the ledger) |
zoho_books_delete_expense | Delete an expense for good; its ledger postings are removed |
zoho_books_list_chart_of_accounts | List the chart of accounts: account_id, name, code, type (asset, liability, equity, income, expense, bank, cash, ...), active flag and… |
zoho_books_get_account | Read one account of the chart of accounts: name, code, type, currency, description and balance |
zoho_books_list_account_transactions | List the transactions booked on one account (invoices, payments, bills, expenses, journals) with date, debit, credit and reference: a… |
zoho_books_list_bank_accounts | List bank, cash and credit card accounts with account_id, name, type, currency, balance and bank name |
zoho_books_get_bank_account | Read one bank or credit card account with balance and bank details |
zoho_books_list_bank_transactions | List bank transactions (deposits, withdrawals, transfers and feed lines) with date, amount, type, status (categorized, uncategorized… |
zoho_books_get_bank_transaction | Read one bank transaction with its accounts, amounts and the documents it is matched to |
zoho_books_list_taxes | List the organization's taxes and tax groups with tax_id, name, percentage and type, for line items and expenses |
Example prompts
- "Which invoices are overdue, and how much does each customer still owe?"
- "Show me the balance of our Office Supplies expense account and every booking on it in September."
- "Create a draft invoice for Acme Ltd: 12 hours of Consulting at 95 EUR, due in 14 days. Don't send it yet."
- "Record today's bank transfer of 1,140 EUR from Acme Ltd as a payment against invoice INV-000123."
FAQ
Does Cursor support custom MCP servers on the free tier? Yes, MCP is available on Hobby, Pro and Business plans.
Next steps
Was this guide helpful?