senior-projects-manager-mcp-server
Provides access to deployed Zoho Zia agents, enabling natural-language requests that can read and write Zoho Projects data, with limited access to Zoho Mail, CRM, and WorkDrive through the Senior Projects Manager agent.
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., "@senior-projects-manager-mcp-serverWhat should I work on next?"
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.
senior-projects-manager-mcp-server
Remote MCP server ("gateway") for triggering deployed Zoho Zia agents. The
gateway itself — OAuth, HTTP client, MCP transport — is agent-independent;
which agent a call reaches is resolved through the registry in
src/agents.ts. It currently exposes one tool,
ask_senior_projects_manager, whose default (and only currently registered)
target is the deployed Zoho Zia Senior Projects Manager agent (portal
damianknowles, agent id 20971000000021961), reached via its /trigger
API.
Reference implementation: ~/zia-agent/zia_agent.py (interactive CLI script
this server generalizes into a long-running HTTP service).
Architecture
src/agents.ts— registry of addressable Zia agents (key → display name → numeric agent id). Adding a new agent means adding an entry here, not touching the client or transport.DEFAULT_ZIA_AGENT_KEY(envZIA_DEFAULT_AGENT, defaults tosenior-projects-manager) picks the agent used when a call doesn't name one.src/zohoZiaClient.ts— agent-independent client: Zoho OAuth token refresh/caching, andtriggerZiaAgent(message, agentKey?)which resolvesagentKeythrough the registry and POSTs to that agent's trigger URL. Has no built-in knowledge of the Senior Projects Manager specifically.src/index.ts— MCP server/transport plumbing plus the one registered tool, which is a thin wrapper:agentparam →triggerZiaAgent.
Related MCP server: Selis MCP Server
Tool
ask_senior_projects_manager
Field | Type | Description |
| string | Natural-language request, e.g. |
| string, optional | Registry key of the agent to address. Defaults to |
Returns the agent's plain-text response. Because the underlying agent has write access to Zoho Projects (and limited access to Mail/CRM/WorkDrive), calls that ask it to create or change records will actually do so, subject to the agent's own confirmation rules (see its instructions/guardrails in Zia Agent Studio).
Local development
npm install
cp .env.example .env # fill in ZOHO_CLIENT_ID / ZOHO_CLIENT_SECRET / ZOHO_REFRESH_TOKEN
npm run devBy default the server speaks streamable HTTP on POST http://localhost:3000/mcp
(health check at GET /healthz). Set TRANSPORT=stdio to run it as a local
stdio MCP server instead (for e.g. the Claude Desktop config).
The HTTP transport uses the MCP TypeScript SDK's current recommended
stateless pattern: StreamableHTTPServerTransport with
sessionIdGenerator: undefined (no session state kept between requests —
each POST /mcp is fully self-contained) and a fresh McpServer per
request, built via the SDK's createMcpExpressApp() helper (JSON body
parsing plus optional DNS-rebinding host validation, see MCP_ALLOWED_HOSTS
above).
Configuration
All configuration is via environment variables (see .env.example):
Variable | Required | Notes |
| yes | Zoho self-client OAuth credentials |
| yes | |
| yes | |
| no | Defaults to |
| no | Defaults to |
| no | Defaults to |
| no | Defaults to |
| no | Overrides the Senior Projects Manager's numeric agent id (default |
| no | Registry key used when a call omits |
| required in production | Bearer token clients must send to |
| no | Selects the SDK's DNS-rebinding host-validation mode (not the actual bind address). Defaults to |
| no | Comma-separated allowed |
| no | Defaults to |
| no |
|
Access tokens are refreshed from the Zoho refresh token on demand and cached in memory until ~1 minute before expiry.
Registering another agent
To make the gateway able to address a second Zia agent (e.g. the Inbox
Execution Agent), add an entry to the ZIA_AGENTS map in src/agents.ts
with its key, display name, and numeric agent id — no changes needed in the
client or transport layers. Callers then pass that key as the tool's agent
argument; omitting it keeps using the default.
Connecting an MCP client
Once deployed, point a remote-MCP-capable client at:
https://<your-deployment-host>/mcpwith header Authorization: Bearer <MCP_SERVER_API_KEY>.
Cloud deployment
Docker
docker build -t senior-projects-manager-mcp-server .
docker run -p 3000:3000 \
-e ZOHO_CLIENT_ID=... \
-e ZOHO_CLIENT_SECRET=... \
-e ZOHO_REFRESH_TOKEN=... \
-e MCP_SERVER_API_KEY=... \
-e NODE_ENV=production \
senior-projects-manager-mcp-serverRender
render.yaml defines a Blueprint web service (npm install && npm run build
/ npm start, health check on /healthz). The four secret env vars
(ZOHO_CLIENT_ID, ZOHO_CLIENT_SECRET, ZOHO_REFRESH_TOKEN,
MCP_SERVER_API_KEY) are marked sync: false — set them in the Render
dashboard rather than committing them.
Any other Node-friendly host (Fly.io, Railway, a plain VM, etc.) works the
same way: build with npm install && npm run build, run npm start, and set
the same environment variables.
Security note
This server triggers a live business agent with write access to a real Zoho
Projects portal, CRM notes, and WorkDrive uploads. Do not deploy it without
MCP_SERVER_API_KEY set, and treat that key like any other credential.
This server cannot be deployed
Maintenance
Related MCP Connectors
Chat with your Zihin.ai agents, list them and load platform skills from any MCP client.
Let AI agents query data and act across all your business apps via MCP.
Query InterviewFlowAI candidate and interview data from MCP-compatible AI assistants.
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables MCP-compatible clients to interact with deployed Agent5ive agents as tools. Allows users to query agent purposes and send messages to leverage Agent5ive capabilities through natural language.15 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables management of PMO entities such as actions, risks, issues, projects, deliverables, decisions, KPIs, and objectives through natural language from any MCP-compatible agent.52 npmServer Side Public , v 1
- -licenseNot gradedqualityBmaintenanceEnables users to interact with a set of tools via an LLM agent, allowing natural language requests to be processed and executed through the MCP server.-
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to inspect Oracle Integration Cloud integrations, connections, runtime instances, errors, and flow logs through natural-language queries.MIT