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).

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/.