PeersheepDocs

MCP server

Connect Claude, Cursor or VS Code to Peersheep, and ask about your competitors in plain language.

Peersheep runs a Model Context Protocol server, so an AI assistant can read your alerts, competitors and page snapshots, and with a write key, manage them for you. Ask things like:

  • "What did our competitors change on their pricing pages this week?"
  • "Show me the before and after for the latest high-signal alert."
  • "Start watching acme.ai's changelog and careers pages."
SettingValue
URLhttps://api.peersheep.com/mcp
TransportStreamable HTTP
AuthenticationAuthorization: Bearer ps_live_...

The server uses the same API keys as the REST API, and every tool calls the REST API with your key. The assistant can never do more than the key allows.

Give the assistant a Read only key unless you want it to make changes. A read-only key only exposes the read tools.

Connect your assistant

Run this in your terminal:

claude mcp add --transport http peersheep https://api.peersheep.com/mcp \
  --header "Authorization: Bearer ps_live_..."

Add --scope user to use it in every project. Run /mcp inside Claude Code to check it's connected.

Any other client that supports Streamable HTTP and custom headers works the same way: point it at the URL and send the key as a bearer token.

Config files like mcp.json are easy to commit by accident. Keep keys out of shared repositories, or use your client's secret storage where it has one.

Tools

Tools return the same JSON as the matching endpoint. When a call fails, the tool returns an error with the HTTP status and message, such as HTTP 402: Domain limit reached (5/5), so the assistant can explain what went wrong.

Read tools

Available with every key.

ToolWhat it doesInputsEndpoint
get_workspaceThe workspace's name, plan, subscription status and limits.NoneGET /me
get_dashboard_statsUnread alerts, alerts in the last 7 days, signal breakdown and usage.NoneGET /dashboard/stats
list_competitorsEvery competitor, with its domain and number of watched pages.NoneGET /competitors
get_competitor_timelineThe latest 50 changes on one competitor's pages.competitorIdGET /competitors/{id}/timeline
list_watched_urlsWatched pages, with label, crawl frequency and last crawl status.competitorId (optional)GET /watched-urls
get_page_snapshotThe latest structured reading of a page: SEO tags, headings, prices, calls to action.watchedUrlIdGET /watched-urls/{id}/snapshot
list_alertsDetected changes, newest first.signalScore, status, pageType, competitorId, page, limit (all optional)GET /alerts
get_alertOne alert, including the reasoning behind its score.alertIdGET /alerts/{id}
get_alert_evidenceThe before and after behind an alert.alertIdGET /alerts/{id}/evidence
get_analytics_summaryVisitors, page views and top pages across your tracked sites.NoneGET /analytics/summary

Write tools

Only available with a Read and write key.

ToolWhat it doesInputsEndpoint
add_competitorStarts monitoring a competitor. Counts against your competitor limit.name, domainPOST /competitors
suggest_competitor_urlsFinds which common pages (pricing, changelog, careers…) exist on a domain. Doesn't change your workspace.domainPOST /competitors/suggest-urls
watch_urlStarts monitoring a page and crawls it straight away. Counts against your URL limit.competitorId, url, label, crawlFrequency (optional)POST /watched-urls
update_watched_urlChanges a page's label or crawl frequency, or pauses and resumes it.watchedUrlId, label, crawlFrequency, isActive (all but the ID optional)PATCH /watched-urls/{id}
crawl_nowCrawls a page now instead of waiting for its schedule.watchedUrlIdPOST /watched-urls/{id}/crawl
mark_alert_readMarks one alert as read.alertIdPOST /alerts/{id}/read
mark_all_alerts_readMarks every unread alert as read.NonePOST /alerts/read-all
archive_alertArchives an alert.alertIdPOST /alerts/{id}/archive
rate_alertRates an alert, which tunes future signal scoring.alertId, feedback (useful or not_useful)POST /alerts/{id}/feedback
remove_competitorStops monitoring a competitor and deletes its pages and history.competitorIdDELETE /competitors/{id}
unwatch_urlStops monitoring a page and deletes its history.watchedUrlIdDELETE /watched-urls/{id}

Every tool is labelled for your client: read tools as read-only, and remove_competitor and unwatch_url as destructive, so clients that ask before risky actions will check with you first. Removing a competitor or page can't be undone.

Troubleshooting

The server won't connect, or returns 401. Check the header is exactly Authorization: Bearer ps_live_..., with no quotes around the key, and that the key hasn't been revoked under Settings → API.

Write tools are missing. The key is Read only. Create a Read and write key and reconnect. The tool list is fixed when the client connects, so restart the server after changing keys.

A tool fails with HTTP 402. You've reached a plan limit. See Plans and limits.

The assistant sees the wrong workspace. A key belongs to one workspace. Create a key in the workspace you want, from Settings → API while that workspace is selected.

On this page