Skip to main content
The Inbound MCP (Model Context Protocol) server allows AI assistants to interact with your Inbound account to manage domains, endpoints, and emails.

Quick Start

The fastest way to get started is using Inbound’s hosted MCP server at mcp.inbound.new/mcp.

Cursor

Add to your Cursor MCP config (.cursor/mcp.json in your project or global config):
{
  "mcpServers": {
    "inbound": {
      "type": "http",
      "url": "https://mcp.inbound.new/mcp",
      "headers": {
        "x-inbound-api-key": "your-api-key"
      }
    }
  }
}

OpenCode

Add to your opencode.json config:
{
  "mcp": {
    "inbound": {
      "type": "remote",
      "url": "https://mcp.inbound.new/mcp",
      "headers": {
        "x-inbound-api-key": "your-api-key"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
  "mcpServers": {
    "inbound": {
      "command": "npx",
      "args": ["-y", "@inbound/mcp"],
      "env": {
        "INBOUND_API_KEY": "your-api-key"
      }
    }
  }
}
Claude Desktop uses STDIO transport and runs the MCP server locally via npx.

Authentication

The MCP server authenticates using your Inbound API key. Get your API key from the dashboard.

Domain Restriction (Optional)

To restrict all operations to a single domain (and its subdomains), add the x-inbound-domain header:
{
  "mcpServers": {
    "inbound": {
      "type": "http",
      "url": "https://mcp.inbound.new/mcp",
      "headers": {
        "x-inbound-api-key": "your-api-key",
        "x-inbound-domain": "example.com"
      }
    }
  }
}
This will filter results to show only example.com and subdomains like mail.example.com, support.example.com, etc.

Available Tools

Domains

ToolDescription
list_domainsList all domains in your account (respects domain restriction)

Endpoints

ToolDescription
list_endpointsList webhook and email forwarding endpoints
create_endpointCreate a webhook, email forward, or email group endpoint

Emails

ToolDescription
list_emailsList sent, received, and scheduled emails with filtering
get_emailGet detailed information about a specific email including full content
send_emailSend or schedule an email

Threads

ToolDescription
list_threadsList email conversations with previews
get_threadGet all messages in a thread

Example Usage

Once configured, you can ask your AI assistant to:
  • “List all my domains”
  • “Show me the last 10 received emails”
  • “Send an email to support@example.com with subject ‘Hello’”
  • “Create a webhook endpoint for notifications@mydomain.com
  • “Show me the conversation thread with john@example.com
  • “Get the full content of email ID abc123”

Available Prompts

The MCP server includes a getting-started prompt that teaches the AI assistant how to use Inbound effectively. Most AI assistants will automatically discover and use this prompt.

Self-Hosting

You can also run the MCP server locally:

Installation

npm install @inbound/mcp
# or
pnpm add @inbound/mcp
# or
bun add @inbound/mcp

Running

# HTTP server (for Cursor, OpenCode, etc.)
INBOUND_API_KEY=your-api-key npx @inbound/mcp start:http

# STDIO server (for Claude Desktop)
npx @inbound/mcp
The HTTP server runs on port 3002 by default. Configure your client to use http://localhost:3002/mcp.

Troubleshooting

Make sure your API key is valid and has the necessary permissions. Check the MCP server logs for authentication errors.
Ensure the x-inbound-domain header value matches exactly with your domain name in Inbound (case-sensitive).
If self-hosting, verify the server is running and the port is accessible. For the hosted version, check your network connectivity.

Security

Never commit your API key to version control. Use environment variables or a secrets manager.
Best practices:
  • Use environment variables for API keys: "x-inbound-api-key": "$INBOUND_API_KEY"
  • Restrict operations to specific domains using x-inbound-domain
  • Regularly rotate your API keys
  • Use separate API keys for different environments (dev, staging, production)