Connect AI tools to aclipp with MCP
Connect Claude, ChatGPT, and developer tools to the hosted aclipp MCP server, and explore every available tool.
View as MarkdownThe aclipp MCP server lets compatible AI clients work with the PR data directly. You can explore coverage, inspect outlets, authors and project configuration, and analyze AI visibility data without exporting it first, and you can set up projects and the competitors they are measured against, then add coverage and update existing outlets and authors without leaving the client.
Reading is the default. Writing is opt-in: a client only gets it if it asks for a write permission such as clippings:write or prompts:write and you approve it on the consent screen. Every delete asks you to confirm first. A delete tool takes up to 25 records at once, asks once for all of them, and reports which were deleted and which failed. Replacing report blocks or dashboard charts removes anything omitted from the replacement.
All clients connect to the hosted endpoint at https://api.aclipp.com/mcp. You do not need to run an aclipp server or a local development process. There are two ways to authenticate, and they differ in one way worth knowing: an API key always covers exactly one organization, while signing in with aclipp can cover several.
- Sign in with aclipp (OAuth): for interactive clients such as Claude and ChatGPT. No API key needed; you approve the connection in your browser.
- API key: for developer tools such as Claude Code and Cursor, or wherever you prefer a long-lived credential.
Supported clients
| Client | Status | Authentication |
|---|---|---|
| Claude (web) | Available | Sign in with aclipp |
| Claude Desktop | Available | Sign in with aclipp |
| ChatGPT | Available (plugin) | Sign in with aclipp |
| Claude Code | Available | aclipp API key in an HTTP header |
| Cursor | Available | aclipp API key in mcp.json |
Before you start
You need an aclipp workspace with API access enabled. For Claude and ChatGPT, your normal aclipp login is all it takes. For Claude Code and Cursor you also need an aclipp API key with the read scopes your AI client should use.
Sign in with aclipp (OAuth)
When you connect aclipp in a client, either from the client's connector list or by adding https://api.aclipp.com/mcp as a custom connector, the client discovers the aclipp sign-in flow on its own and opens your browser. You sign in with your aclipp account, then approve the connection:
- Choose the organizations the client may access. If you belong to only one, it is used and there is nothing to pick. If you belong to several, select every organization this connection should cover, and optionally tick Include future organizations so a workspace you are invited to afterwards is covered without reconnecting. Tools then take an optional
organizationId; omit it and the call acts in your default organization. - Choose the projects. All projects are included by default, which also covers projects created later. Narrow the selection if the client should only see specific projects.
- Approve. Expand Show permissions to see the requested actions for each area. The client receives exactly those permissions; write access is included only if the client requested it.
Connections are personal: they act on your behalf and end when you leave the organization. Workspace admins see every connection under Settings, Developers, Connected apps and can disconnect any of them immediately.
Claude (web)
aclipp is a Claude connector, so there is no server to set up.
- Open Settings, then Connectors, and search for "aclipp".
- Click Connect and complete the aclipp sign-in in the browser window.
- In a chat, enable the aclipp connector in the tools menu. The aclipp tools are now available.
On Team and Enterprise plans an admin may need to enable connectors first.
If you cannot find aclipp in the list, you can still add it as a custom connector: choose "Add custom connector" and enter https://api.aclipp.com/mcp as the URL. Custom connectors require a paid Claude plan.
Claude Desktop
Claude Desktop uses the same connector settings as Claude on the web: search for "aclipp" under Settings, Connectors, click Connect, and complete the browser sign-in.
ChatGPT
aclipp is available as a ChatGPT plugin, so there is no server to set up.
- Open the aclipp plugin in ChatGPT and add it.
- Complete the aclipp sign-in in the browser window and approve the connection.
- In a chat, enable the aclipp plugin. The aclipp tools are now available.
On Team and Enterprise plans an admin may need to allow plugins first.
If you prefer to set it up yourself, you can still add aclipp as a custom connector through developer mode: open Settings, then Apps & Connectors, then Advanced, and enable developer mode. Then create a connector with the MCP server URL https://api.aclipp.com/mcp and OAuth as the authentication method. This requires a paid plan; on Team and Enterprise plans an admin must allow it.
ChatGPT snapshots the tool definitions when a connection is approved. Reconnect aclipp after it releases new tools so ChatGPT refreshes its list.
Create an API key
For Claude Code and Cursor, open workspace API settings and create a key for your AI client. The full key is shown only once, so copy it before closing the dialog.
Grant only the scopes you need:
| Scope | What it enables |
|---|---|
projects:read | Projects, competitors, and project configuration. |
projects:write | Create projects; create and update competitors, tags, and custom metrics. |
prompts:read | AI visibility prompts and prompt topics. |
prompts:write | Create, update, and delete prompts; create and rename prompt topics. |
clippings:read | Filtered clipping lists and complete clipping details. |
clippings:write | Create and update clippings. |
outlets:read | Outlet lists and complete outlet details. |
outlets:write | Update existing outlets. |
authors:read | Author lists and complete author profiles. |
authors:write | Update existing authors. |
alerts:read | Alert configurations and their filters. |
alerts:write | Create, update and delete alerts. |
integrations:read | Integrations of a project, without their API keys. |
integrations:write | Create, update, and delete a project's integrations. API keys cannot be set. |
monitoring:read | A project's aclipp monitoring: its searches and filters. |
monitoring:write | Set up, change, and delete a project's aclipp monitoring. |
reports:read | Report lists and complete report details. |
reports:write | Create reports, update settings, and replace content blocks. |
dashboards:read | Dashboard lists and complete dashboard details. |
dashboards:write | Create dashboards, update settings, and replace charts. |
analytics:read | Aggregated clipping and AI-visibility analytics. |
ai-visibility:read | AI visibility chats, metrics, cited domains, and cited URLs. |
The scopes determine which tools the client sees. You can also restrict the key to specific projects.
Some tools need both the write and the read scope for their resource, because they read the record to do their job. Every delete tool except delete_monitoring needs both, for example delete_prompt needs prompts:write and prompts:read, and the report and dashboard update and replace tools need the read scope to base the change on the document's current version.
MCP exposes updates to existing outlets and authors. Creating or deleting them requires the REST API. MCP can create reports and dashboards, change their settings, and replace their contents; deleting them also requires the REST API. An API key used for MCP does not add tools beyond the catalog below.
alerts:write allows creating, updating and deleting alerts through MCP. To pause an alert's emails without deleting it, set enabled to false with update_alert.
Claude Code
Run this command in your terminal and replace the example key with your new key:
The user scope makes the connection available in every Claude Code project on your computer.
Start Claude Code and enter:
The aclipp server should be connected and show its available tools. You can also check the connection from a terminal:
Cursor
Open the global MCP configuration at ~/.cursor/mcp.json, or create .cursor/mcp.json when the connection should only be available in one project. Add:
Replace the example key, save the file, and open Cursor's MCP settings. The aclipp server should become available with its permitted tools. Restart Cursor or toggle the server off and on if it does not reconnect immediately.
Do not commit a project-level .cursor/mcp.json containing an API key. Prefer the global configuration for a personal connection.
Available MCP tools
The server only registers tools permitted by the connection's scopes. This is the complete current tool catalog:
| Tool | What it does | Required scope |
|---|---|---|
me — Inspect this connection | Reports the workspace, permissions, and project restrictions of the current connection. | projects:read |
list_organizations — List organizations | Lists the organizations this connection may act in. Every other tool takes an optional organizationId from here. | projects:read |
list_projects — List projects | Lists the projects visible to the connection and returns their IDs. | projects:read |
get_project_config — Get project configuration | Returns a project's settings, own brand, tag groups, and how many competitors, tags, and custom metrics it has. | projects:read |
create_project — Create project | Creates a project and picks the licenses it holds. AI Visibility is the one competitors and prompts need. | projects:write |
update_project — Update project | Changes a project's website, brand color, screenshot mode, tracked brand, or brand profile. Lists are replaced whole; licenses are not changed. | projects:write |
list_competitors — List competitors | Lists the competitor brands a project tracks, with the name, aliases, and domains each one is matched by. | projects:read |
get_monitoring — Get monitoring | Returns a project's aclipp monitoring: the named searches it runs and the filters applied to what they find. | monitoring:read |
set_monitoring — Set up or change monitoring | Sets up aclipp monitoring for a project, or changes the fields you send. Searches you send replace the stored ones. Switching it on needs a subscription. | monitoring:write |
delete_monitoring — Delete monitoring | Deletes a project's monitoring and its searches after the user confirms. Clippings it already found stay. | monitoring:write |
list_integrations — List integrations | Lists the data sources configured for a project with their filters and settings. API keys are never shown. | integrations:read |
get_integration — Get integration | Returns one integration of a project. | integrations:read |
create_integration — Create integration | Adds a data source such as RSS feeds, Google Alerts or Argus to a project, with the app's defaults for anything left out. Sources that need an API key fetch nothing until one is added in the app. | integrations:write |
update_integration — Update integration | Changes the fields you send on an integration; a list you send replaces the stored one. | integrations:write |
delete_integration — Delete integrations | Deletes one or more integrations after the user confirms. Clippings they already brought in stay. | integrations:write, integrations:read |
list_tags — List tags | Lists a project's tags with their IDs and groups; filter by name or tag group, one page at a time. | projects:read |
list_custom_metrics — List custom metrics | Lists a project's custom clipping metrics with their full definitions, including options and formulas. | projects:read |
create_competitor — Create competitors | Adds one or more competitor brands to an AI Visibility project (up to 25 per call). Answers and pages already collected are re-analyzed, so past mentions appear once that pass finishes. | projects:write |
update_competitor — Update competitor | Changes one competitor's name or how it is matched. Aliases and domains are replaced as whole lists, not added to, and changing them re-analyzes the project's history. | projects:write |
create_tag — Create tags | Creates one or more tags in a project (up to 25 per call). | projects:write |
update_tag — Update tag | Changes one existing tag, including its name, description, or tag group. | projects:write |
create_custom_metric — Create custom metrics | Creates one or more project-defined clipping metrics (up to 25 per call). | projects:write |
update_custom_metric — Update custom metric | Changes one existing project-defined clipping metric. | projects:write |
list_prompts — List AI visibility prompts | Lists tracked prompts with their location, status, and topic. | prompts:read |
list_prompt_topics — List prompt topics | Lists prompt topics for filtering and grouping AI visibility data. | prompts:read |
create_prompt — Create prompts | Adds one or more AI visibility prompts to a project (up to 25 per call). Results appear over following runs, not immediately. | prompts:write |
update_prompt — Update prompt settings | Changes a prompt's location, status, frequency, or topic. Wording stays fixed so historical results remain tied to the same question. | prompts:write |
delete_prompt — Delete prompts | Stops prompts being asked, after you confirm, and deletes their collected results: runs, brand mentions and citations. | prompts:write, prompts:read |
create_prompt_topic — Create prompt topics | Creates one or more topics for grouping prompts in an AI visibility project (up to 25 per call). Topic IDs work as filters and as the topic analytics dimension. | prompts:write |
update_prompt_topic — Rename prompt topic | Renames one existing prompt topic. The prompts grouped under it and the history reported against it are untouched. | prompts:write |
list_clippings — List clippings | Lists compact clipping records, filtered with a boolean filter expression over date, channel, tag, outlet, country, sentiment, and more. | clippings:read |
get_clipping — Get clipping | Returns the full details for one clipping. | clippings:read |
get_clipping_import — Get clipping import | Returns the state of a link added with clip_url: processing, admitted, or rejected with a reason. | clippings:read |
clip_url — Clip a URL | Adds coverage from a link and lets the processing pipeline derive the title, publication date, outlet, sentiment and metrics. The preferred way to add coverage. | clippings:write |
create_clipping — Create clipping | Records coverage that has no fetchable link, such as print or broadcast. Stores exactly the fields supplied and infers nothing. | clippings:write |
update_clipping — Update clipping | Changes fields on an existing clipping. An outlet that does not exist is rejected. | clippings:write |
list_reports — List reports | Lists the reports in a project or across the workspace with their IDs, settings and sharing URL. Content blocks are not included. | reports:read |
get_report — Get report | Returns one report with its complete ordered content blocks. | reports:read |
create_report — Create reports | Creates one or more empty reports in a project (up to 25 per call). Lay them out afterwards with replace_report_blocks. Always private. | reports:write |
update_report — Update report settings | Changes a report's name, theme color, sharing access level, filter or sorting. Its content blocks are never touched. | reports:write, reports:read |
replace_report_blocks — Replace report blocks | Sets a report's complete ordered content. Replaces the whole collection, so any block left out is removed. | reports:write, reports:read |
list_dashboards — List dashboards | Lists the dashboards in a project or across the workspace with their IDs, settings and sharing URL. Charts are not included. | dashboards:read |
get_dashboard — Get dashboard | Returns one dashboard with its complete ordered charts. | dashboards:read |
create_dashboard — Create dashboards | Creates one or more dashboards in a project (up to 25 per call), optionally laid out with charts in the same call. Always private. | dashboards:write |
update_dashboard — Update dashboard settings | Changes a dashboard's name, sharing access level, filter, comparison period, or whether viewers may filter it. Its charts are never touched. | dashboards:write, dashboards:read |
replace_dashboard_charts — Replace charts | Sets a dashboard's complete ordered chart list. Replaces the whole collection, so any chart left out is removed. | dashboards:write, dashboards:read |
list_outlets — List outlets | Lists media outlets with search, channel, project, and clipping-count context. | outlets:read |
get_outlet — Get outlet | Returns one outlet with its full channel-specific profile and reach data. | outlets:read |
update_outlet — Update outlet | Corrects or enriches one outlet's name and its channel's reach and profile fields. The logo cannot be set from here. | outlets:write |
list_alerts — List alerts | Lists a project's alerts with their filters, recipients, trigger and enabled state. | alerts:read |
create_alert — Create alerts | Creates one or more alerts in a project (up to 25 per call). Each mails its recipients when newly processed coverage matches its filter. | alerts:write |
update_alert — Update alert | Changes an alert's name, filter, recipients, trigger or enabled state. Filters and recipients are replaced whole, not merged. | alerts:write |
delete_clipping — Delete clippings | Moves clippings to the trash after you confirm. They can be restored in the aclipp app. | clippings:write, clippings:read |
delete_outlet — Delete outlets | Permanently deletes outlets after you confirm. Needs a connection not restricted to specific projects. | outlets:write, outlets:read |
delete_author — Delete authors | Permanently deletes authors after you confirm. Needs a connection not restricted to specific projects. | authors:write, authors:read |
delete_competitor — Delete competitors | Removes competitors from a project after you confirm. | projects:write, projects:read |
delete_tag — Delete tags | Permanently deletes tags from a project after you confirm. | projects:write, projects:read |
delete_tag_group — Delete tag groups | Deletes tag groups from a project after you confirm. | projects:write, projects:read |
delete_custom_metric — Delete custom metrics | Permanently deletes custom metrics from a project after you confirm. | projects:write, projects:read |
delete_prompt_topic — Delete prompt topics | Deletes AI visibility prompt topics after you confirm. | prompts:write, prompts:read |
delete_alert — Delete alerts | Permanently deletes alerts after you confirm, so their recipients stop getting their emails. | alerts:write, alerts:read |
delete_report — Delete reports | Permanently deletes reports and their content after you confirm. Their sharing links stop working. | reports:write, reports:read |
delete_dashboard — Delete dashboards | Permanently deletes dashboards and their charts after you confirm. Their sharing links stop working. | dashboards:write, dashboards:read |
list_authors — List authors | Lists the journalists and creators behind the coverage, with clipping counts, outlets, and first and last publication dates. | authors:read |
get_author — Get author | Returns one author with their profiles, every outlet they published in, and their most recent clippings. | authors:read |
update_author — Update author | Corrects an author's name and replaces the profiles and outlet links that are maintained by hand. | authors:write |
list_geo_chats — List AI visibility chats | Lists AI visibility runs for a project, date range, provider, country, prompt, or topic. | ai-visibility:read |
get_geo_chat — Get AI visibility chat | Returns the complete detail for one AI visibility run. | ai-visibility:read |
list_geo_search_queries — List search queries | Lists the web searches AI providers ran while answering a project's prompts, with how often each was run. | ai-visibility:read |
search_geo_domains — Search source domains | Searches the domains AI answers cite, with citation counts and the tracked brands each page mentions. | ai-visibility:read |
search_geo_urls — Search source URLs | Searches the individual pages AI answers cite, with citation counts and the tracked brands each page mentions. | ai-visibility:read |
get_geo_source — Get AI visibility source | Returns the details for one cited source domain or URL. | ai-visibility:read |
get_analytics_catalog — Get analytics catalog | Lists the metrics, shapes, dimensions, formats, and aggregations currently available for a project. | analytics:read |
query_analytics — Query analytics | Computes one metric total, several totals, a time series, a breakdown by one dimension (brand, provider, topic, prompt, country, channel, outlet, tag, sentiment), or a table of several metrics by one dimension. | analytics:read |
Keep this table in sync when MCP tools or their required scopes change.
Try your first analysis
Start by letting the client discover the project and its configuration:
The client can resolve tag IDs through the project configuration and should use the analytics catalog for valid metric, shape, dimension, and aggregation combinations. Series, breakdown, and table queries require a date range of no more than 366 days. Row-producing queries are bounded and tell the client when a result was truncated.
For example:
Troubleshooting
Connection failed
Confirm that the configured URL is https://api.aclipp.com/mcp. In Claude Code, run claude mcp list. In Cursor, open the MCP settings and inspect the server status.
Authentication failed
For OAuth connections, disconnect the connector in the client and connect again; the browser sign-in issues a fresh grant. This is also needed after an admin disconnected the connection or after you left the organization. For API keys, create a new key if the configured key was revoked, copied incorrectly, or is no longer available. aclipp API keys use the aclipp_live_... format, and the header value must start with Bearer .
A tool is missing
Tools are registered according to the connection's scopes, and a tool only appears when the connection holds every scope that tool needs. Some tools need more than one: every delete tool except delete_monitoring also reads the record to describe it in the confirmation prompt, and the report and dashboard update and replace tools read the document to base the change on its current version.
OAuth connections receive the supported scopes requested by the client; if the client requests no scopes, aclipp grants the full supported read set and no write access. For API keys, update or replace the key with the scopes the tool needs, then reconnect the server so the client refreshes its tool list.
A tool can also appear and still be refused. Tools are offered on scopes alone, but an OAuth connection acts with your role in the workspace, and that role is rechecked on every call. An editor, for example, may create dashboards but not change them, so update_dashboard is offered and then answers that the change is not permitted. API keys are not bound by a role this way.
Too many requests
The MCP server allows 300 requests per minute and 20,000 per day, counted per signed-in user or per API key. Over the limit, calls fail with 429 and a Retry-After header; wait that long before retrying. See Rate limits.
The client shows an outdated tool list
Reconnect the aclipp server or start a new client session. ChatGPT snapshots tool definitions when a connection is approved, so reconnect it there as well.
Remove the connection
For Claude and ChatGPT, disconnect the connector or plugin in the client's settings. Workspace admins can also disconnect any OAuth connection under Settings, Developers, Connected apps, which cuts off access within a minute.
Remove the user-scoped Claude Code server with:
For Cursor, remove the aclipp entry from mcp.json. Revoke the API key in workspace API settings when it is no longer needed.
Keep the API key safe
The API key is stored in the client's private configuration. Never commit it or paste it into a chat, issue, screenshot, or shared terminal transcript. Use a separate, minimally scoped key for each client so you can revoke one connection without affecting another.