reachowl

ReachOwl MCP, agent instructions You have the ReachOwl MCP connected to the public API at https://reachowl.com/api/v1.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data

What it can do

  • Authenticate: Get a ReachOwl Bearer token via POST /api/v1/authenticate. Stores the token for later tools.
  • Get User: GET /api/v1/user — current user, default team_id, and teams list.
  • List Campaigns: GET /api/v1/campaigns — list campaigns. Prefer omit team_id.

What data it sees

Do you need an account

No: the server works without sign-in

ReachOwl MCP, agent instructions

You have the ReachOwl MCP connected to the public API at https://reachowl.com/api/v1.

Auth (required before other tools)

Each user has their own Sanctum token (digits|…, e.g. 1|…). Prefer token already on the connector (reachowlToken → x-reachowl-token). If missing: ask the user for their Sanctum token and call set_token. Call auth_status — need has_token: true. Call get_user to verify the token and read team_id / teams. Only if they have no token: authenticate with email/password (fallback). Never put passwords or full tokens in chat when avoidable. “Connected” to Smithery/Claude is not a ReachOwl login. How to call tools

Prefer named tools (list_campaigns, get_contact, …) over api_request. Prefer omit team_id on list calls; use team_id from get_user when creating. Prefer Facebook group URLs over internal ids for campaigns / post schedulers. Browsers / app-states are read-only. Toggle status with { "status": 0|1 } where applicable. Facebook/Instagram execution still needs a connected browser session in ReachOwl. If tools fail

No tools / discovery error / mcp_auth timeout → connector URL or Smithery config is wrong (not ReachOwl API). Tell the user to fix MCP connection first. has_token: false or 401 → set reachowlToken / set_token, then auth_status + get_user. Do not invent Sanctum tokens or reuse another user’s token. First successful sequence auth_status → get_user → then the user’s requested action (e.g. list_campaigns).

How to connect

How to connect reachowl to Claude

The server address to paste into Claude settings:

https://reachowl--usama.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect reachowl to ChatGPT

The server address to paste into ChatGPT settings:

https://reachowl--usama.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect reachowl to Cursor

The server address to paste into Cursor settings:

https://reachowl--usama.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (53)

Raw names from tools/list. Only developers need these.

authenticateGet a ReachOwl Bearer token via POST /api/v1/authenticate. Stores the token for later tools.
get_userGET /api/v1/user — current user, default team_id, and teams list.
list_campaignsGET /api/v1/campaigns — list campaigns. Prefer omit team_id.
get_campaignGET /api/v1/campaigns/{id}
create_campaignPOST /api/v1/campaigns — create or clone a campaign. Use post_url for Facebook group URLs. clone_from clones an existing campaign.
update_campaignPATCH /api/v1/campaigns/{id} — partial update. Toggle with { status: 0|1 }.
delete_campaignDELETE /api/v1/campaigns/{id}
list_contactsGET /api/v1/contacts — list campaign contacts/audiences.
get_contactGET /api/v1/contacts/{id} — contact detail including notes.
add_contact_notePOST /api/v1/contacts/{id}/notes — add or update a note.
delete_noteDELETE /api/v1/notes/{id}
lookup_queuesGET /api/v1/queues — look up queues for confirmation. Require campaign_id plus one of audience_id, member_id, or profile_url.
update_queuePATCH /api/v1/queues — update/retry a queue. Prefer { id, retry: true } after lookup_queues.
list_groupsGET /api/v1/groups — synced Facebook groups (read-only).
list_mentionsGET /api/v1/mentions — keyword monitors.
get_mentionGET /api/v1/mentions/{id}
create_or_update_mentionPOST /api/v1/mentions — create (no id) or update (with id) a keyword monitor.
delete_mentionDELETE /api/v1/mentions/{id}
list_mention_postsGET /api/v1/mentions/posts?mention_id= — posts found by a keyword monitor.
delete_mention_postDELETE /api/v1/mentions/posts/{id}
list_post_schedulersGET /api/v1/post-scheduler
get_post_schedulerGET /api/v1/post-scheduler/{id}
create_post_schedulerPOST /api/v1/post-scheduler — prefer group_urls over internal group_ids. Supports clone_from.
update_post_schedulerPATCH /api/v1/post-scheduler/{id} — status, schedule, delete_queue_ids, or full posts update.
delete_post_schedulerDELETE /api/v1/post-scheduler/{id}
list_profile_growthGET /api/v1/profile-growth — Instagram profile growth plans (type=instagram).
get_profile_growthGET /api/v1/profile-growth/{id}
create_profile_growthPOST /api/v1/profile-growth — create IG growth plan (instagram only).
update_profile_growthPATCH /api/v1/profile-growth/{id} — e.g. { status: "running"|"paused" }.
delete_profile_growthDELETE /api/v1/profile-growth/{id}
list_stagesGET /api/v1/stages
get_stageGET /api/v1/stages/{id}
create_or_update_stagePOST /api/v1/stages — create or update one stage ({ name, id?, order? }).
reorder_stagesPUT /api/v1/stages — reorder stages with an array of { id, order }.
delete_stageDELETE /api/v1/stages/{id}
list_message_templatesGET /api/v1/message-templates
upsert_message_templatePOST /api/v1/message-templates — create/update ({ message, stage_id, image?, id? }).
delete_message_templateDELETE /api/v1/message-templates/{id}
list_browsersGET /api/v1/browsers — connected browsers (read-only).
get_browserGET /api/v1/browsers/{id}
list_app_statesGET /api/v1/app-states — connected social accounts. Use ids as executor_id / executor_ids.
get_app_stateGET /api/v1/app-states/{id}
list_teamsGET /api/v1/teams — team_id + teams.
list_team_membersGET /api/v1/team/members
add_team_memberPOST /api/v1/team/add — invite by email.
update_team_memberPOST /api/v1/team/members/store — update member ({ id, user_id, status, role }).
delete_team_memberDELETE /api/v1/team/members/{id}
list_eventsGET /api/v1/events — webhook event catalog (ids/keys for create_webhook).
list_webhooksGET /api/v1/webhooks
create_webhookPOST /api/v1/webhooks — subscribe a callback URL. Events from list_events (ids or slugs). keyword-monitor-found-a-post ignores campaign_id and sends at most 2 new posts per store.
update_webhookPUT /api/v1/webhooks/{id}
delete_webhookDELETE /api/v1/webhooks/{id}
api_requestRaw authenticated call to /api/v1/*. Prefer named tools when possible. Path must start with /api/v1/.