Unified.to
All articles

How to Connect Anthropic to Real-Time SaaS Data with Unified.to MCP Server


September 16, 2025

Anthropic's Claude models can power sophisticated workflows — but most products still need access to live customer data from CRMs, ATSs, HRIS, or accounting systems. That usually means writing brittle glue code, normalizing APIs, and maintaining webhook jobs.

With Unified.to's MCP server, you can skip that complexity. Unified.to exposes 317+ SaaS integrations as real-time, callable tools that Claude can use directly — no custom integration logic required.

In this guide, we'll walk through how to connect Anthropic to Unified.to MCP so your application can give Claude real-time access to customer SaaS data and actions.

Authentication

Every request to the Unified.to MCP server must include a token. You can pass this either as a URL parameter (?token=...) or in the Authorization: bearer {token} header.

There are two authentication flows:

  • Private (workspace key + connection)
    Use your Unified.to workspace API key and add a connection parameter. This should never be exposed publicly.
  • Public (end-user safe)
    Generate a token in the format {connectionID}-{nonce}-{signature} using your workspace secret. Safe to share with customers.

Integrating with Anthropic API

Manual Tool Orchestration:

  1. Call Unified's /tools endpoint and pass the tool list to Claude:
    resp = client.messages.create(
        model="claude-3-5-sonnet-20241022",
        tools=tools,
        input="list the candidates and then analyse the resumes from their applications",
    )
    
  2. Claude will return a tool_use block:
    [
      {
        "type": "tool_use",
        "id": "toolu_...",
        "name": "list_candidates",
        "input": { "limit": "100" }
      }
    ]
    
  3. Call Unified's /tools/{id}/call endpoint with the arguments.
  4. Return the result to Claude as a tool_result block in your next message:
    [
      {
        "type": "tool_result",
        "tool_use_id": "toolu_...",
        "content": "..."
      }
    ]
    

Controlling Tool Access

Unified.to MCP gives you granular control over how tools are exposed to Anthropic:

  • permissions → restrict available scopes.
  • tools → allowlist specific tool IDs.
  • aliases → add synonyms so Claude better matches tool names.
  • hide_sensitive=true → automatically strip PII (emails, phone numbers, etc).
  • include_external_tools=true → expose all vendor API endpoints, not just Unified.to's normalized models.

These options help you keep Anthropic outputs predictable and secure in production-grade workflows.

Sample Snippet

import Anthropic from '@anthropic-ai/sdk';
// Claude model version
const modelVersion = 'latest';
// Unified connection Id that you want to have the mcp to use tools for
const connection = 'UNIFIED_CONNECTION_ID';
 // location from where your unified account was created
const dc = 'us';
// Optional: list of specific tools that you want to use
const toolIds = ['get_messaging_message','list_messaging_message']

const params = new URLSearchParams({
    token: process.env.UNIFIED_API_KEY || '',
    connection,
    dc,
    include_external_tools: includeExternal ? 'true' : 'false',
});

if (toolIds.length > 0) {
    params.append('tools', toolIds.join(','));
}

const anthropic = new Anthropic({
    apiKey: process.env.ANTHROPIC_API_KEY,
});

const serverUrl = `${process.env.UNIFIED_MCP_URL}/sse?${params.toString()}`;

let latestModel;

if (modelVersion === 'latest') {
    // get the latest model from anthropic
    const models = await anthropic.models.list();
    latestModel = models.data[0].id;
} else {
    latestModel = modelVersion;
}

const completion = await anthropic.beta.messages.create({
    model: latestModel,
    max_tokens: 1024,
    messages: [
        {
            role: 'user',
            content: message,
        },
    ],
    stream: false,
    mcp_servers: [
        {
            type: 'url',
            url: `${process.env.UNIFIED_MCP_URL}/sse?${params.toString()}`, // change url as needed
            name: 'unifiedMCP',
        },
    ],
    betas: ['mcp-client-2025-04-04'],
});

console.log('response', JSON.stringify(completion, null, 2));

Coverage and Infrastructure

Unified.to MCP is built for real-world AI use cases:

  • 20,421+ real-time tools (growing weekly)
  • 335+ integrations across 21 categories (ATS, CRM, HRIS, Accounting, Messaging, File Storage, and more)
  • Zero-storage architecture — no caching, no liability
  • Scoped security controls — permissions, aliases, and PII redaction
  • Multi-region deployment — US, EU, and AU data centers for compliance

Unified.to MCP works across all major LLM providers: OpenAI, Anthropic, Google Gemini, and Cohere. That means you can build once and connect to any agent client.

Explore the MCP docs or book a demo

Note: Unified.to MCP is currently in beta and should not be used in production systems yet. Contact us if you'd like to explore production use.

All articles