custom-zoho-project-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZOHO_DC | No | Zoho data center region: com, eu, in, com.au, jp. | com |
| ZOHO_CLIENT_ID | No | OAuth client ID from your Zoho Self Client registration. | |
| ZOHO_PORTAL_ID | No | Default portal ID. Leave blank to select interactively at runtime. | |
| ZOHO_PROJECT_ID | No | Default project ID. Leave blank to select interactively at runtime. | |
| ZOHO_MCP_ENV_FILE | No | Path to the .env file. Overrides the default repo-root .env. | .env at the repository root |
| ZOHO_MCP_LOG_FILE | No | Optional file path to additionally write logs to. | |
| ZOHO_CLIENT_SECRET | No | OAuth client secret from your Zoho Self Client registration. | |
| ZOHO_MCP_LOG_LEVEL | No | Log level for the server (e.g., INFO, DEBUG). | INFO |
| ZOHO_REFRESH_TOKEN | No | OAuth refresh token for Zoho Projects API access. | |
| ZOHO_MCP_MAX_CONTEXT_IMAGES | No | Maximum number of inline images returned per task/bug context call. | 5 |
| ZOHO_MCP_MAX_ATTACHMENT_BYTES | No | Maximum size per inline image attachment in bytes. | 8388608 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| configure_oauthA | Configure and validate Zoho OAuth credentials. Must succeed before any other tool becomes usable. |
| list_portalsA | List Zoho portals available to this account. Requires configure_oauth first. |
| list_projectsA | List all projects in a portal, so a project_id can be picked for select_portal_and_project. Requires configure_oauth first. |
| select_portal_and_projectA | Validate and select a portal/project, making it the active one. Multiple portal/project pairs can be selected this way without losing earlier ones — use switch_portal to move between already-selected pairs, list_selected_portals to see them all. Requires configure_oauth first. |
| switch_portalA | Switch the active portal/project to one already selected via select_portal_and_project — no re-validation call. Fails if that pair hasn't been selected yet. |
| list_selected_portalsA | List every portal/project pair currently selected, and which one is active. |
| remove_portal_selectionA | Remove one portal/project pair from the selected set. If it was active, another remaining selection (if any) becomes active. |
| reset_selectionA | Clear every portal/project selection without losing OAuth config. |
| get_project_contextA | Full overview of the selected project: details, tasklists, milestones, users, tags. Use this for broad questions like 'what's the state of this project'. |
| get_tasklist_contextB | Full context for a tasklist: its metadata plus every task in it. |
| get_milestone_contextB | Full context for a milestone: its metadata plus every task under it. |
| get_task_contextA | Full context for a task in one call: details, comments, subtasks, status history, and attachments — with any image attachments (e.g. screenshots) downloaded and returned inline so they can be visually inspected alongside the text, no follow-up call needed. |
| get_bug_contextA | Full context for a bug in one call: details, comments, attachments, and the linked task if any — with any image attachments (e.g. screenshots) downloaded and returned inline so they can be visually inspected alongside the text, no follow-up call needed. |
| list_usersA | List users in the current portal — useful for resolving owner names. |
| list_tagsA | List tags in the current portal — useful for resolving tag IDs on tasks/tasklists. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Every tool has a clearly distinct purpose. The selection/configuration tools (configure_oauth, select_portal_and_project, switch_portal, etc.) are well-separated from the context-retrieval tools (get_project_context, get_task_context, etc.), and each context tool targets a different resource type. Even similar-sounding tools like list_portals vs list_projects are unambiguous due to clear descriptions.
All tool names follow a consistent verb_noun pattern in snake_case. Verbs are clear (configure, list, select, switch, remove, reset, get) and nouns accurately describe the resource. The compound 'select_portal_and_project' is a minor deviation but still follows the pattern and remains predictable.
15 tools is within the recommended range and well-scoped for a comprehensive Zoho Projects integration. The configuration, selection, and context retrieval tools each serve a distinct purpose, and no tool feels redundant or unnecessary.
The server provides thorough read and context-gathering capabilities, covering all major entity types (project, tasklist, milestone, task, bug) with detailed context retrieval. The only notable gap is the absence of mutation tools (create/update/delete), but given the server's apparent focus on read-only context provision, this is a minor gap that agents can work around.