MCP server · any AI agent

The follow-up backend
for your AI agent

One URL. Your agent, whichever one, can record meetings, read what was discussed, keep the contact list current, propose follow-ups, and queue a WhatsApp or text message to your phone. A person approves every send. Works with ChatGPT, Claude, Cursor, Claude Code, OpenClaw and anything else that speaks the Model Context Protocol.

Start your free trial Connect Claude

Endpoint

URL
https://www.capstoneoutreach.com/mcp/
Transport
Streamable HTTP (MCP)
Auth
OAuth 2.0 with a consent screen, or Authorization: Bearer cor_live_… using a token from Settings → API tokens
Discovery
https://www.capstoneoutreach.com/.well-known/oauth-authorization-server
Scopes
contacts:read contacts:write campaigns:read drafts:write campaigns:send meetings:read meetings:record
Cost
Included on Starter and Pro. Meeting recordings are metered per plan (20 and 200 a month).

Connect your client

Two ways in: OAuth for clients that support it, or a scoped token for everything else.

claude.ai

Settings → Connectors → Add custom connector, with the URL above. OAuth handles sign-in and you pick scopes on the consent screen. Full walkthrough →

ChatGPT

Add a custom connector (developer mode) with the same URL. ChatGPT uses the OAuth flow and shows the same consent screen, so you never handle a token.

Claude Code

claude mcp add --transport http capstone https://www.capstoneoutreach.com/mcp/ \
  --header "Authorization: Bearer cor_live_YOUR_TOKEN"

Cursor and other mcp.json clients

{
  "mcpServers": {
    "capstone-outreach": {
      "url": "https://www.capstoneoutreach.com/mcp/",
      "headers": { "Authorization": "Bearer cor_live_YOUR_TOKEN" }
    }
  }
}

OpenClaw

OpenClaw's native MCP client connects to remote servers over Streamable HTTP and can sign in with OAuth, so it sees the same consent screen as claude.ai. Add the server under mcp.servers in openclaw.json:

{
  mcp: {
    servers: {
      capstone: {
        url: "https://www.capstoneoutreach.com/mcp/",
        transport: "streamable-http",
        auth: "oauth",
        enabled: true
      }
    }
  }
}

Then run openclaw mcp login capstone and approve the scopes. OpenClaw's tool policies apply to these tools like any other, so you can put record_meeting and queue_text behind an approval prompt on the agent side as well. Prefer a token instead? Store it through OpenClaw's secret mechanism and send it as the Authorization header.

Custom agents, anything else

Point the client at the URL with the Bearer header. That is the whole integration. Mint the token with only the scopes the agent needs; every call it makes is logged against that token, and revoking the token cuts it off instantly.

Tool reference

Fourteen tools. Descriptions are written for the model, so an agent picks the right one from a plain sentence.

ToolDoesScope
list_contactsSearch contacts by name, email or company.contacts:read
get_contactFull record: tags, lead tier, source, notes.contacts:read
upsert_contactCreate-or-skip, deduped by email. Safe to re-run.contacts:write
list_campaignsCampaigns with status and recipient counts.campaigns:read
list_draftsDrafts awaiting approval, or past verdicts.campaigns:read
get_draftOne draft: steps, recipients, reasoning, rejection feedback.campaigns:read
submit_draftPropose a follow-up sequence (email or text steps) for review.drafts:write
list_meetingsRecent and upcoming calendar meetings with attendees routed to contact ids.meetings:read
get_meeting_notesThe dated meeting summaries on a contact's record.meetings:read
find_cold_leadsPeople from past meetings with no recent contact, for revival.meetings:read
get_recording_statusRecordings used this month and the plan's allowance.meetings:read
record_meetingSend the notetaker to a Zoom, Meet, Teams or Webex link.meetings:record
enable_auto_recordTurn auto-record on or off. Consent must already have been accepted by a person.meetings:record
queue_textQueue a one-off text or WhatsApp message to a contact. It opens prefilled on the operator's phone; they send it from their own number or WhatsApp account.drafts:write

There is deliberately no tool that approves a draft or sends a message.

The loop an agent runs

This is what "automate my meeting follow-ups" turns into on the wire.

  1. Once: enable_auto_record. From here the notetaker joins external meetings on its own; the agent is not in the loop per meeting.
  2. After each call: the transcript is summarized onto each attendee's contact record and a draft per external attendee lands in the review queue. The agent can read it with list_drafts and get_draft.
  3. On request: get_meeting_notes answers "what did we agree"; submit_draft proposes a revision; find_cold_leads plus submit_draft revives a quarter of stalled conversations in one pass; queue_text puts a WhatsApp or text follow-up on the operator's phone, ready to send.
  4. Always: a person approves in Capstone Outreach, and the message sends from their own inbox.

Design guarantees

Propose-only

Approval and sending are not exposed to agents at all. The human review queue is the product, not a setting.

Scoped and audited

Tokens carry exactly the scopes you grant. Every tool call is logged against its token, including refused ones.

Spend is bounded

Recordings are capped per plan and the agent is told what remains. Internal meetings never consume one.

Consent is human

An agent can toggle auto-record but can never establish recording consent. That is accepted once, by you, in the app.

Give your agent a follow-up backend

3-day free trial. Mint a token in Settings, or connect with OAuth from claude.ai or ChatGPT.

Start free