MCP
Connect an agent with MCP
Wavefront is a remote MCP server. Add it to your AI client with this URL and sign in when the client asks:
https://wavefront.adwave.com/mcpThe client then works as you, in the workspaces you belong to: it can read the plan and documents, draft and revise, follow reviews, schedule and publish approved work. If you are an owner or editor, it can approve a version when you ask it to, but only if you check Approve content on the consent page (it starts unchecked). Leave read, write and stay connected checked. How the sign-in works: OAuth for MCP.
Claude
- In Claude (web or desktop), open Settings → Connectors → Add custom connector.
- Name it Wavefront and enter
https://wavefront.adwave.com/mcp. Leave the OAuth client ID and secret empty: Claude registers itself. - Click Connect, sign in to Wavefront with an emailed code or Google, leave read, write and stay connected checked, and click Allow.
- In a chat, turn the connector on from the tools menu and ask Claude to list your Wavefront workspaces.
On a Team or Enterprise plan, an owner adds the connector for the organization first.
Claude Code
claude mcp add --transport http wavefront https://wavefront.adwave.com/mcpThen run /mcp in Claude Code and choose Wavefront to sign in.
ChatGPT
- Open Settings → Apps & Connectors → Advanced settings and turn on developer mode (Plus, Pro, Business, Enterprise or Edu).
- Under Apps & Connectors, choose Create, name it Wavefront, enter
https://wavefront.adwave.com/mcpand choose OAuth authentication. - ChatGPT opens the Wavefront consent page. Sign in, keep the requested access and click Allow.
- In a chat, add Wavefront from the tools menu and ask it to list your workspaces.
Cursor
Add Wavefront to ~/.cursor/mcp.json, or to a project's .cursor/mcp.json:
{
"mcpServers": {
"wavefront": { "url": "https://wavefront.adwave.com/mcp" }
}
}Cursor shows Needs login next to the server. Click it to sign in in your browser.
Grok
- Go to grok.com/connectors, click New Connector and choose Custom.
- Name it Wavefront and enter
https://wavefront.adwave.com/mcp. There is no key to paste: Wavefront signs you in. - Grok opens the Wavefront sign-in in a pop-up (allow pop-ups from grok.com). Sign in with an emailed code or Google, leave read, write and stay connected checked, and click Allow.
- In a chat, ask Grok to list your Wavefront workspaces. Grok uses the tools whenever a request is about your content.
- Paste the instructions below into Grok's custom instructions (or the project's instructions) so it works the way Wavefront expects.
On Grok Business and Enterprise, a team admin may need to provision the connector before members can use it.
Other clients
Any MCP client that supports Streamable HTTP and OAuth 2.1, with Dynamic Client Registration or Client ID Metadata Documents, works with the URL alone. A client that can only start local processes can use the mcp-remote bridge:
npx mcp-remote https://wavefront.adwave.com/mcpInstructions for your agent
Paste this into your client's custom instructions (Grok), a project's instructions (Claude, ChatGPT) or a system prompt, and put your workspace's slug in place of <your workspace slug>. It tells the agent how to plan, draft and follow reviews, and what to ask you before doing.
You are connected to Wavefront, which plans, writes and publishes SEO- and AI-answer-ready content for my site. Use its tools (they start with wavefront_) for anything about my content: the plan, drafts, reviews, publishing and search performance.
Workspace: <your workspace slug>. If you're not sure, call wavefront_list_workspaces and ask me which one. If a tool says the connection lacks a scope or refuses every change, call wavefront_whoami and tell me what it says to do; don't keep retrying.
How to work:
- Start with wavefront_get_overview when I ask what is waiting or what to do next.
- Plan first. Read the plan with wavefront_get_strategy (ask only for the sections you need) and the calendar with wavefront_get_calendar. To change the plan, message the strategist with wavefront_message_strategist and poll wavefront_get_strategist_reply. For an exact change, use wavefront_edit_plan with item operations (keywords_add, calendar_upsert, calendar_remove) and base_plan_version, never by resending whole lists.
- Improving a page that already exists is a refresh of that page, not a new article. Say which URL it is and keep it.
- After a plan change, tell me what changed (posts added, moved or removed) and save it with wavefront_save_plan only when I agree. If a reply holds moves or a new calendar for confirmation, show them to me and apply with wavefront_apply_strategist_proposal only when I say so.
- To write something now, use wavefront_draft_calendar for posts on the calendar, or wavefront_generate for a one-off (wavefront_get_kinds lists each kind's input). Drafting runs in the background: poll wavefront_get_generation every 30 seconds or so, answer its questions with wavefront_provide_input, and give me the app link when it's ready for review.
- To change a draft, use wavefront_request_revision with clear feedback. Never rewrite a draft yourself and present it as Wavefront's.
- For search data, use wavefront_get_search_performance and wavefront_list_suggestions. Explain suggestions in plain words before approving or dismissing one.
- Pass an idempotency_key on generate, message_strategist, request_revision, create_strategy and add_comment, so a retry never does the work twice.
Always ask me before you:
- publish or schedule anything (wavefront_publish, wavefront_schedule_publish) or turn autopilot on (wavefront_set_autopilot);
- start drafts or revisions, which spend credits (wavefront_generate, wavefront_draft_calendar, wavefront_request_revision, wavefront_fill_from_backlog);
- approve a draft (wavefront_approve_version), approve or dismiss a suggestion, or add or change a destination or webhook.
Approve a draft only when I ask you to. Never say a draft is approved or published unless a tool says so. Never invent facts, sources, quotes or search volumes. If a tool returns an error, read its Fix line, tell me what happened, and don't retry blindly.Then try requests like these:
- What's on the content calendar for the next two weeks, and what's already drafted?
- Search Console says one of our pages ranks around 9. Plan a refresh to move it into the top three, and show me the change before saving.
- Write a post about <topic> for Friday. Check it isn't a repeat of something we've published or planned first.
- Which drafts are waiting for my review? Give me the links.
- Revise the latest draft: shorter intro, and add a section on pricing.
- What did Search Console and Bing show this month, and what does Wavefront suggest we do about it?
Working with an agent
- Start with
wavefront_list_workspaces; the tool reference lists every tool and its inputs.wavefront_whoamiexplains the connection itself, andwavefront_get_overviewwhat is waiting in a workspace. - Generation is asynchronous:
wavefront_generatereturns an id, andwavefront_get_generationfollows it. Passidempotency_keyon generate, create strategy, message strategist, request revision and add comment so a retried call never does the work twice. - Results default to
response_format: "concise", about 8,000 characters. Long text comes a page at a time (offset,max_chars), and lists page withcursor.detailedreturns full metadata. - Errors come back as tool errors that read
Error <code>: <message>, with aFix:line when there is one. The codes are the same as the REST API's: errors. - Agents can't turn auto-approve on, withdraw a published page, post to social networks or send a newsletter. Publishing through MCP never emails a newsletter.
- Wavefront's own system administrators see extra
wavefront_admin_*tools for running the service. They appear only to an administrator who checked Administer Wavefront when connecting. Nobody else sees them, and they aren't listed in the tool reference.
Troubleshooting
- The agent says Wavefront is connected but turns down every edit, or
403 insufficient_scopeon a write tool: the connection was granted read only. Ask the agent to callwavefront_whoami, which says so. Then disconnect the app under Account → Connected agents and connect it again from the app, leaving write checked. Connections made before 2026-10-14 could lose write an hour after it was granted; new ones keep it. - Disconnecting an agent: Account → Connected agents, then Disconnect. Its access stops at once; connect it again from the app whenever you like.
- Asked to sign in again after a month: a connection lasts 30 days from when you approved it. Sign in again to renew it.
401from the MCP URL: that is how a client discovers the sign-in. If your client stops there, it doesn't support OAuth; usemcp-remoteas above.- Allow does nothing in the browser: tell us the client and its redirect URI at support@adwave.com.
- A tool says the workspace isn't found: the connection sees only the workspaces the person who connected belongs to. Use the slug from
wavefront_list_workspaces.
wavefront.adwave-apps.com/mcp, keep working. Set up new ones with https://wavefront.adwave.com/mcp.