About Outreach
Outreach is an MCP server for connecting sales engagement workflows to Outreach. Sales teams can work with prospects, sequences, accounts, tasks, calls, and mailings through its API tools.
Key features
- 01Connect accounts with OAuth or an access token
- 02Search, create, and update prospects
- 03Inspect sequences and manage enrollment
- 04Read and manage company accounts and tasks
- 05Retrieve mailings, calls, mailboxes, and users
Use cases
- 01Find and update prospects in Outreach
- 02Enroll prospects in sales sequences
- 03Review follow-up tasks and sent mailings
MCP support
Exposes 22 tools for Outreach account authentication and API operations across prospects, sequences, accounts, tasks, mailings, calls, mailboxes, and users.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @mindstone/mcp-server-outreachOUTREACH_CLIENT_IDOutreach OAuth client ID (recommended path)OUTREACH_CLIENT_SECRETSecretOutreach OAuth client secret (recommended path)OUTREACH_ACCESS_TOKENSecretStatic access token (alternative to OAuth)OUTREACH_CONFIG_DIRCustom config directoryOUTREACH_OAUTH_PORTSecretOAuth callback port (0 = OS-assigned)OUTREACH_OAUTH_SCOPESSecretSpace-separated OAuth scopesLocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
22Saved tool list · updated 2w ago
This tool takes no parameters.
Details
From the project README@mindstone/mcp-server-outreach
Outreach sales engagement MCP server — prospects, sequences, accounts, tasks, and mailings via Outreach API.
One-click install
After clicking the button, your host will prompt you to fill: OUTREACH_CLIENT_ID, OUTREACH_CLIENT_SECRET, OUTREACH_ACCESS_TOKEN, OUTREACH_CONFIG_DIR, OUTREACH_OAUTH_PORT.
Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Outreach)
{
"mcpServers": {
"Outreach": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-outreach"
],
"env": {
"OUTREACH_CLIENT_ID": "",
"OUTREACH_CLIENT_SECRET": "",
"OUTREACH_ACCESS_TOKEN": "",
"OUTREACH_CONFIG_DIR": "~/.mcp/outreach",
"OUTREACH_OAUTH_PORT": "0"
}
}
}
}
Status
- Version: 0.2.1 · npm
- Auth: OAuth (local 127.0.0.1 callback) (
OUTREACH_CLIENT_SECRET) - Tools: 22 (prospects, sequences, accounts, tasks, calls, mailboxes)
- Surface: cloud-api
- Machine-readable:
STATUS.json
Installation
npx -y @mindstone/mcp-server-outreach
Configuration
OAuth Mode (Recommended)
Set these environment variables to use standalone OAuth authentication:
OUTREACH_CLIENT_ID=your_client_id
OUTREACH_CLIENT_SECRET=your_client_secret
Then call the outreach_connect_account tool to initiate the OAuth flow.
Manual Token Mode
If you have a static access token:
OUTREACH_ACCESS_TOKEN=your_access_token
Optional Settings
OUTREACH_CONFIG_DIR=~/.mcp/outreach # Custom config directory (default: ~/.mcp/outreach)
OUTREACH_OAUTH_PORT=0 # OAuth callback port (default: OS-assigned)
OUTREACH_OAUTH_SCOPES="prospects.all sequences.all sequenceStates.all sequenceSteps.read sequenceTemplates.read templates.read accounts.all users.read tasks.all mailings.read calls.read mailboxes.read"
The OUTREACH_OAUTH_SCOPES value above is the built-in default, which covers every tool the connector ships. If you connected an account before these scopes were added (or you override the variable), re-run outreach_connect_account so the new token picks them up.
Available Tools (22)
Account Management
- outreach_connect_account — Connect an Outreach account via OAuth
- outreach_list_connected_accounts — List connected accounts and auth status
- outreach_disconnect_account — Disconnect an account and remove credentials
Prospects
- outreach_search_prospects — Search prospects by name, email, company, tags
- outreach_get_prospect — Get full prospect details by ID
- outreach_create_prospect — Create a new prospect (supports
custom_fieldsmapped tocustom1..custom35) - outreach_update_prospect — Update an existing prospect (supports
custom_fields)
Sequences
- outreach_list_sequences — List sequences with filters
- outreach_get_sequence — Get sequence details by ID
- outreach_list_sequence_steps — List a sequence's steps (type, interval, order, template links)
- outreach_get_sequence_template — Read a sequence template's email subject and body
- outreach_add_prospect_to_sequence — Enroll a prospect in a sequence
- outreach_remove_prospect_from_sequence — Pause or finish a prospect's enrollment
Accounts (Companies)
- outreach_list_accounts — List company accounts
- outreach_get_account — Get company account details by ID
Tasks
- outreach_list_tasks — List tasks with status and prospect filters
- outreach_create_task — Create a task (note, due date, prospect, owner)
- outreach_complete_task — Mark a task as completed
Mailings
- outreach_list_mailings — List sent emails with delivery status
Calls
- outreach_list_calls — List calls with outcome, notes, and disposition link
Mailboxes
- outreach_list_mailboxes — List connected sender mailboxes (feeds
mailbox_idon enrollment)
Users
- outreach_list_users — List Outreach team members
Auth Modes
The connector supports four authentication modes, detected once at startup:
| Mode | Detection | Description |
|---|---|---|
bridge | MCP_HOST_BRIDGE_STATE set | Host app manages OAuth |
standalone_oauth | OUTREACH_CLIENT_ID + OUTREACH_CLIENT_SECRET set | Local OAuth with browser redirect |
manual_token | OUTREACH_ACCESS_TOKEN set | Static access token |
unconfigured | No auth env vars | Tools return setup guidance |
Precedence: bridge > standalone_oauth > manual_token > unconfigured
Input & State Semantics
- Resource IDs must be numeric. Every tool parameter that takes an Outreach resource ID (
id,prospect_id,sequence_id,account_id,mailbox_id,user_id,owner_id) accepts digits only (/^\d+$/). Non-numeric values are rejected withVALIDATION_ERRORbefore any API request is made — Outreach IDs are always numeric, so anything else indicates a bad value rather than a real lookup. outreach_remove_prospect_from_sequenceacts on the live enrollment. A prospect that was enrolled, finished, and re-enrolled has several sequence-state records; the tool filters to the non-finished ("live") one instead of acting on the first record returned. If more than one live state exists for the prospect+sequence pair the tool fails closed withAMBIGUOUS_STATE(no record is modified); if every state is finished it returnsNOT_FOUND.
Untrusted Content Handling
All user-authored text returned by the Outreach API (names, emails, mailing subjects, template bodies, task notes, tags, custom fields) is wrapped in <untrusted-content source="..."> envelopes so MCP hosts and models treat third-party CRM content as data, not instructions. Vendor-generated structure (IDs, timestamps, lifecycle states) is returned raw. Vendor error text (API error details, non-JSON error bodies, and OAuth token-exchange failures) is truncated to 500 characters and enveloped the same way (source="outreach:api-error") before it appears in error messages.
License
FSL-1.1-MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.