Uncategorized

Zoho Projects MCP Server: Easy 5-Step Ultimate Guide

· Mar 23, 2026 · 8 min read

A zoho projects mcp server lets AI tools like Claude Code manage your tasks, log time, and track bugs directly from the terminal. No more switching between browser tabs — your AI assistant becomes a full project management co-pilot.

If you use Zoho Projects for work and AI coding tools like Claude Code or Cursor for development, connecting them through MCP eliminates the constant context-switching that kills deep work. In this guide, you'll build a zoho projects mcp server from scratch in 5 steps.

What Is a Zoho Projects MCP Server?

MCP (Model Context Protocol) is an open standard that lets AI assistants connect to external tools and data sources. A zoho projects mcp server acts as a bridge between your AI tool and the Zoho Projects API, exposing project management capabilities as tools the AI can call.

Instead of manually opening Zoho Projects in your browser, copying task IDs, and switching windows, your AI assistant can:

  • Create and update tasks
  • Log time entries with notes and time periods
  • Track bugs and issues
  • Query project data in natural language

Think of it as giving your AI assistant a direct phone line to your project management system. If you've used the Chrome DevTools MCP server for browser debugging, this follows the same pattern — extending your AI's capabilities through a focused, purpose-built server.

What Can You Do With a Zoho Projects MCP Server?

A well-built zoho projects mcp server exposes the most common project management operations as discrete tools. Here's what a typical implementation includes:

ToolDescription
list_projectsView all projects in your portal
list_tasksBrowse tasks in a specific project
my_tasksSee your assigned tasks across projects
create_taskCreate new tasks with assignees and dates
update_taskChange status, priority, or details
list_issuesBrowse bugs and issues
get_issueGet full issue details with history
create_issueFile new bugs with severity and module
update_issueUpdate bug status or details
get_issue_metadataFetch modules, severities, classifications
log_timeLog hours with notes and time periods
update_time_logModify existing time entries
delete_time_logRemove incorrect time entries
get_timelogsView logged time for tasks or bugs

With 14 tools, your zoho projects mcp server covers the full daily workflow: planning, execution, and time tracking. The real power emerges when your AI chains these tools together — for example, creating a task, starting work, and logging time in a single conversation.

Prerequisites for Your Zoho Projects MCP Server

Before you start building your zoho projects mcp server, make sure you have:

  • A Zoho Projects account with API access (any paid plan works)
  • Node.js 18+ installed on your machine
  • An MCP-compatible AI tool — Claude Code, Cursor, or VS Code with MCP support
  • Access to the Zoho API Console at api-console.zoho.eu (or .com for US data center)

You'll also need basic familiarity with TypeScript and REST APIs. The Zoho Projects API uses OAuth 2.0, which we'll configure in Step 1.

How to Build a Zoho Projects MCP Server in 5 Steps

Step 1 — Set Up Zoho API Credentials

Your zoho projects mcp server needs OAuth 2.0 credentials to communicate with the API. The fastest approach is a Self Client — a server-to-server flow with no browser redirect.

  1. Go to the Zoho API Console
  2. Click Add ClientSelf Client
  3. Note your Client ID and Client Secret
  4. Generate a code with these scopes:
ZohoProjects.portals.READ,
ZohoProjects.projects.ALL,
ZohoProjects.tasks.ALL,
ZohoProjects.timesheets.ALL,
ZohoProjects.bugs.ALL
  1. Exchange the code for a refresh token — this is what your server stores long-term

Store credentials in a .env file:

ZOHO_CLIENT_ID=your_client_id
ZOHO_CLIENT_SECRET=your_client_secret
ZOHO_REFRESH_TOKEN=your_refresh_token
ZOHO_DATA_CENTER=eu

Important: The generated code expires in 10 minutes. Exchange it for a refresh token immediately.

Step 2 — Scaffold the MCP Server

Initialize a new Node.js project and install the MCP SDK:

mkdir zoho-projects-mcp && cd zoho-projects-mcp
npm init -y
npm install @modelcontextprotocol/sdk dotenv zod
npm install -D typescript @types/node

Create the server entry point at src/index.ts:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new McpServer({
  name: "zoho-projects",
  version: "1.0.0",
});

// Tools will be registered here in Step 3

const transport = new StdioServerTransport();
await server.connect(transport);

This gives you a running zoho projects mcp server skeleton that AI tools can connect to — it just doesn't do anything useful yet.

Step 3 — Implement Core Tools

Now add the tools that make your zoho projects mcp server genuinely useful. Start with the highest-impact operations: listing tasks and logging time.

Here's a simplified example for listing tasks:

import { z } from "zod";

server.tool("list_tasks", {
  project_id: z.string().describe("The Zoho project ID"),
}, async ({ project_id }) => {
  const tasks = await zohoApi.get(
    `/portal/${PORTAL_ID}/projects/${project_id}/tasks/`
  );
  return {
    content: [{
      type: "text",
      text: JSON.stringify(tasks, null, 2),
    }],
  };
});

Build each tool as a thin wrapper around a Zoho API endpoint. The zoho projects mcp server translates between the AI's tool calls and Zoho's REST API — keep the mapping simple and direct.

Recommended build order: list_projectslist_tasks / my_taskslog_timecreate_task → issues. This lets you test each tool incrementally.

Step 4 — Handle Zoho API Quirks

The Zoho Projects API has several behaviors that will bite you if you don't handle them in your zoho projects mcp server:

Time format mismatch: The API accepts start_time and end_time in 12-hour format (hh:mm AM/PM) but returns them in 24-hour format. Your server should normalize this automatically.

Bug time logs are immutable: Time periods on bug time entries can only be set when creating the entry — updates silently ignore time period changes. Document this in your tool descriptions so the AI knows the constraint.

Empty responses: Some endpoints return HTTP 204 (no content) when the list is empty, not an empty array. Handle this gracefully:

if (response.status === 204) {
  return { content: [{ type: "text", text: "No items found." }] };
}

Conflict detection: If your zoho projects mcp server handles time logging, add overlap detection. Before creating a new entry, check existing entries for the same date and flag potential conflicts. This prevents double-logging and keeps timesheets accurate.

Step 5 — Register in Your AI Tool

Compile your TypeScript and register the zoho projects mcp server in your AI tool's configuration.

For Claude Code:

claude mcp add zoho-projects -- 
  node /path/to/zoho-projects-mcp/dist/index.js

For Cursor or VS Code, add to your MCP settings JSON:

{
  "zoho-projects": {
    "command": "node",
    "args": ["/path/to/zoho-projects-mcp/dist/index.js"]
  }
}

Restart your AI tool, and you should see the zoho projects mcp server tools available. Test with a simple prompt like "list my Zoho projects" to verify the connection works.

Real-World Workflow: AI-Powered Project Management

Here's how I use my zoho projects mcp server every day:

  1. Morning review: "Show me my open tasks" — the AI queries Zoho and presents my prioritized task list
  2. Starting work: "Create a task for implementing the CSV export feature" — task created in Zoho without leaving the terminal
  3. Logging time: "Log 2 hours on the export task, 09:00 to 11:00, notes: API integration and testing" — time entry posted with accurate time period
  4. Bug triage: "List open bugs in the backend project" — instant overview without opening a single browser tab

With a zoho projects mcp server, project management happens inline with your development workflow. You stay in the terminal, in flow state, while your AI handles the administrative bookkeeping.

Over 3 months of daily use, I've found that time logging accuracy improves dramatically. When logging happens in the moment — not at the end of the day from memory — entries are more precise and billable hours don't slip through the cracks.

FAQ

What Zoho APIs does a zoho projects mcp server use?

It uses the Zoho Projects REST API v3, authenticating via OAuth 2.0 Self Client flow. The API covers projects, tasks, time logs, and bug tracking endpoints.

Can I use a zoho projects mcp server with Cursor or VS Code?

Yes. Any tool that supports the Model Context Protocol can connect to your server. Claude Code, Cursor, VS Code with MCP extension, and Windsurf all work out of the box.

Is there an official Zoho MCP server available?

As of March 2026, Zoho does not provide an official MCP server. Building a custom zoho projects mcp server is currently the only option for MCP integration with Zoho Projects.

How do I handle OAuth token refresh automatically?

Store a refresh token, not an access token. Your server should request a new access token when the current one expires. The Zoho OAuth API returns a fresh access token every time you POST your refresh token to the token endpoint.

Can I extend this server to other Zoho products?

Absolutely. The same MCP server pattern works for Zoho CRM, Zoho Desk, Zoho Invoice, and other Zoho products. Each has its own REST API that you can wrap as MCP tools using the same architecture.

Get Your Own Custom MCP Server

Building a zoho projects mcp server is just one example of what's possible with MCP. Any tool with an API — project management, CRM, invoicing, support tickets — can be connected to your AI workflow.

If you'd rather have an expert build and maintain a custom MCP server for your team, I help businesses integrate their existing tools with AI assistants through purpose-built MCP servers. Whether it's Zoho, Jira, Monday.com, or your internal APIs — get in touch and let's talk about what AI-powered workflows could look like for your team.

SF
Sindre Fjellestad

Indie maker and developer. Building productivity tools and writing about systems, automation, and the craft of focused work.

Want a custom Notion template?

Browse my ready-made tools or get in touch for a custom build.

Browse Products Get in touch