Outdoo MCP

Connect Claude to your Outdoo workspace via the Model Context Protocol. Learn how to configure the Outdoo MCP server and access 39 tools for conversations, CRM data, and revenue intelligence.

Connect Claude to your Outdoo workspace — conversations, CRM, and revenue intelligence — via the Model Context Protocol.

What is the Outdoo MCP?
The Outdoo MCP server exposes your conversation intelligence, CRM data, and company context as tools that Claude can call directly. You get 39 tools across three namespaces: Organizations, Conversations, and CRMs.

Prerequisites

  • Python 3.9 or later
  • An Outdoo API key and workspace ID (from your Outdoo admin)
  • An Anthropic API key (from console.anthropic.com)
  • Claude Code CLI or the anthropic Python package

Configuration

The Outdoo MCP server runs over HTTP. You configure it once and every tool becomes available to Claude automatically.

MCP config file (.mcp.json)

Create a .mcp.json file in your project root (or home directory for global access):

{
  "mcpServers": {
    "outdoo": {
      "type": "http",
      "url": "https://mcp.outdoo.ai/v1/mcp",
      "headers": {
        "x-api-key": "YOUR_OUTDOO_API_KEY",
        "x-workspace-id": "YOUR_WORKSPACE_ID"
      }
    }
  }
}

Field

Value

Notes

type

"http"

Always http for Outdoo MCP

url

https://mcp.outdoo.ai/v1/mcp

MCP endpoint — do not change

x-api-key

Your JWT API key

Obtainable from Outdoo workspace settings

x-workspace-id

Your workspace ID (numeric)

Found in your Outdoo workspace URL or settings

Keep your API key secret.
Never commit .mcp.json with a real API key to version control. Add it to .gitignore or use environment variable substitution.

Using with Claude Code

Claude Code (the CLI) picks up .mcp.json automatically. Once the file is in your project root, all Outdoo tools are available in every conversation in that directory.

1 Place .mcp.json in your project root

my-project/
├── .mcp.json        # ← Outdoo MCP config here
├── main.py
└── ...

2 Start Claude Code

cd my-project
claude

3 Start using Outdoo tools in your prompt

Get all conversations from last week and summarize key points,
risks, and feature requests.

Claude will automatically call the relevant Outdoo MCP tools and synthesize the results.

Using with the Python SDK

You can also call the Outdoo MCP programmatically using the Anthropic Python SDK. This is useful for building pipelines, scheduled reports, or custom agents.

With MCP Client
Direct HTTP (no SDK)

import anthropic
from anthropic import Anthropic

client = Anthropic()  # reads ANTHROPIC_API_KEY from env

# Define the Outdoo MCP server
mcp_servers = [
    {
        "type": "url",
        "url": "https://mcp.outdoo.ai/v1/mcp",
        "name": "outdoo",
        "authorization_token": "YOUR_OUTDOO_API_KEY",
    }
]

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    mcp_servers=mcp_servers,
    messages=[
        {
            "role": "user",
            "content": "Get conversations from the last 7 days and summarize key points."
        }
    ],
    betas=["mcp-client-2025-04-04"],
)

print(response.content[0].text)
import requests
from datetime import datetime, timedelta, timezone

OUTDOO_API_KEY = "YOUR_OUTDOO_API_KEY"
OUTDOO_WORKSPACE_ID = "YOUR_WORKSPACE_ID"
MCP_URL = "https://mcp.outdoo.ai/v1/mcp"

headers = {
    "x-api-key": OUTDOO_API_KEY,
    "x-workspace-id": OUTDOO_WORKSPACE_ID,
    "Content-Type": "application/json",
}

# Call a tool directly over MCP HTTP protocol
payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "conversations_get_key_points",
        "arguments": {
            "params": {
                "from_created_at": "2026-05-22T00:00:00Z",
                "to_created_at": "2026-05-28T23:59:59Z",
                "scope": "external",
                "limit": 20
            }
        }
    }
}

resp = requests.post(MCP_URL, json=payload, headers=headers)
print(resp.json())

Your First Call

A complete working example — get last week's external conversations with key points, then ask Claude to summarize:

import os
from datetime import datetime, timedelta, timezone
import anthropic

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

# Date range: last 7 days
now = datetime.now(timezone.utc)
week_ago = now - timedelta(days=7)

prompt = f"""
Get all external conversations between {week_ago.strftime('%Y-%m-%dT%H:%M:%SZ')}
and {now.strftime('%Y-%m-%dT%H:%M:%SZ')}.

For each conversation summarize:
- Key points discussed
- Positives and buying signals
- Risks and objections
- Any feature or integration requests
- Deadlines or next steps with due dates
"""

mcp_servers = [
    {
        "type": "url",
        "url": "https://mcp.outdoo.ai/v1/mcp",
        "name": "outdoo",
        "authorization_token": os.environ["OUTDOO_API_KEY"],
    }
]

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=8192,
    mcp_servers=mcp_servers,
    messages=[{"role": "user", "content": prompt}],
    betas=["mcp-client-2025-04-04"],
)

print(response.content[0].text)

Authentication

The Outdoo MCP uses JWT-based API keys. Keys are scoped to a workspace and carry an expiry date.

Header

Required

Description

x-api-key

Yes

Your JWT API key from Outdoo workspace settings

x-workspace-id

Yes

Numeric workspace ID (e.g. 1429)

Using environment variables (recommended):

# .env
OUTDOO_API_KEY=eyJhbGci...
OUTDOO_WORKSPACE_ID=1429
ANTHROPIC_API_KEY=sk-ant-...
import os
from dotenv import load_dotenv
load_dotenv()

api_key = os.environ["OUTDOO_API_KEY"]
workspace_id = os.environ["OUTDOO_WORKSPACE_ID"]

API key expiry.
Outdoo API keys include an expiry date in their JWT payload. If you get a 401 response, decode your JWT at jwt.io and check the exp field. Request a new key from your Outdoo admin.