How to Connect Promptwatch MCP to Claude, Cursor, and ChatGPT
A how-to for wiring the hosted Promptwatch MCP server into Claude, Cursor, and ChatGPT. The server URL, the key types, the read-only scope that hides write tools, and the loop you run after.
The Promptwatch MCP server is the surface that lets a coding agent read your visibility data and propose work without leaving the editor. Connecting it is a short job, but the details matter, because the key you choose decides which tools the agent can even see. This is a how-to for wiring the hosted server into Claude, Cursor, and ChatGPT, with the scope pattern that keeps the acting half gated behind a human.
The server is a hosted streamable HTTP endpoint at https://server.promptwatch.com/mcp. You do not run it locally. You point a client at the URL, hand it a key, and the client receives the tool list. The ChatGPT plugin and the Claude connector run on the same server, which is why the setup is nearly identical across the three.
Step 1: pick the key before you pick the client
Before you touch a config file, decide which key you are going to use. Promptwatch issues org keys, project keys, and read-only keys. The read-only key is the one that changes the safety model, because a read-only key hides the write tools from the client entirely. When a client connects with a read-only key, the write tools, createContent, listContentSlots, acceptContentSlot, publishContentLive, createReport, createActionItem, updateActionItemStatus, createPrompt, createPromptsBulk, and addShoppingTrackedProducts, are not present in the tool list. The agent cannot call them, because the client never received them.
That is a stronger guarantee than a permission flag. A permission flag says a call is allowed or denied at runtime. A hidden tool says the call does not exist for the session. For an agent that runs on a schedule or that you hand an open-ended goal, the hidden-tool model is the one you want.
The practical pattern is two keys. Keep a read-only key in your permanent config for exploratory and scheduled work, where the agent diagnoses, reads, and proposes. Keep a write key separate, and only add it to the config for the narrow loop you have reviewed and want to gate behind a human. The read surface is identical in both. The write surface only appears when you hand over the write key.
Step 2: connect Cursor
Cursor connects via the .cursor/mcp.json file in your project. The file tells Cursor where the server lives and how to authenticate. The entry is a streamable HTTP server, so the config points at the hosted URL with the Bearer key in the headers.
A minimal .cursor/mcp.json for Promptwatch looks like this:
{
"mcpServers": {
"promptwatch": {
"url": "https://server.promptwatch.com/mcp",
"type": "http",
"headers": {
"Authorization": "Bearer YOUR_READ_ONLY_KEY"
}
}
}
}
Put the read-only key in this file. That is the default. After you save it, restart Cursor, and the Promptwatch server appears in the MCP panel with its tool list. With a read-only key, the list is the read tools only: listPrompts, getPrompt, getVisibilityTimeSeries, listQueryFanouts, getCitations, getCitationTopPages, listRedditCitations, listYoutubeCitations, getCompetitorHeatmap, listContentGapPrompts, getContentGapRecommendations, getContentGapStats, getCrawlerTrend, getTopCrawlerPages, getVisitorTrend, getVisitorTopPages, getVisitorTopSources, getResponseSentimentTimeSeries, listAds, listAdPrompts, listShoppingItems, getSiteHealth, and listActionItems.
The write tools are absent. That is the point. When you have a reviewed loop that should publish, swap the read-only key for a write key in the same file, run the loop, and swap it back. Do not leave the write key in the permanent config.
Step 3: connect Claude
Claude connects to the same server through the Claude connector. The connector runs on the same hosted endpoint, so the URL is the same https://server.promptwatch.com/mcp. Authentication is OAuth or a Bearer key, and the key types are the same org, project, and read-only keys.
In the Claude desktop or connector settings, add a new MCP server with the streamable HTTP type, the hosted URL, and your key. Use the read-only key for the default connection. The tool list that lands in Claude is the same read surface that landed in Cursor, because it is the same server and the same scope rule. The write tools are hidden until you authenticate with a write key.
The reason to use the Claude connector for visibility work is the conversational loop. You can ask Claude to read getVisibilityTimeSeries for a prompt that dropped, pull getCitations and getCitationTopPages to see what changed, and propose a fix, all in the chat. With a read-only key, the proposal is as far as the agent can go. To ship the fix, you take the proposal and act on it yourself, or you re-authenticate with a write key for the narrow publish loop.
Step 4: connect ChatGPT
ChatGPT connects through the Promptwatch plugin, which runs on the same hosted server. The plugin uses the same URL and the same key types. Add the plugin through the ChatGPT plugin flow, authenticate with your key, and the read tools are available in the chat.
The ChatGPT surface is the one that puts visibility data in front of a teammate who does not use an editor. A non-engineer can ask ChatGPT, with the Promptwatch plugin enabled, what the visibility trend looks like for a prompt, what the top cited pages are, and where the content gaps are. The read-only key is the right key here too, because a chat surface is exactly the kind of open-ended context where you do not want a write tool available by default.
Step 5: run the loop
Once the connection is live, the loop is the same across all three clients. Start with listPrompts to see the tracked prompt set for the project. Run getVisibilityTimeSeries on the prompts that matter to find the one that moved. Pull getCitations and getCitationTopPages on that prompt to see what changed in the source list. Read listQueryFanouts to find the fan-out query where the citation was actually won or lost. Check getCrawlerTrend and getTopCrawlerPages if the question is whether the page was crawled at all. Read listActionItems to see whether the platform already has a queued fix for this.
That is the diagnosis loop, and it runs entirely on the read-only key. The agent proposes the next step. A human reviews the proposal. If the next step is to publish content, the human swaps in the write key for the narrow loop that calls createContent, listContentSlots, acceptContentSlot, and publishContentLive, and swaps it back when the loop is done.
Step 6: the scope discipline that keeps this safe
The connection is the easy part. The discipline is the key. The rule is simple. The default key in every config, in Cursor, in the Claude connector, in the ChatGPT plugin, is the read-only key. The write key is not a default. It is a key you add for a specific, reviewed loop and remove when the loop is done.
The reason this matters is that an agent with a write key can publish content to your connected CMS. publishContentLive pushes a draft to Webflow or Framer. That is a real change on a real site. A read-only key makes that call impossible, because the tool is not in the list. The scope model is the guardrail, and the guardrail is the difference between an agent that proposes and an agent that ships without you.
What you get once it is connected
Once the three clients are connected with read-only keys, you have the same visibility data in the editor, in the chat assistant, and in the browser. The diagnosis loop runs in any of them. The acting loop runs only when you choose to authenticate with a write key, in the client you want to act in, for the loop you have reviewed.
The hosted server is at https://server.promptwatch.com/mcp. The key types are org, project, and read-only. The read-only key hides the write tools. The ChatGPT plugin and the Claude connector use the same server. Cursor uses .cursor/mcp.json. That is the whole setup, and the scope discipline is the part that keeps it useful instead of dangerous.