Documentation

DocsGuidesMCP Server

MCP Server

Connect AI agents to OutreachAgent via the Model Context Protocol (MCP). The @outreachagent/mcp package exposes all 75 API operations as MCP tools, letting agents in Cursor, Claude Desktop, or any MCP-compatible client manage outreach autonomously.

The MCP server is a thin wrapper over the TypeScript SDK. It does not make direct HTTP calls — every tool call delegates to the corresponding OutreachAgentClient method via stdio transport.

Architecture

Data Flow
AI Agent (Cursor / Claude Desktop / custom MCP client)
    │
    └── stdio (JSON-RPC) ──► @outreachagent/mcp
                                    │
                                    └── @outreachagent/sdk-ts
                                             │
                                             └── HTTPS ──► api.outreachagent.dev

Quick Start

Cursor

Add the following to your project's .cursor/mcp.json:

JSON
{
  "mcpServers": {
    "outreachagent": {
      "command": "npx",
      "args": ["@outreachagent/mcp"],
      "env": {
        "OUTREACHAGENT_API_KEY": "rm_live_..."
      }
    }
  }
}

Claude Desktop

Add the following to your claude_desktop_config.json:

JSON
{
  "mcpServers": {
    "outreachagent": {
      "command": "npx",
      "args": ["@outreachagent/mcp"],
      "env": {
        "OUTREACHAGENT_API_KEY": "rm_live_..."
      }
    }
  }
}

Environment Variables

VariableRequiredDefaultDescription
OUTREACHAGENT_API_KEYYesYour OutreachAgent API key
OUTREACHAGENT_BASE_URLNohttps://api.outreachagent.devAPI base URL (for self-hosted or development)

Available Tools (75)

Every method on the TypeScript SDK is exposed as an MCP tool. Tools are named with kebab-case and grouped by resource:

GroupToolsCount
Organizationslist-organizations1
API Keyslist-api-keys, create-api-key, revoke-api-key3
Podslist-pods, get-pod, create-pod, delete-pod4
Inboxeslist-inboxes, get-inbox, create-inbox, update-inbox, delete-inbox5
Messageslist-messages, get-message, send-message, search-messages4
Contactslist-contacts, get-contact, create-contact, update-contact, delete-contact5
Templateslist-templates, get-template, create-template, update-template, delete-template, preview-template6
Workflowslist-workflows, get-workflow, create-workflow, update-workflow, delete-workflow, publish-workflow, pause-workflow, resume-workflow, simulate-workflow, test-send-workflow, preview-workflow11
Enrollmentslist-enrollments, get-enrollment, create-enrollment, list-enrollment-logs4
Policieslist-policies, create-policy, update-policy, delete-policy4
Approvalslist-approvals, get-approval, approve-request, reject-request4
Threadslist-threads, get-thread2
Domainslist-domains, get-domain, create-domain, delete-domain4
Webhookslist-webhook-endpoints, get-webhook-endpoint, create-webhook-endpoint, update-webhook-endpoint, delete-webhook-endpoint, list-webhook-deliveries, replay-webhook-delivery, list-events8
Segmentslist-segments, get-segment, create-segment, update-segment, delete-segment5
Metricsget-metrics-summary1
Extractionsextract-otp, extract-invoice-basic2
Realtimecreate-realtime-session1
Billingcreate-checkout-session1

Example: Agent-Driven Outreach

Once the MCP server is configured, an AI agent can autonomously run a cold outreach campaign using natural language. For example, an agent in Cursor could:

  1. Call create-contact to add prospects with attributes like company, title, and role.
  2. Call create-template to author personalized email templates with Liquid variables.
  3. Call create-workflow to build a multi-step sequence with delays, follow-ups, and exit-on-reply.
  4. Call publish-workflow to activate the workflow.
  5. Call create-enrollment to enroll each contact into the workflow.
  6. Call get-metrics-summary to monitor delivery rates and adjust strategy.
Governance policies and approval workflows still apply. If a policy requires approval before sending, the agent will receive a requires_approval response and can call approve-request or wait for human review.

Error Handling

All tool errors are returned as structured MCP error responses with isError: true. The error message includes the HTTP status code, error code, and human-readable description from the OutreachAgent API.

Error Response
Error 404 (not_found): Contact not found

Links