
List channels with optional server-side filters (name contains, status, level) and cursor pagination. Use for browsing channels; returns channelid for use with getchannel, updatechannel, deletechannel, and sendchannelmessage.
Get a single channel by ID. Use list_channels to find channel IDs.
Create a new channel. Requires name and level. When level is 'team', also pass teamids (use listteams to find them). Use listusers for userids. Returns the created channel including its channel_id.
Update a channel's name and/or description by ID. Use list_channels to find channel IDs. Overwrites the provided fields.
Delete a channel permanently by ID. Use list_channels to find channel IDs.
List the current user's chats (conversations). Page back by setting modifiedbefore to the oldest returned chat's lastmodifiedtime (ISO 8601) converted to Unix epoch millis. Returns chatid for use with listmessages and sendchat_message.
List messages in a chat with optional server-side time filters (fromtime, totime) and time-based pagination. Use listchats to find chat IDs. For a channel, pass the chatid from listchannels or getchannel. To page back, call again with totime set to the oldest returned message's time.
Post a message to a channel. Requires channelid and text. Use listchannels to find channel IDs. Returns the created message including its messageid, unless syncmessage is set false (fire-and-forget), in which case message_id is absent.
Post a message to a chat. Requires chatid and text. Use listchats to find chat IDs. Returns the created message including its messageid, unless syncmessage is set false (fire-and-forget), in which case message_id is absent.
List teams in the organization, optionally limited to teams the user has joined (joined=true). Returns teamid for use with getteam and as teamids on createchannel. The API returns all teams in one response (no pagination).
Get a single team by ID. Use list_teams to find team IDs.
List organization users with optional server-side filters (search by name/email, status) and cursor pagination. Returns userid for use with getuser and update_user.
Get a single user by ID. Use list_users to find user IDs.
Invite a new organization user by email. Requires emailid. Returns a batch summary (successusers, invitedusers, failedusers) keyed by email — the API does not return a userid here; call listusers with search=<email> afterwards to resolve the created user's ID. Invites cannot be revoked through the API; remove pending invites in the Cliq admin console.
Update a user's profile fields by ID. Use list_users to find user IDs. Overwrites the provided fields.
Validate the Zoho Cliq OAuth credential by listing channels. Use this to confirm setup before calling other tools.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now