zoho-sprints-mcp
Provides tools for interacting with Zoho Sprints, including managing projects, sprints, items, statuses, and comments.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zoho-sprints-mcplist all projects in our Zoho Sprints portal"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zoho-sprints-mcp
An MCP (Model Context Protocol) server that wraps the Zoho Sprints REST API v1, built with fastmcp. It exposes Zoho Sprints projects, sprints, items, statuses, and comments as tools that any MCP-compatible client (Claude Desktop, Claude Code, etc.) can call.
Tools
Tool | Description |
| List all projects in the portal |
| List sprints for a project |
| Get a single sprint |
| List items in a sprint |
| Get a single item |
| Create a new item |
| Update an item's status |
| Update arbitrary fields on an item |
| List available statuses for a project |
| List comments on an item |
| Add a comment to an item |
Every tool catches errors internally and returns {"error": "..."} instead of raising, so a bad call never crashes the server.
Related MCP server: Jira MCP Server
Quick install as a Claude Code plugin
This repo doubles as a Claude Code plugin — install it and the zoho-sprints MCP tools (plus two starter slash commands) are available in any project immediately, no manual venv setup or config editing required. It uses uv to auto-manage the Python environment.
Install
uvif you don't have it:curl -LsSf https://astral.sh/uv/install.sh | shExport your Zoho credentials in your shell profile (
~/.zshrc,~/.bashrc, etc.) — see Getting a Zoho OAuth refresh token below:export ZOHO_PORTAL_ID=your_portal_id export ZOHO_CLIENT_ID=your_client_id export ZOHO_CLIENT_SECRET=your_client_secret export ZOHO_REFRESH_TOKEN=your_refresh_token export ZOHO_TLD=comIn Claude Code, add this repo as a plugin marketplace and install the plugin:
/plugin marketplace add egenius01/zoho-sprints-mcp /plugin install zoho-sprintsRestart Claude Code (or run
/mcpto confirmzoho-sprintsis connected). You now have:All 11 tools (
list_projects,create_item,add_comment, etc.) available to Claude automatically./zoho-sprints:sprint-status [project_id] [sprint_id]— summarize a sprint's items by status./zoho-sprints:create-item [project_id] [sprint_id] [name]— create a new item interactively.
Update the plugin later with /plugin marketplace update zoho-sprints-mcp then /plugin update zoho-sprints.
Manual setup (venv, no plugin)
Clone and install dependencies
git clone https://github.com/<your-username>/zoho-sprints-mcp.git cd zoho-sprints-mcp python -m venv .venv && source .venv/bin/activate pip install -r requirements.txtCopy the env template and fill it in
cp .env.example .envGet a Zoho OAuth refresh token (see below), and set the following in
.env:ZOHO_PORTAL_ID=... ZOHO_CLIENT_ID=... ZOHO_CLIENT_SECRET=... ZOHO_REFRESH_TOKEN=... ZOHO_TLD=comRun it directly to sanity check (optional — this also runs as part of
server.py's startup):python server.pyYou should see no errors; the process will wait on stdio for an MCP client to connect.
Getting a Zoho OAuth refresh token
Zoho Sprints uses standard Zoho OAuth 2.0. You need a Self Client (or server-based app) registered at the Zoho API Console.
Go to api-console.zoho.com and sign in with the account that has access to your Sprints portal.
Click Add Client → Self Client (simplest for personal/local use; use Server-based Applications if you need a redirect-based flow).
Note the Client ID and Client Secret shown — these are your
ZOHO_CLIENT_IDandZOHO_CLIENT_SECRET.Go to the Generate Code tab for your Self Client.
Enter the scope your integration needs, e.g.:
ZohoSprints.projects.READ,ZohoSprints.sprints.READ,ZohoSprints.sprints.CREATE,ZohoSprints.sprints.UPDATE(Adjust scopes to match which tools you plan to use — add
.CREATE/.UPDATEscopes forcreate_item,update_item,update_item_status, andadd_comment.)Set a time duration (e.g. 10 minutes) and generate the code. Copy the generated authorization code.
Exchange the authorization code for a refresh token by calling:
curl -X POST "https://accounts.zoho.com/oauth/v2/token" \ -d "grant_type=authorization_code" \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "code=YOUR_AUTHORIZATION_CODE"(Swap
zoho.comfor your data center's domain, e.g.zoho.eu,zoho.in, if applicable — this should matchZOHO_TLD.)The response includes a
refresh_token— this is yourZOHO_REFRESH_TOKEN. It does not expire unless revoked, and the server uses it to auto-fetch short-lived access tokens on demand.Your Portal ID (
ZOHO_PORTAL_ID) can be found in your Sprints portal URL, e.g.https://sprints.zoho.com/portal/<portal-id>/..., or via thelist_projects/portal APIs once you have a token.
Local testing without OAuth
If you just want to test quickly and already have a short-lived access token (e.g. copied from the API console's token playground), you can set ZOHO_ACCESS_TOKEN in .env instead of the client ID/secret/refresh token trio. This skips the refresh flow entirely but the token will expire (typically after 1 hour).
Using with Claude Desktop
Add this to your claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"zoho-sprints": {
"command": "python",
"args": ["/absolute/path/to/zoho-sprints-mcp/server.py"],
"env": {
"ZOHO_PORTAL_ID": "your_portal_id",
"ZOHO_CLIENT_ID": "your_client_id",
"ZOHO_CLIENT_SECRET": "your_client_secret",
"ZOHO_REFRESH_TOKEN": "your_refresh_token",
"ZOHO_TLD": "com"
}
}
}
}Restart Claude Desktop after saving. The zoho-sprints tools should appear in the tool picker.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
- TimequipOAuthcom.timequip
Manage Timequip projects, tasks, comments, members, and dashboards through MCP.
An MCP server that provides access to Testiny projects, test cases and test runs
Agile project management over MCP: boards, epics, roadmap, retros, whiteboards, wiki, metrics
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes JIRA sprint data as MCP tools and prompts, with mock data and a pluggable client for real JIRA integration.1-
- FlicenseNot gradedqualityDmaintenanceManages Atlassian Jira Cloud projects, issues, sprints, boards, worklogs, comments, and workflow transitions from MCP-compatible clients.-
- AlicenseNot gradedqualityDmaintenanceEnables reading and updating Azure DevOps work items, comments, metadata, and relations from an MCP-compatible client.845 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes the Scrumwise API as tools for managing projects, backlog items, tasks, sprints, releases, and time tracking.9 npmMIT