Unified MCP Server
Unified has launched an MCP server that connects any Unified connection to LLM (Large Language Model) providers supporting the newest MCP protocols. The available MCP tools will be determined by the integration’s feature support and the connection’s requested permissions.
The Unified MCP server sits on top of our Unified API (which calls individual APIs), and hides all of the complexity of API calling. Each call to a tool, and each events/poll request, will count as 1 API request on your plan.

Warning: Most current LLM models have severe limits on how many tools they can handle. Groq's models can only handle 10 tools, while most of OpenAI's models can handle only 20 available tools. Cohere's recent models seem to work with 50 tools. Make sure that you limit the tools with the permissions or tools parameters; tools accepts wildcards such as list_*.
Check out our sample code (in Node.js TypeScript) at unified-mcp-typescript
You can see the tools before you have a credential: a tools/list request with no credential lists the Core Unified API tools, and ?integration_type=<type> lists one integration's tools. See Without credentials.
In Core Unified API mode (workspace API key, no connection), the server also serves Unified.to Agent Skills: guides that teach a coding agent how to build with Unified.to.
Events (webhooks for agents)
A connection's MCP server also supports MCP Events, the draft MCP Events extension (io.modelcontextprotocol/events, SEP-3415). With it, an agent can be told when data changes in your customer's account instead of having to ask.
Each object the integration can send webhooks for becomes an event type named <object>.<event>, eg. crm_contact.created, hris_employee.updated or ats_application.deleted. A client that supports MCP Events finds them with events/list. Each event type's arguments are the object's webhook filters plus fields, and its payload is the object's unified model.
| Poll | The client calls events/poll with a cursor and gets back what changed since its last poll. Offered for created and updated events when the integration can filter the object by update time. Each poll counts as 1 API request. |
| Webhook | The client calls events/subscribe with an https URL and a whsec_ secret, and Unified.to POSTs each change to that URL, signed per Standard Webhooks. The URL must answer a verification challenge before the first delivery. A subscription expires unless the client refreshes it (5 minutes to 24 hours). |
Webhook subscriptions appear on your Webhooks page with an MCP badge. You can delete one there, and its subscriber is told it has ended, but you can't edit it. Each delivered event counts like a webhook delivery on your plan.
Events are only offered on a connection's MCP server, not in Core Unified API mode. To turn them off for a URL, add disable_events=true (see Server Options).
MCP Events is a draft extension of the MCP specification and may change. Push delivery (events/stream) is not supported.
URLs
- Streamable HTTP (US): https://mcp-api.unified.to/mcp
- Streamable HTTP (EU): https://mcp-api-eu.unified.to/mcp
- Streamable HTTP (AU): https://api-au.unified.to/mcp
- stdio: not offered. Use Streamable HTTP; a client that only speaks stdio can bridge to it with
npx mcp-remote <URL>.
The hostname selects the data region, and it no longer resolves across regions: a credential only works on its own region's host. AU sits on the API host because the MCP server now runs as part of the Unified API; mcp-api* are aliases kept for US and EU. See Endpoints.
The SSE transport has been removed. Migrating is a one-word URL edit — change /sse to /mcp and keep the same host, authentication and query parameters. See Core Unified API.