Competitor Tracker & Co.
Competitor Tracker & Co.
What it can do
- List Competitors: List the current organization's competitor subscriptions, newest first. Returns a page of competitors with their tracked categories and labels, plus a nextCursor for paging. Requires
- Get Competitor: Get a single competitor subscription belonging to the current organization by id, including its tracked categories, labels, and billing summary. Requires the competitors:read scope.
- Get Competitor Timeline: Get the chronological activity timeline for a competitor (crawls, snapshots, and detected changes). Requires the competitors:read scope.
What data it sees
Do you need an account
No: the server works without sign-in
Competitor Tracker & Co. watches your competitors' websites and tells you what changed. Every week it crawls their pricing, product, messaging and corporate pages, detects the changes that matter, and files a tagged, ranked report. Track pricing moves, launches and positioning shifts across your whole competitive set, with no dashboards to check and no manual monitoring. This server puts that same competitive intelligence in your agent: list and subscribe to competitors, read the change feed, and pull page snapshots.
How to connect
How to connect Competitor Tracker & Co. to Claude
The server address to paste into Claude settings:
https://competitortracker--competitortracker.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- 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 Competitor Tracker & Co. to ChatGPT
The server address to paste into ChatGPT settings:
https://competitortracker--competitortracker.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- 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 Competitor Tracker & Co. to Cursor
The server address to paste into Cursor settings:
https://competitortracker--competitortracker.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - 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 (50)
Raw names from tools/list. Only developers need these.
| list_competitors | List the current organization's competitor subscriptions, newest first. Returns a page of competitors with their tracked categories and labels, plus a nextCursor for paging. Requires the competitors:read scope. |
| get_competitor | Get a single competitor subscription belonging to the current organization by id, including its tracked categories, labels, and billing summary. Requires the competitors:read scope. |
| get_competitor_timeline | Get the chronological activity timeline for a competitor (crawls, snapshots, and detected changes). Requires the competitors:read scope. |
| subscribe_competitor | Start tracking a new competitor by URL, optionally with a display name and the change categories to track. Requires the competitors:write scope. |
| update_competitor | Update a competitor's display name and/or the change categories tracked for it. Requires the competitors:write scope. |
| unsubscribe_competitor | Stop tracking a competitor and remove its subscription. This is irreversible — pass confirm: true to proceed. Requires the competitors:write scope. |
| list_pages | List the tracked pages for a competitor subscription, optionally filtered by page-type slug (e.g. pricing, product). Requires the pages:read scope. |
| get_snapshot | Get a single snapshot by id, including signed URLs for its HTML, markdown, and screenshot assets plus the tracked page it was captured from. Requires the snapshots:read scope. |
| list_snapshots | List the snapshots captured for a tracked page, newest first, with a nextCursor for paging. Requires the snapshots:read scope. |
| list_org_changes | List the org-wide feed of detected changes across every actively subscribed competitor, newest first. Filter by category, priority, and a [since, until) detection window, or pass count: true for aggregate totals instead of a page of rows. Requires the changes:read scope. |
| list_competitor_changes | List detected changes for a single subscribed competitor, newest first, with optional category, priority, and since filters. Requires the changes:read scope. |
| list_snapshot_changes | List detected changes attributed to a single snapshot, newest first, with optional category, priority, and since filters. Requires the changes:read scope. |
| list_labels | List the current organization's labels, newest first. Returns a page of labels with their colors, plus a nextCursor for paging. Requires the labels:read scope. |
| get_label | Get a single label belonging to the current organization by id, including its name and color. Requires the labels:read scope. |
| create_label | Create a new label for the current organization with a name and a color. Requires the labels:write scope. |
| update_label | Rename and/or recolor a label belonging to the current organization. Requires the labels:write scope. |
| delete_label | Delete a label and detach it from every competitor it is assigned to. This is irreversible — pass confirm: true to proceed. Requires the labels:write scope. |
| assign_label | Assign a label to a competitor (idempotent if already assigned). Returns the competitor's post-assign label set. Requires the labels:write scope. |
| unassign_label | Unassign a label from a competitor. This is irreversible — pass confirm: true to proceed. Requires the labels:write scope. |
| get_current_user | Read the signed-in user's profile, including their name fields and account timestamps. Requires the account:read scope. |
| update_current_user | Update the signed-in user's profile name fields (name, firstName, lastName). Pass null for a field to clear it; omit a field to leave it unchanged. Requires the account:write scope. |
| list_my_orgs | List every organization the signed-in user is an active member of, with the role they hold and when they joined. Requires the account:read scope. |
| get_balance | Get the current organization's coin balance and a forward-looking renewal summary (paid competitor counts and upcoming charges). Requires the billing:read scope. |
| list_transactions | List the current organization's coin transactions, newest first. Returns a page of transactions with their deltas, running balance, and reason, plus a nextCursor for paging. Requires the billing:read scope. |
| get_org | Read the current organization, including the application domain it has claimed (null until one is set). Requires the org:read scope. |
| update_org | Rename the current organization. Admin-only. Requires the org:write scope. |
| delete_org | Delete the current organization. Owner-only. This is irreversible — pass confirm: true to proceed. Requires the org:write scope. |
| transfer_org_ownership | Transfer ownership of the current organization: the current owner becomes admin and the target member becomes owner. This is irreversible — pass confirm: true to proceed. Requires the org:write scope. |
| leave_org | Leave the current organization. Sole owners must transfer ownership first. This is irreversible — pass confirm: true to proceed. Requires the account:write scope. |
| list_members | List active members of the current organization. Returns a page of members with their roles, plus a nextCursor for paging. Requires the members:read scope. |
| update_member_role | Change a member's role to admin or member. Owner is intentionally not assignable here — use transfer_org_ownership to change ownership. Requires the members:write scope. |
| list_invites | List pending invitations for the current organization, newest-first. Requires the invites:read scope. |
| create_invite | Invite a new member to the organization by email, joining at the admin or member role (defaults to member). Sends an invitation email. Requires the invites:write scope. |
| revoke_invite | Revoke a pending invitation. This is irreversible — pass confirm: true to proceed. Requires the invites:write scope. |
| list_api_keys | List the current organization's API keys with their names, scopes, expiry, and last-used time. Secret values are never returned here. Requires the account:read scope. |
| mint_api_key | Create a new API key for the current organization with a name, a set of scopes, and an optional expiry. The plaintext secret is returned exactly once in the response and can never be retrieved again, so store it immediately. Requires the account:write scope. |
| revoke_api_key | Permanently revoke an API key by id so it can no longer authenticate. This is irreversible — pass confirm: true to proceed. Requires the account:write scope. |
| regenerate_api_key | Rotate an API key's secret by id. This immediately invalidates the previous secret and returns a new plaintext secret exactly once — any client still using the old secret will stop working. This is irreversible — pass confirm: true to proceed. Requires the account:write scope. |
| list_api_key_usage | List an API key's usage-log entries, newest first, with method, path, status, scope, and timestamp, plus a nextCursor for paging. Requires the account:read scope. |
| list_dispatches | List the current organization's notifications, each with its tracked labels, theme, and recipients. Requires the dispatches:read scope. |
| create_dispatch | Create a notification for the current organization, optionally scoped to specific labels. Requires the dispatches:write scope. |
| update_dispatch | Rename, recolor, or rescope a notification belonging to the current organization. Requires the dispatches:write scope. |
| delete_dispatch | Delete a notification belonging to the current organization. This is irreversible — pass confirm: true to proceed. Requires the dispatches:write scope. |
| list_dispatch_deliveries | List a notification's email delivery attempts, newest-first, with a nextCursor for paging. Requires the dispatches:read scope. |
| add_dispatch_recipient | Add a recipient to a notification. Members are added immediately; external recipients are emailed a confirmation link and stay pending until they confirm. Requires the dispatches:write scope. |
| remove_dispatch_recipient | Remove a recipient from a notification. The pinned owner cannot be removed. This is irreversible — pass confirm: true to proceed. Requires the dispatches:write scope. |
| list_webhooks | List the current organization's webhooks with their destination URLs and active state. Requires the dispatches:read scope. |
| create_webhook | Register a webhook for the current organization. The signing secret is returned once. Requires the dispatches:write scope. |
| delete_webhook | Delete a webhook, freeing one of the organization's slots. This is irreversible — pass confirm: true to proceed. Requires the dispatches:write scope. |
| list_webhook_deliveries | List a webhook's delivery attempts, newest-first, with a nextCursor for paging. Requires the dispatches:read scope. |