How to integrate Zoho books MCP with LlamaIndex

This guide walks you through connecting Zoho books to LlamaIndex using the Composio tool router. By the end, you'll have a working Zoho books agent that can list unpaid invoices for this month, create a new expense entry today, send payment reminder to a client through natural language commands. This guide will help you understand how to give your LlamaIndex agent real control over a Zoho books account through Composio's Zoho books MCP server. Before we dive in, let's take a quick look at the key ideas and tools involved.

Zoho books logoZoho books
Oauth2

Zoho Books is a cloud-based accounting platform for invoicing, expenses, and finance management. It streamlines collaboration and automates business finances in real-time.

265 Tools

Introduction

This guide walks you through connecting Zoho books to LlamaIndex using the Composio tool router. By the end, you'll have a working Zoho books agent that can list unpaid invoices for this month, create a new expense entry today, send payment reminder to a client through natural language commands.

This guide will help you understand how to give your LlamaIndex agent real control over a Zoho books account through Composio's Zoho books MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate Zoho books with

TL;DR

Here's what you'll learn:
  • Set your OpenAI and Composio API keys
  • Install LlamaIndex and Composio packages
  • Create a Composio Tool Router session for Zoho books
  • Connect LlamaIndex to the Zoho books MCP server
  • Build a Zoho books-powered agent using LlamaIndex
  • Interact with Zoho books through natural language

What is LlamaIndex?

LlamaIndex is a data framework for building LLM applications. It provides tools for connecting LLMs to external data sources and services through agents and tools.

Key features include:

  • ReAct Agent: Reasoning and acting pattern for tool-using agents
  • MCP Tools: Native support for Model Context Protocol
  • Context Management: Maintain conversation context across interactions
  • Async Support: Built for async/await patterns

What is the Zoho books MCP server, and what's possible with it?

The Zoho Books MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Zoho Books account. It provides structured and secure access to your accounting data, so your agent can perform actions like managing invoices, tracking expenses, creating customers, reconciling transactions, and generating financial reports on your behalf.

  • Automated invoice management: Ask your agent to create, send, update, or retrieve invoices, helping you streamline your billing process and get paid faster.
  • Expense and transaction tracking: Let your agent record new expenses, categorize transactions, or pull detailed expense reports to keep your books up to date without manual entry.
  • Customer and vendor management: Have your agent add new customers or vendors, update their details, and fetch account histories to support your business relationships.
  • Bank reconciliation and payment handling: Enable your agent to match bank transactions, record payments, and reconcile accounts, giving you an accurate financial overview at any time.
  • Financial reporting and insights: Generate real-time financial statements, analyze cash flow, or pull profit and loss reports—so you always know where your business stands.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step10 STEPS
1

Prerequisites

Before you begin, make sure you have:
  • Python 3.8/Node 16 or higher installed
  • A Composio account with the API key
  • An OpenAI API key
  • A Zoho books account and project
  • Basic familiarity with async Python/Typescript
2

Getting API Keys for OpenAI, Composio, and Zoho books

OpenAI API key (OPENAI_API_KEY)
  • Go to the OpenAI dashboard
  • Create an API key if you don't have one
  • Assign it to OPENAI_API_KEY in .env
Composio API key and user ID
  • Log into the Composio dashboard
  • Copy your API key from Settings
    • Use this as COMPOSIO_API_KEY
  • Pick a stable user identifier (email or ID)
    • Use this as COMPOSIO_USER_ID
3

Installing dependencies

npm install @composio/llamaindex @llamaindex/openai @llamaindex/tools @llamaindex/workflow dotenv

Create a new Typescript project and install the necessary dependencies:

  • @composio/llamaindex: Composio's LlamaIndex integration
  • @llamaindex/openai: OpenAI LLM integration
  • @llamaindex/tools: MCP client for LlamaIndex
  • @llamaindex/workflow: Workflow framework for LlamaIndex
  • dotenv: Environment variable management
4

Set environment variables

bash
OPENAI_API_KEY=your-openai-api-key
COMPOSIO_API_KEY=your-composio-api-key
COMPOSIO_USER_ID=your-user-id

Create a .env file in your project root:

These credentials will be used to:

  • Authenticate with OpenAI's GPT-5 model
  • Connect to Composio's Tool Router
  • Identify your Composio user session for Zoho books access
5

Import modules

import "dotenv/config";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";

import { Composio } from "@composio/core";

import { mcp } from "@llamaindex/tools";
import { agent as createAgent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";

dotenv.config();

Create a new file called zoho books_llamaindex_agent.ts and import the required modules:

Key imports:

  • dotenv.config loads .env at runtime
  • readline gives us a simple CLI chat loop
  • Composio is the main Composio SDK client
  • mcp connects to an MCP endpoint
  • createAgent builds a LlamaIndex agent
  • openai configures the LLM backend
6

Load environment variables and initialize Composio

const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY;
const COMPOSIO_USER_ID = process.env.COMPOSIO_USER_ID;

if (!OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!COMPOSIO_API_KEY) throw new Error("COMPOSIO_API_KEY is not set");
if (!COMPOSIO_USER_ID) throw new Error("COMPOSIO_USER_ID is not set");

What's happening:

This ensures missing credentials cause early, clear errors before the agent attempts to initialise.

7

Create a Tool Router session and build the agent function

async function buildAgent() {

  console.log(`Initializing Composio client...${COMPOSIO_USER_ID!}...`);
  console.log(`COMPOSIO_USER_ID: ${COMPOSIO_USER_ID!}...`);

  const composio = new Composio({
    apiKey: COMPOSIO_API_KEY,
    provider: new LlamaindexProvider(),
  });

  const session = await composio.create(
    COMPOSIO_USER_ID!,
    {
      toolkits: ["zoho_books"],
    },
  );

  const mcpUrl = session.mcp.url;
  console.log(`Composio Tool Router MCP URL: ${mcpUrl}`);

  const server = mcp({
    url: mcpUrl,
    clientName: "composio_tool_router_with_llamaindex",
    requestInit: {
      headers: {
        "x-api-key": COMPOSIO_API_KEY!,
      },
    },
    // verbose: true,
  });

  const tools = await server.tools();

  const llm = openai({ apiKey: OPENAI_API_KEY, model: "gpt-5" });

  const agent = createAgent({
    name: "composio_tool_router_with_llamaindex",
        description : "An agent that uses Composio Tool Router MCP tools to perform actions.",
    systemPrompt:
      "You are a helpful assistant connected to Composio Tool Router."+
"Use the available tools to answer user queries and perform Zoho books actions." ,
    llm,
    tools,
  });

  return agent;
}

What's happening here:

  • We create a Composio client using your API key and configure it with the LlamaIndex provider
  • We then create a tool router MCP session for your user, specifying the toolkits we want to use (in this case, zoho books)
  • The session returns an MCP HTTP endpoint URL that acts as a gateway to all your configured tools
  • LlamaIndex will connect to this endpoint to dynamically discover and use the available Zoho books tools.
  • The MCP tools are mapped to LlamaIndex-compatible tools and plug them into the Agent.
8

Create an interactive chat loop

async function chatLoop(agent: ReturnType<typeof createAgent>) {
  const rl = readline.createInterface({ input, output });

  console.log("Type 'quit' or 'exit' to stop.");

  while (true) {
    let userInput: string;

    try {
      userInput = (await rl.question("\nYou: ")).trim();
    } catch {
      console.log("\nAgent: Bye!");
      break;
    }

    if (!userInput) {
      continue;
    }

    const lower = userInput.toLowerCase();
    if (lower === "quit" || lower === "exit") {
      console.log("Agent: Bye!");
      break;
    }

    try {
      process.stdout.write("Agent: ");

      const stream = agent.runStream(userInput);
      let finalResult: any = null;

      for await (const event of stream) {
        // The event.data contains the streamed content
        const data: any = event.data;

        // Check for streaming delta content
        if (data?.delta) {
          process.stdout.write(data.delta);
        }

        // Store final result for fallback
        if (data?.result || data?.message) {
          finalResult = data;
        }
      }

      // If no streaming happened, show the final result
      if (finalResult) {
        const answer =
          finalResult.result ??
          finalResult.message?.content ??
          finalResult.message ??
          "";
        if (answer && typeof answer === "string" && !answer.includes("[object")) {
          process.stdout.write(answer);
        }
      }

      console.log(); // New line after streaming completes
    } catch (err: any) {
      console.error("\nAgent error:", err?.message ?? err);
    }
  }

  rl.close();
}

What's happening:

  • We're creating a direct terminal interface to chat with Zoho books
  • The LLM's responses are streamed to the CLI for faster interaction.
  • The agent uses context to maintain conversation history
  • The agent processes the request, selects appropriate Zoho books tools, and returns a result
  • We extract the answer from the result data structure and display it to the user
  • You can type 'quit' or 'exit' to stop the chat loop gracefully
  • Agent responses and any errors are streamed in a clear, readable format
9

Define the main entry point

async function main() {
  try {
    const agent = await buildAgent();
    await chatLoop(agent);
  } catch (err) {
    console.error("Failed to start agent:", err);
    process.exit(1);
  }
}

main();

What's happening here:

  • We're orchestrating the entire application flow
  • The agent gets built with proper error handling
  • Then we kick off the interactive chat loop so you can start talking to Zoho books
10

Run the agent

npx ts-node llamaindex-agent.ts

When prompted, authenticate and authorise your agent with Zoho books, then start asking questions.

Complete Code

Here's the complete code to get you started with Zoho books and LlamaIndex:

import "dotenv/config";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";

import { Composio } from "@composio/core";
import { LlamaindexProvider } from "@composio/llamaindex";

import { mcp } from "@llamaindex/tools";
import { agent as createAgent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";

dotenv.config();

const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY;
const COMPOSIO_USER_ID = process.env.COMPOSIO_USER_ID;

if (!OPENAI_API_KEY) {
    throw new Error("OPENAI_API_KEY is not set in the environment");
  }
if (!COMPOSIO_API_KEY) {
    throw new Error("COMPOSIO_API_KEY is not set in the environment");
  }
if (!COMPOSIO_USER_ID) {
    throw new Error("COMPOSIO_USER_ID is not set in the environment");
  }

async function buildAgent() {

  console.log(`Initializing Composio client...${COMPOSIO_USER_ID!}...`);
  console.log(`COMPOSIO_USER_ID: ${COMPOSIO_USER_ID!}...`);

  const composio = new Composio({
    apiKey: COMPOSIO_API_KEY,
    provider: new LlamaindexProvider(),
  });

  const session = await composio.create(
    COMPOSIO_USER_ID!,
    {
      toolkits: ["zoho_books"],
    },
  );

  const mcpUrl = session.mcp.url;
  console.log(`Composio Tool Router MCP URL: ${mcpUrl}`);

  const server = mcp({
    url: mcpUrl,
    clientName: "composio_tool_router_with_llamaindex",
    requestInit: {
      headers: {
        "x-api-key": COMPOSIO_API_KEY!,
      },
    },
    // verbose: true,
  });

  const tools = await server.tools();

  const llm = openai({ apiKey: OPENAI_API_KEY, model: "gpt-5" });

  const agent = createAgent({
    name: "composio_tool_router_with_llamaindex",
    description:
      "An agent that uses Composio Tool Router MCP tools to perform actions.",
    systemPrompt:
      "You are a helpful assistant connected to Composio Tool Router."+
"Use the available tools to answer user queries and perform Zoho books actions." ,
    llm,
    tools,
  });

  return agent;
}

async function chatLoop(agent: ReturnType<typeof createAgent>) {
  const rl = readline.createInterface({ input, output });

  console.log("Type 'quit' or 'exit' to stop.");

  while (true) {
    let userInput: string;

    try {
      userInput = (await rl.question("\nYou: ")).trim();
    } catch {
      console.log("\nAgent: Bye!");
      break;
    }

    if (!userInput) {
      continue;
    }

    const lower = userInput.toLowerCase();
    if (lower === "quit" || lower === "exit") {
      console.log("Agent: Bye!");
      break;
    }

    try {
      process.stdout.write("Agent: ");

      const stream = agent.runStream(userInput);
      let finalResult: any = null;

      for await (const event of stream) {
        // The event.data contains the streamed content
        const data: any = event.data;

        // Check for streaming delta content
        if (data?.delta) {
          process.stdout.write(data.delta);
        }

        // Store final result for fallback
        if (data?.result || data?.message) {
          finalResult = data;
        }
      }

      // If no streaming happened, show the final result
      if (finalResult) {
        const answer =
          finalResult.result ??
          finalResult.message?.content ??
          finalResult.message ??
          "";
        if (answer && typeof answer === "string" && !answer.includes("[object")) {
          process.stdout.write(answer);
        }
      }

      console.log(); // New line after streaming completes
    } catch (err: any) {
      console.error("\nAgent error:", err?.message ?? err);
    }
  }

  rl.close();
}

async function main() {
  try {
    const agent = await buildAgent();
    await chatLoop(agent);
  } catch (err: any) {
    console.error("Failed to start agent:", err?.message ?? err);
    process.exit(1);
  }
}

main();

Conclusion

You've successfully connected Zoho books to LlamaIndex through Composio's Tool Router MCP layer. Key takeaways:
  • Tool Router dynamically exposes Zoho books tools through an MCP endpoint
  • LlamaIndex's ReActAgent handles reasoning and orchestration; Composio handles integrations
  • The agent becomes more capable without increasing prompt size
  • Async Python provides clean, efficient execution of agent workflows
You can easily extend this to other toolkits like Gmail, Notion, Stripe, GitHub, and more by adding them to the toolkits parameter.
TOOLS

Supported Tools

Every Zoho books action and event your agent gets out of the box.

Accept Estimate

Tool to mark an estimate as accepted.

Activate Bank Account

Tool to activate a bank account.

Add Bill Attachment

Tool to add an attachment to an existing bill in Zoho Books.

Add Bill Comment

Tool to add a comment to a bill in Zoho Books.

Add Contact Address

Tool to add an additional address to a contact in Zoho Books.

Add Invoice Comment

Tool to add a comment to an invoice.

Add Project Comment

Tool to add a comment to a project.

Add Purchase Order Comment

Tool to add a comment to a purchase order in Zoho Books.

Add Sales Order Comment

Tool to add a comment to a sales order in Zoho Books.

Add Vendor Credit Comment

Tool to add a comment to a vendor credit.

Apply Credit Note to Invoice

Tool to apply a credit note to one or more invoices in Zoho Books.

Apply Credits to Bill

Tool to apply vendor credits to a bill in Zoho Books.

Apply Credits to Invoice

Tool to apply credit notes to an invoice in Zoho Books.

Bulk Export Invoices PDF

Tool to export multiple invoices to a single PDF.

Bulk Print Invoices

Tool to bulk print up to 25 invoices as a single PDF.

Categorize As Customer Payment Refund

Tool to categorize an uncategorized bank transaction as a customer payment refund.

Categorize Uncategorized Transaction

Tool to categorize an uncategorized bank transaction.

Clone Project

Tool to clone an existing project.

Convert Purchase Order To Bill

Tool to retrieve bill data from purchase orders for conversion.

Create Bank Account

Tool to create a bank or credit card account.

Create Bank Transaction

Tool to create a manual bank transaction.

Create Chart Of Account

Tool to create a new chart of account in Zoho Books.

Create Contact

Tool to create a new contact in Zoho Books.

Create Contact Person

Tool to create a new contact person for an existing contact in Zoho Books.

Create Currency

Tool to create a new currency for an organization.

Create Customer Payment Refund

Tool to refund an excess customer payment.

Create Employee

Tool to create a new employee in Zoho Books.

Create Exchange Rate

Tool to create a new exchange rate for a currency.

Create Expense

Tool to create a new expense in Zoho Books.

Create Invoice From Sales Order

Tool to create an instant invoice from an existing sales order.

Create Item

Tool to create a new item (product or service).

Create Journal

Tool to create a journal entry in Zoho Books.

Create Location

Tool to create a new location in Zoho Books.

Create Project

Tool to create a project in Zoho Books.

Create Recurring Bill

Tool to create a recurring bill in Zoho Books.

Create Recurring Expense

Tool to create a new recurring expense in Zoho Books.

Create Recurring Invoice

Tool to create a recurring invoice.

Create Reporting Tag

Tool to create a new reporting tag in Zoho Books.

Create Bank Account Rule

Tool to create a rule for automatic transaction categorization.

Create Sales Receipt

Tool to create a sales receipt in Zoho Books.

Create Time Entry

Tool to create a new time entry for a project task.

Create User

Tool to create a new user in Zoho Books.

Create Vendor Credit

Tool to create a vendor credit in Zoho Books.

Create Vendor Payment

Tool to create a vendor payment in Zoho Books.

Deactivate Bank Account

Tool to deactivate a bank account.

Delete Bank Account

Tool to delete a bank account from your organization.

Delete Bank Transaction

Tool to delete a specific bank transaction.

Delete Bill

Tool to delete a specific bill.

Delete Bill Attachment

Tool to delete an attachment from a specific bill.

Delete Bill Comment

Tool to delete a comment from a bill.

Delete Bill Payment

Tool to delete a specific bill payment.

Delete Bulk Customer Payments

Tool to bulk delete multiple customer payments.

Delete Bulk Vendor Payments

Tool to bulk delete multiple vendor payments.

Delete Chart of Account

Tool to delete a specific chart of account.

Delete Chart Of Account Transaction

Tool to delete a chart of account transaction.

Delete Contact

Tool to delete a specific contact.

Delete Contact Address

Tool to delete an additional address from a contact.

Delete Contact Person

Tool to delete a specific contact person.

Delete Credit Note

Tool to delete a specific credit note.

Delete Credit Note Comment

Tool to delete a comment from a credit note.

Delete Credit Note Refund

Tool to delete a specific credit note refund.

Delete Currency

Tool to delete a specific currency from organization settings.

Delete Customer Payment

Tool to delete a customer payment.

Delete Customer Payment Refund

Tool to delete a specific customer payment refund.

Delete Employee

Tool to delete a specific employee.

Delete Estimate

Tool to delete a specific estimate.

Delete Exchange Rate

Tool to delete an exchange rate for a currency.

Delete Expense

Tool to delete a specific expense.

Delete Expense Receipt

Tool to delete a receipt from an expense.

Delete Invoice

Tool to delete a specific invoice.

Delete Invoice Attachment

Tool to delete the last attached attachment from an invoice.

Delete Invoice Comment

Tool to delete a comment from an invoice.

Delete Invoice Document

Tool to delete a document/attachment from a specific invoice.

Delete Invoice Payment

Tool to delete a payment applied to an invoice.

Delete Item

Tool to delete a specific item.

Delete Journal Comment V4

Tool to delete a journal comment using Zoho Books API v4 (Beta).

Delete Journal Document

Tool to delete a document/attachment from a journal entry.

Delete Journals

Tool to delete multiple journal entries in one request.

Delete Journal (v4 Beta)

Tool to delete a journal using the v4 Beta API.

Delete Location

Tool to delete a specific location.

Delete Project Comment (v4 Beta)

Tool to delete a project comment using v4 Beta API.

Delete Project Task

Tool to delete a project task.

Delete Project V4

Tool to delete a specific project using v4 Beta API.

Delete Purchase Order

Tool to delete a specific purchase order.

Delete Purchase Order Attachment

Tool to delete an attachment from a purchase order.

Delete Purchase Order Comment

Tool to delete a comment from a purchase order.

Delete Recurring Bill

Tool to delete a recurring bill.

Delete Recurring Invoice

Tool to delete a recurring invoice.

Delete Bank Account Rule

Tool to delete a bank account rule from your account.

Delete Sales Order Comment

Tool to delete a comment from a sales order.

Delete Sales Receipt

Tool to delete a specific sales receipt.

Delete Time Entry

Tool to delete a specific time entry from a project.

Delete Vendor Credit

Tool to delete a specific vendor credit.

Delete Vendor Credit Refund

Tool to delete a vendor credit refund.

Delete Vendor Payment

Tool to delete a vendor payment.

Disable Contact Payment Reminder

Tool to disable payment reminders for a contact.

Disable Invoice Payment Reminder

Tool to disable payment reminders for an invoice.

Email Contact Statement

Tool to email a statement to a contact.

Email Estimate

Tool to send an estimate email.

Email Invoice

Tool to send an invoice email.

Enable Contact Payment Reminder

Tool to enable payment reminders for a contact.

Enable Contact Portal

Tool to enable portal access for a contact.

Enable Invoice Payment Reminder

Tool to enable payment reminders for an invoice.

Exclude Bank Transaction

Tool to exclude an uncategorized bank transaction.

Bulk Export Estimates PDF

Tool to export multiple estimates to a single PDF.

Bulk Export Sales Orders PDF

Tool to export multiple sales orders to a single PDF.

Get All Tag Options

Tool to retrieve all options for a reporting tag.

Get Bank Account

Tool to fetch details of a specific bank account.

Get Base Currency Adjustment

Tool to fetch details of a specific base currency adjustment.

Get Bill

Tool to fetch details of a specific bill.

Get Bill Attachment

Tool to fetch an attachment from a specific bill.

Get Chart Of Account

Tool to fetch details of a specific chart of account.

Get Contact

Tool to fetch details of a specific contact.

Get Contact Address

Tool to retrieve all addresses associated with a contact.

Get Contact Person

Tool to retrieve details of a specific contact person.

Get Contact Statement Mail

Tool to retrieve the pre-populated email content for a contact statement.

Get Credit Note

Tool to fetch details of a specific credit note by ID.

Get Currency

Tool to retrieve details of a specific currency.

Get Estimate

Tool to fetch details of a specific estimate.

Get Estimate Email

Tool to retrieve the pre-populated email content for an estimate.

Get Expense

Tool to fetch details of a specific expense.

Get Invoice

Tool to fetch details of a specific invoice.

Get Invoice Attachment

Tool to fetch the last attached attachment from a specific invoice.

Get Invoice Email

Tool to retrieve the pre-populated email content for an invoice.

Get Item

Tool to fetch details of a specific item.

Get Journal Credits List (v4 Beta)

Tool to retrieve the list of available journal credits for a specific journal using v4 Beta API.

Get Journal Details V4

Tool to fetch details of a specific journal entry from Zoho Books API v4 (Beta).

Get Journals List (v4 Beta)

Tool to retrieve a paginated list of journals using Zoho Books v4 Beta API.

Get Last Imported Statement

Tool to get details of previously imported statement for a bank account.

Get Matching Bank Transactions

Tool to retrieve potential matching transactions for an uncategorized bank transaction.

Get Opening Balance

Tool to retrieve opening balance for an organization.

Get Organization

Tool to fetch details of a specific organization.

Get Payment Reminder Mail Content

Tool to retrieve the pre-populated payment reminder email content for an invoice.

Get Project

Tool to fetch details of a specific project.

Get Project User

Tool to fetch details of a specific user associated with a project.

Get Purchase Order

Tool to fetch details of a specific purchase order.

Get Recurring Invoice

Tool to retrieve a single recurring invoice profile's full configuration by ID.

Get Sales Order

Tool to fetch details of a specific sales order.

Get Sales Order Attachment

Tool to fetch an attachment from a specific sales order.

Get Sales Order Email Content

Tool to retrieve the pre-populated email content for a sales order.

Get User

Tool to fetch details of a specific user.

Get Vendor Credit Refund

Tool to fetch details of a specific vendor credit refund.

Import Bank Statements

Tool to import bank or credit card statement transactions in bulk.

List Bank Accounts

Tool to list bank and credit card accounts.

List Bank Rules

Tool to list all rules created for a bank or credit card account.

List Bank Transactions

Tool to list bank transactions with optional filters.

List Base Currency Adjustments

Tool to list base currency adjustments for an organization.

List Bill Comments and History

Tool to list comments and history entries for a bill.

List Bill Payments

Tool to list payments recorded against a bill.

List Bills

Tool to retrieve a paginated list of bills.

List Chart Of Accounts

Tool to list chart of accounts.

List Chart of Account Transactions

Tool to list transactions for a specific chart of account.

List Contact Comments

Tool to retrieve recent activities and comments for a specific contact.

List Contact Persons

Tool to retrieve a paginated list of contact persons from Zoho Books.

List Contact Refunds

Tool to list refunds for a contact.

List Contacts

Tool to retrieve a paginated list of contacts with optional filters.

List Credit Note Refunds

Tool to retrieve a paginated list of credit note refunds with filters.

List Credit Notes

Tool to retrieve a paginated list of credit notes with optional filters.

List Currencies

Tool to list currencies configured for the organization.

List Customer Payment Refunds

Tool to list refunds of a customer payment.

List Customer Payments

Tool to list customer payments in Zoho Books.

List Employees

Tool to retrieve a paginated list of employees.

List Estimate Comments & History

Tool to retrieve comments and history for a specific estimate.

List Estimates

Tool to retrieve a paginated list of estimates with optional filters.

List Estimate Templates

Tool to retrieve a list of estimate templates.

List Expense Comments

Tool to retrieve history and comments for a specific expense.

List Expenses

Tool to retrieve a paginated list of expenses with filters and search.

List Fixed Assets

Tool to retrieve a paginated list of fixed assets from Zoho Books.

List Fixed Asset Types

Tool to retrieve a paginated list of fixed asset types from Zoho Books.

List Invoice Comments and History

Tool to list comments and history entries for an invoice.

List Invoice Credits Applied

Tool to list credit notes applied to an invoice.

List Invoice Payments

Tool to list payments recorded against an invoice.

List Invoices

Tool to retrieve a paginated list of invoices with filters and search.

List Invoice Templates

Tool to retrieve a list of invoice templates.

List Item Details

Tool to bulk fetch details for multiple items from Zoho Books using their IDs.

List Items

Tool to retrieve a paginated list of items from Zoho Books.

List Journal Templates

Tool to list journal templates with pagination.

List Locations

Tool to list all locations in the organization.

List Organizations

Tool to list all organizations for the authenticated user.

List Projects

Tool to retrieve a paginated list of projects with optional filters.

List Project Users

Tool to retrieve all users assigned to a project.

List Purchase Orders

Tool to retrieve a paginated list of purchase orders.

List Recurring Bill History

Tool to list comments and history entries for a recurring bill.

List Recurring Invoice History

Tool to retrieve comments and history for a specific recurring invoice.

List Reporting Tags

Tool to retrieve all reporting tags from Zoho Books.

List Retainer Invoices

Tool to retrieve a paginated list of retainer invoices with filters and sorting.

List Sales Order Comments & History

Tool to list comments and history entries for a sales order.

List Sales Orders

Tool to retrieve a paginated list of sales orders.

List Sales Receipts

Tool to retrieve a paginated list of sales receipts with filters.

List Tasks

Tool to retrieve a paginated list of tasks for a specific project.

List Taxes

Tool to retrieve a paginated list of taxes.

List Tax Exemptions

Tool to retrieve a list of tax exemptions from Zoho Books.

List Users

Tool to retrieve a paginated list of users.

List Vendor Credit Refunds

Tool to retrieve a paginated list of vendor credit refunds with filters.

List Vendor Credit Refunds

Tool to list refunds of a specific vendor credit.

List Vendor Credits

Tool to retrieve a paginated list of vendor credits with filters and search.

List Vendor Payment Refunds

Tool to list refunds of a vendor payment.

List Vendor Payments

Tool to retrieve a paginated list of vendor payments with filters and search.

Mark Bill Open

Tool to mark a bill as open.

Mark Bill Void

Tool to mark a bill as Void.

Mark Contact as Active

Tool to mark a contact as active.

Mark Contact as Inactive

Tool to mark a contact as inactive.

Mark Estimate As Sent

Tool to mark an estimate as Sent.

Mark Invoice As Sent

Tool to mark an invoice as Sent.

Mark Item as Active

Tool to mark an item as active.

Mark Item as Inactive

Tool to mark an item as inactive.

Mark Location Active

Tool to mark a location as active.

Mark Location as Inactive

Tool to mark a location as inactive.

Mark Location Primary

Tool to mark a location as primary.

Mark Project Active

Tool to mark a project as active.

Mark Reporting Tag as Active

Tool to mark a reporting tag as active.

Mark Reporting Tag as Inactive

Tool to mark a reporting tag as inactive.

Mark Reporting Tag Default Option

Tool to mark an option as default for a reporting tag.

Mark Retainer Invoice Sent

Tool to mark a retainer invoice as Sent.

Mark Sales Order Void

Tool to mark a sales order as Void.

Mark Tag Option Active

Tool to mark a reporting tag option as active.

Mark Tag Option as Inactive

Tool to mark a reporting tag option as inactive.

Mark User as Inactive

Tool to mark a user as inactive in Zoho Books.

Mark Vendor Credit Void

Tool to void a vendor credit.

Open Sales Order

Tool to mark a sales order as Open.

Bulk Print Estimates

Tool to bulk print up to 25 estimates as a single PDF.

Bulk Print Sales Orders

Tool to bulk print up to 25 sales orders as a single PDF.

Send Payment Reminder

Tool to send a payment reminder for an invoice.

Resume Recurring Invoice

Tool to resume a recurring invoice.

Send Bulk Invoice Reminder

Tool to send payment reminders for multiple invoices at once.

Send Contact Email

Tool to send an email to a contact in Zoho Books.

Stop Recurring Invoice

Tool to stop a recurring invoice.

Untrack Contact 1099

Tool to untrack a contact for 1099 reporting.

Update Bank Transaction

Tool to update an existing bank transaction in Zoho Books.

Update Vendor Bill

Tool to update a vendor bill.

Update Contact

Tool to update details of a contact.

Update Contact Person

Tool to update an existing contact person in Zoho Books.

Update Credit Note Refund

Tool to update details of a specific credit note refund.

Update Currency

Tool to update an existing currency in Zoho Books.

Update Custom Fields in Item

Tool to update custom field values in an existing item.

Update Estimate

Tool to update an existing estimate (quote).

Update Estimate Billing Address

Tool to update the billing address of an estimate.

Update Estimate Shipping Address

Tool to update the shipping address for an estimate.

Update Estimate Template

Tool to update the template associated with an estimate.

Update Invoice

Tool to update details of a specific invoice.

Update Invoice Attachment Preference

Tool to update attachment preference for an invoice.

Update Invoice Billing Address

Tool to update the billing address of an invoice.

Update Invoice Shipping Address

Tool to update the shipping address of a specific invoice.

Update Invoice Template

Tool to update the template associated with an invoice.

Update Item

Tool to update details of a specific item.

Update Journal

Tool to update a journal entry in Zoho Books.

Update Location

Tool to update an existing location in Zoho Books.

Update Organization

Tool to update an organization's settings and details.

Update Project

Tool to update a project in Zoho Books.

Update Project User

Tool to update a user's details in a project.

Update Purchase Order Billing Address

Tool to update the billing address of a purchase order.

Update Purchase Order Comment

Tool to update a comment on a purchase order.

Update Recurring Bill

Tool to update a recurring bill in Zoho Books.

Update Recurring Invoice Template

Tool to update the template associated with a recurring invoice.

Update Reporting Tag

Tool to update an existing reporting tag in Zoho Books.

Update Reporting Tag Options

Tool to update reporting tag options in Zoho Books.

Update Sales Order

Tool to update a specific sales order.

Update Sales Order Attachment Preference

Tool to update attachment preference for a sales order.

Update Sales Order Billing Address

Tool to update the billing address of a sales order.

Update Sales Order Shipping Address

Tool to update the shipping address of a specific sales order.

Update Sales Order Template

Tool to update the template associated with a sales order.

Update User

Tool to update an existing user in Zoho Books.

Update Vendor Payment Refund

Tool to update a vendor payment refund in Zoho Books.

Void Invoice

Tool to mark an invoice as Void.

Write Off Invoice

Tool to write off an invoice.

FAQ

Frequently asked questions

With a standalone Zoho books MCP server, the agents and LLMs can only access a fixed set of Zoho books tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Zoho books and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. LlamaIndex fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Zoho books tools.

Yes, absolutely. You can configure which Zoho books scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Zoho books data and credentials are handled as safely as possible.

Start with Zoho books.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Zoho books tool your agent needs.Free to start.

Start building