Odel
Reply.io

Reply.io

@reply-team1MITUpdated 1mo ago

Manage sequences, contacts, and outreach statistics on Reply.io's sales engagement platform.

View on GitHub
Server endpointStreamable HTTPOAuthProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Reply.io MCP Server

Connect Reply.io to your AI client and let it work across your team and workspace.
reply.io · Documentation

Transport License


Overview

A remote MCP server at mcp.reply.io that lets MCP-compatible AI clients — Claude, ChatGPT, Cursor, Codex, and more — work with your Reply.io CRM and AI SDR. One connection gives an agent a catalog of tools spanning contacts, sequences, inbox, tasks, analytics, and the AI SDR ("Jason"), so it can read and act on Reply data without making direct HTTP requests. The tools run the same logic as the Reply.io API and the in-app AI assistant.

No local installation required. Free for all Reply.io users.

📖 Full documentation: docs.reply.io/reply-mcp

Where this fits

Reply's agentic toolkit is three pieces. They are complementary, not alternatives:

What it isWhen you want it
reply CLInpm i -g reply-cli — authenticated access to every v3 endpoint via reply apiYour agent has a shell. This is the complete surface.
Reply MCP (this repo)A curated tool catalog over mcp.reply.ioYour client speaks MCP and has no shell — desktop apps, hosted assistants.
reply-skillsOutbound expertise as markdown skills: what to do, in what order, with what guardrailsYour agent knows how to call things but not what to run.

MCP gives your agent tools. Skills give it judgement. Most setups want both; a shell-capable agent can do everything through the CLI alone.

The shortest path that works: install the CLI, reply auth login, reply skills install, then talk to your agent in plain words. MCP is optional — add it when your client has no shell.

Connect

Reply MCP is a remote server at https://mcp.reply.io. Authenticate with a scoped personal API key (recommended) or OAuth, then add it to your client.

Claude Code

claude mcp add --transport http reply-mcp https://mcp.reply.io \
  --header "Authorization: Bearer usk_...your_key..."

Desktop apps (Claude, ChatGPT)

Add Reply MCP as a remote / custom connector using the URL https://mcp.reply.io and authorize with OAuth.

Create and scope a key under Settings → API Key in your Reply.io dashboard.

Note: Passing credentials in the URL (for example ?api_key=...) is not supported. Always authenticate with the Authorization header or OAuth.

Authentication & scopes

Reply MCP authenticates as a single Reply.io user, via one of two methods:

  • Personal API key (recommended) — passed as Authorization: Bearer <token>. A personal key is scoped: you grant it only the permissions your agent needs, and it can call only the tools those permissions cover.
  • OAuth — authorize directly from the client, no key to copy. OAuth grants the full tool catalog (all scopes).

Each tool requires a single scope such as contacts:read or sequences:operate; a key can call a tool only if it holds that scope. Act-on-behalf keys (Team and Organization keys) are not supported on this single-user connection.

See the full scope list at docs.reply.io/api-reference/authentication#scopes.

Tools

71 tools across your CRM and AI SDR. ⚠️ marks destructive tools (create / update / delete / send / assign) — these require the matching :write or :operate scope and carry a destructiveHint so conforming clients can prompt for confirmation. Call arguments (the JSON input schema) are advertised live via tools/list; the tables below describe what each tool is for.

Contacts & lists

ToolPurpose
reply_search_contactsLook up contacts by exact email or LinkedIn URL
reply_filter_contactsList contacts by list/sequence membership or a name/email/company search
reply_get_contact_activityGet a contact's activity history (emails, LinkedIn, calls, events)
⚠️ reply_create_contactCreate a contact
⚠️ reply_update_contactPatch fields on an existing contact
⚠️ reply_change_contact_ownerReassign contacts to another team member
⚠️ reply_mark_contacts_as_repliedFlag/unflag contacts as replied (stops automated outreach)
⚠️ reply_blacklist_contactBlacklist a contact's email or whole domain
reply_search_listsResolve contact lists to their numeric IDs by name

Sequences

ToolPurpose
reply_search_sequencesFind sequences by name, status, or archive state
reply_list_schedulesList sending schedules (business-hours windows)
reply_get_sequence_stepsGet a sequence's ordered steps (type, delay, variant count)
reply_get_sequence_step_variantsGet a step's A/B content variants
⚠️ reply_change_status_in_sequenceSet a contact's status within a sequence
⚠️ reply_add_contact_to_sequenceEnroll contacts into a sequence
⚠️ reply_start_sequenceStart or resume a sequence
⚠️ reply_pause_sequencePause a sequence
⚠️ reply_assign_email_account_to_sequenceAttach an email account (mailbox) to a sequence
⚠️ reply_assign_linkedin_account_to_sequenceAttach a LinkedIn account to a sequence
⚠️ reply_assign_schedule_to_sequenceSet a sequence's sending schedule

Analytics

ToolPurpose
reply_get_sequence_statsEmail + LinkedIn performance for one sequence, over any date range
reply_compare_sequence_performanceCompare performance across multiple sequences side by side

Inbox

ToolPurpose
reply_get_inbox_emailsList inbox threads (email + LinkedIn) with short previews
⚠️ reply_send_inbox_replySend a reply on an existing inbox thread
⚠️ reply_change_inbox_categorySet or clear a thread's category

Tasks

ToolPurpose
reply_list_my_tasksList your tasks, filtered by type, status, due window, or contact
⚠️ reply_create_taskCreate a manual task
⚠️ reply_complete_taskMark a task as completed

Channels & accounts

ToolPurpose
reply_list_email_accountsList workspace email accounts (status, daily limit, tags)
reply_list_linkedin_accountsList connected LinkedIn accounts (status, health, tier)

Team

ToolPurpose
reply_search_team_membersResolve teammates to their numeric user IDs by name or email

Help & workspace

ToolPurpose
reply_diagnoseExplain why a sequence isn't sending and how to fix it
reply_get_app_mapCatalog of Reply.io app areas and what the assistant can do in each
reply_search_knowledge_baseSearch the Reply.io Help Center for how-to answers
reply_get_knowledge_base_articleRead a full Help Center article by slug
reply_report_unsupported_requestReport a missing capability to the product team

AI SDR — Offers

ToolPurpose
reply_list_offersList AI SDR offers (what Jason can pitch)
reply_get_offerGet one offer in full
⚠️ reply_create_offerCreate a new offer
⚠️ reply_update_offerPatch an existing offer
⚠️ reply_attach_offer_to_sequenceAttach an offer to an AI SDR sequence
reply_generate_offer_from_websiteDraft offer content from a company website (review only, saves nothing)

AI SDR — Playbooks

ToolPurpose
reply_list_playbooksList playbooks (named sets of selling instructions)
reply_get_playbookGet one playbook in full
⚠️ reply_create_playbookCreate a new playbook
⚠️ reply_update_playbookPatch an existing playbook
⚠️ reply_duplicate_playbookDuplicate a playbook
⚠️ reply_attach_playbook_to_sequenceAttach a playbook to an AI SDR sequence

AI SDR — Knowledge bases

ToolPurpose
reply_list_knowledge_basesList AI SDR knowledge bases
reply_get_knowledge_baseGet one knowledge base in full (with URL sources)
⚠️ reply_create_knowledge_baseCreate a knowledge base
⚠️ reply_update_knowledge_baseRename or set a knowledge base's instructions
⚠️ reply_add_knowledge_base_sourceAdd a web-page URL as a source
⚠️ reply_delete_knowledge_base_sourceRemove a URL source
⚠️ reply_attach_knowledge_base_to_sequenceAttach a knowledge base to an AI SDR sequence

AI SDR — Reply handlers

ToolPurpose
reply_list_reply_handlersList reply handlers in a knowledge base
reply_get_reply_handlerGet one reply handler in full
⚠️ reply_create_reply_handlerAdd a reply handler (how Jason answers a kind of question)
⚠️ reply_update_reply_handlerPatch a reply handler
⚠️ reply_delete_reply_handlerRemove a reply handler

AI SDR — Re-engagement cards

ToolPurpose
reply_list_reengagement_cardsList re-engagement cards in a knowledge base
reply_get_reengagement_cardGet one re-engagement card in full
⚠️ reply_create_reengagement_cardAdd a re-engagement card (how Jason wins back a quiet prospect)
⚠️ reply_update_reengagement_cardPatch a re-engagement card
⚠️ reply_delete_reengagement_cardRemove a re-engagement card

AI SDR — Approvals & reply mode

ToolPurpose
reply_list_pending_approvalsList AI SDR draft messages waiting for approval
⚠️ reply_approve_messageApprove a draft and send it immediately
⚠️ reply_bulk_approve_messagesApprove and send multiple drafts at once (atomic)
⚠️ reply_regenerate_messageAsk the AI SDR to rewrite a pending draft
⚠️ reply_reject_messageReject a draft and remove the contact from that sequence
⚠️ reply_set_sequence_reply_modeSwitch a sequence between Review and Autonomous reply mode

Example prompts

Once connected, you can ask your AI assistant things like:

  • "List my active sequences and how each is performing."
  • "Add john@acme.com to the Demo Follow-up sequence."
  • "Pause the Cold Outreach sequence — we're updating the copy."
  • "Why isn't my Q2 Launch sequence sending?"
  • "Show me the AI SDR drafts waiting for approval and approve the good ones."
  • "Compare step-by-step performance for my top two sequences."
  • "Create an offer for our new onboarding service and attach it to the Q3 sequence."

Learn more

License

MIT — see LICENSE.