PostHog MCP server: PostHog in Claude, ChatGPT and Cursor

The Ryze AI PostHog MCP server gives Claude, ChatGPT, Cursor and other MCP clients 3 tools to read PostHog events, insights, dashboards, flags, cohorts and persons, run HogQL, and create, edit or delete those objects when asked. It sits on the same URL as the Ryze AI Google Ads and Meta Ads tools, so one chat can put ad spend next to the product events it produced (see Setup).

  • Any plan
  • API key
  • 3 tools
Claude logoChatGPT logoCursor logoGrok logo

One connector for Claude, ChatGPT, Cursor and Grok Bot

Ask PostHog what your ads produced, then approve any change

Runs HogQL and reads insights, flags and cohorts for one PostHog project. Give the API key read scopes only, or in Claude set write and delete tools to Needs approval so nothing changes until you say so.

Try asking

Nine PostHog jobs for teams that also buy ads

Sign-ups behind each Google Ads campaign

  • Google Ads cost by campaign from a GAQL query
  • A HogQL count of sign-up events grouped by the utm_campaign property

Funnel for visitors from Meta Ads

  • Funnel steps read from PostHog, filtered to one utm_source
  • Meta Ads spend for the same dates beside it

Ask a question in plain words, get a HogQL query

  • Queries over events, persons and sessions
  • Every query carries a time window and a row limit

Read saved insights and dashboards

  • Lists the insights and dashboards in the project
  • Summarizes what a dashboard tracks before you open it

Audit flags and change one when asked

  • Lists flags with their rollout settings
  • Edits a flag through the write tool, which you can hold for approval

Build and review cohorts

  • Reads existing cohorts and what defines them
  • Creates a cohort from a description when you ask

Pages that bring traffic but no sign-ups

  • Search Console clicks per landing page
  • PostHog conversion events for the same URLs

A weekly product and ads summary

  • PostHog events beside Google Analytics sessions
  • Differences between the two called out in the answer

Remove what nobody uses

  • Lists stale cohorts and insights into a sheet for review
  • Deletes the ones you confirm; deletion cannot be undone

01 · Overview

What the Ryze AI PostHog MCP server is

The short version

  1. 01PostHog connects to a Ryze AI workspace with a personal API key and your host. Your AI client then connects to Ryze AI with one URL (see Setup).
  2. 02One tool reads (posthog__read, which also runs HogQL), one changes (posthog__write) and one deletes (posthog__delete).
  3. 03They reach events, insights, funnels, dashboards, feature flags, cohorts and persons in one PostHog project, within the scopes on the key.
  4. 04Google Ads, Meta Ads, TikTok Ads and GA4 answer on the same connection, so a question can join campaign cost with the events behind it.
  5. 05Works with any Ryze AI plan or trial. Paid Ads is $89/mo with a 7-day free trial.
posthog · server specOAuth
Server name
Ryze AI (PostHog tools)
Endpoint
https://connector.get-ryze.ai/mcp
Transport
Remote MCP over HTTP
Client sign-in
OAuth to Ryze AI, up to 20 workspaces per connection
PostHog sign-in
Personal API key (phx_) and a host, one project per connection
PostHog hosts
US Cloud, EU Cloud or a self-hosted URL
PostHog tools
3 (1 read · 1 write · 1 delete)
Also on this URL
Google Ads, Meta Ads, TikTok Ads, GA4, Search Console, Shopify
Price
Any Ryze AI plan or trial · Paid Ads $89/mo
Checked
November 8, 2026

“PostHog MCP” can mean four things in 2026. PostHog runs its own free, hosted MCP server at https://mcp.posthog.com/mcp that covers most PostHog products, installs it into editors with the PostHog Wizard, and ships a plugin for Claude Code and other clients. The Ryze AI server is a separate one: it reaches PostHog through your personal API key and shares a URL with the Ryze AI ad and analytics tools. This page documents the Ryze AI server and compares it with PostHog’s options in section 06.

01

One key, scoped by you

The connection uses a PostHog personal API key. Whatever scopes you tick when you create it decide what can be read or changed, and PostHog rejects anything outside them.

02

HogQL on request

posthog__read runs HogQL analytics queries over events, persons and sessions, so a plain-language question turns into SQL against your own project.

03

Saved objects included

Projects, insights, dashboards, feature flags, cohorts, persons and event definitions can all be listed and opened as well as queried.

04

Edits in their own tool

posthog__write creates or updates insights, dashboards, feature flags and cohorts. It is a separate tool, so you can hold it for approval without slowing down reads.

05

Delete only when asked

posthog__delete removes an object by path, for example a cohort. The deletion cannot be undone, so the agent only runs it on an explicit request.

06

Your host, your region

Enter https://us.posthog.com, https://eu.posthog.com or the URL of a self-hosted instance when you connect.

07

Connect from the chat

Ask the Ryze AI agent in Claude or ChatGPT to connect PostHog and it sends a one-time link, valid once and for 24 hours, where you paste the key and host.

08

Analytics next to spend

Google Ads, Meta Ads, TikTok Ads and GA4 tools run on the same URL, so cost per campaign and the events it produced come back in one answer.

02 · Tool reference

Three PostHog tools and what each covers

The tool names come from the Ryze AI connector’s source. No workspace had PostHog connected on the day this page was checked, so the live tool list and the exact input fields were not inspected, and none are listed here. The agent reads the schemas when it calls a tool.

ToolAccessWhat it doesWorth knowing
posthog__readreadReads PostHog data for the connected project: projects, insights, dashboards, feature flags, cohorts, persons and event definitions. Also runs HogQL analytics queries.HogQL needs a time window and a row limit of 1,000 at most; PostHog stops unbounded queries.
posthog__writewriteCreates or updates PostHog objects such as insights, dashboards, feature flags and cohorts.Limited by the write scopes on the personal API key. A read-only key makes PostHog reject every change.
posthog__deletedeleteDeletes a PostHog object by path, for example a cohort. The deletion is irreversible.Ryze AI describes deleting insights, dashboards, feature flags and cohorts, and only on an explicit request.

A HogQL question, as the agent might write it

posthog__read · HogQLsql
SELECT properties.utm_campaign AS campaign, count() AS signups
FROM events
WHERE event = 'sign_up'
  AND timestamp >= now() - INTERVAL 30 DAY
GROUP BY campaign
ORDER BY signups DESC
LIMIT 100

Sign-up events from the last 30 days grouped by campaign, with a time window and a row limit because PostHog stops unbounded queries. The event name is an example; the agent can list your event definitions first to find the right one. Ad and analytics tools on the same URL are documented on Google Ads MCP, Meta Ads MCP and Google Analytics MCP.

03 · Use cases

Put PostHog events next to ad spend

The join between an ad platform and PostHog runs through the properties PostHog stores on each event. When ad URLs carry utm_source, utm_medium and utm_campaign and your PostHog setup captures them as event properties, a HogQL query can group conversions by campaign, and the ad tools return cost for the same campaign names. If a property is not captured, ask the agent to list your event definitions to see what is there.

HogQL and ad spend (Google Ads or Meta Ads connected too)
  • “Pull Google Ads cost by campaign for October, count sign-up events in PostHog by utm_campaign for the same dates, and give me cost per sign-up.”
  • “Which Meta Ads campaigns from the last 30 days sent visitors who reached the pricing page but did not sign up?”
  • “Write a HogQL query for daily unique visitors with utm_medium set to cpc, limited to the last 14 days.”
Insights and dashboards
  • “List the dashboards in this project and say what each one tracks.”
  • “Which insights have not been opened or edited for 90 days?”
  • “Create an insight for sign-ups per day and add it to the dashboard I name, after showing me the definition.”
Flags and cohorts
  • “List every feature flag with its rollout percentage and tell me which ones sit at 100 percent.”
  • “Show the cohorts defined by a property filter and which ones are empty.”
  • “Create a cohort of people who signed up from a paid campaign in the last 30 days. Show the filter before saving.”
Cleanup (write and delete on approval)
  • “Collect the stale cohorts into a list. Do not change anything yet.”
  • “Rename this insight and move it to another dashboard, then read it back to confirm.”
  • “Delete the cohorts I confirm one by one.”

Every answer comes from your own PostHog project and ad accounts, so no sample numbers are shown here. For the web analytics side of the same questions, see the best MCP servers for Google Analytics.

04 · Setup

Connect PostHog once, then add the URL to each client

Step 1: link your PostHog project in Ryze AI

  1. 01In PostHog, open Settings, Personal API keys and click Create key. Grant read access to the projects you want, including the Query and Insight scopes. Copy the key, which starts with phx_.
  2. 02In the Ryze AI app, open Integrations, click Connect on the PostHog card and paste the key.
  3. 03Enter the Host: https://us.posthog.com for US Cloud, https://eu.posthog.com for EU Cloud, or your self-hosted URL. Click Continue.
  4. 04Pick the Project and click Save. The card shows Connected, and View lets you change the project later.

Prefer to stay in the chat? Ask the Ryze AI agent in Claude or ChatGPT to connect PostHog. It sends a one-time link, valid once and for 24 hours, to a page where you paste the key and enter the host. Screens for each step are in the Ryze AI help center.

Claude on the web or desktop

  1. 01Go to Customize, Connectors.
  2. 02Choose + Add, then Add custom connector. Enter Ryze AI as the name and https://connector.get-ryze.ai/mcp as the MCP server URL, then Continue. Keep OAuth sign-in; do not choose No sign in.
  3. 03Press Add, then Connect on the Ryze AI connector, sign in, choose the workspace that holds PostHog and press Allow connection.
  4. 04Claude keeps the tool list from the moment the connector is added. If you connected PostHog after that, remove the connector, add it again and start a new chat.

Custom connectors work on Free, Pro, Max, Ultra, Team and Enterprise, and Free allows one. On Team and Enterprise an Owner adds Ryze AI under Organization settings, Connectors, and each member then clicks Connect.

ChatGPT

Per OpenAI, custom MCP server connections are available on ChatGPT Business and Enterprise/Edu on the web, and Pro can connect with read and fetch permissions only. On Business, an admin or owner creates and publishes it. Open Plugins (chatgpt.com/plugins), select the plus button, then Add custom MCP server. Name it Ryze AI, enter the URL under Connection, choose OAuth, accept the risk warning, create the plugin and review the discovered tools. Sign in to Ryze AI, choose the workspace and click Allow connection.

The older route in Settings, Apps, Advanced settings, Developer mode, Create app also works for accounts that still show it, as the Ryze AI help center describes. After you connect PostHog later, remove the app, install it again and start a new chat. Plan rules differ between sources; the OpenAI article above is the one this page follows.

Claude Code

Terminalbash
claude mcp add --transport http ryze https://connector.get-ryze.ai/mcp --scope user

Run /mcp, select ryze and finish sign-in in the browser. --scope user loads it in every project. Claude Code needs a Pro, Max, Ultra, Team, Enterprise or Console account.

Cursor

.cursor/mcp.jsonjson
{ "mcpServers": {
  "ryze": { "url": "https://connector.get-ryze.ai/mcp" }
} }

Save it as ~/.cursor/mcp.json for all projects or .cursor/mcp.json for one. Cursor runs OAuth with PKCE, so you sign in on the Ryze AI page and click Allow connection. Cursor asks for approval before using MCP tools by default. The developer page has an Add to Cursor link and configs for other editors.

Grok

On grok.com, go to Connectors, click New Connector, choose Custom, enter the URL and sign in to Ryze AI. In Grok Bot, the Ryze AI help center says Ryze AI is listed under Connect apps: search Ryze AI, Add and sign in. If it is not listed, add the URL as a custom MCP server. On Grok Business and Enterprise a team admin adds the connector in the console first.

05 · Permissions and scopes

What the key can reach, and how to keep it read-only

Who can connectWhoever can create a PostHog personal API key for the project. Ryze AI asks only for that key and the host.
Which projectOne connection covers one PostHog project. After you paste the key and host, you pick the Project, and you can change it later under View on the PostHog card.
What the key reachesThe key reaches the projects you granted when you created it, within the scopes you ticked. A project missing from Ryze AI usually means the key has no read access to it.
Multiple projectsPostHog is not on the Ryze AI list of platforms that support several accounts. To switch, click View on the card, disconnect with the trash icon and connect again. Another project can sit in another workspace.
Key access in PostHogNeededRyze AI action
Read access to the projectRequiredList and open insights, dashboards, flags, cohorts and persons
QueryRequiredRun HogQL queries
InsightRequiredRead saved insights
Write access to a scope (for example insights or feature flags)OptionalCreate or edit objects in that scope only

From the Ryze AI help center, checked Nov 8, 2026. Read access is enough for reporting. To keep the agent read-only, give the key read scopes only, and PostHog rejects any change. What the agent can change is limited by the scopes on the key, so add write access only to the scopes it should edit.

Removing access

In Ryze AI, open View on the PostHog card and use the trash icon to disconnect. Then delete the personal API key under Settings, Personal API keys in PostHog so the key stops working everywhere. In Claude, open Customize, Connectors, Ryze AI and click Disconnect, which cuts off every workspace at once.

06 · Compare

Ryze AI vs PostHog’s own MCP server

Four things called PostHog MCP

OptionBuilt forHow you connectPostHog dataChanges
Ryze AI hosted serverMarketers and agencies who also run adsPersonal API key and host pasted into Ryze AI, then OAuth sign-in to Ryze AI from the clientEvents, insights, dashboards, flags, cohorts, persons, HogQLCreate, update and delete, unless the key is read-only
PostHog hosted MCP server (mcp.posthog.com/mcp)Anyone who wants all of PostHog in an AI clientOAuth with PostHog, or a personal API key in a headerAnalytics, flags, experiments, error tracking, surveys, SQL, session replay and many moreCreate, update and delete across products; read-only mode available
PostHog Wizard install (npx @posthog/wizard mcp add)Developers who want the PostHog server in an editorInstalls the same hosted server into Cursor, Claude Code, Claude Desktop, Codex, VS Code or ZedSame as the hosted serverSame as the hosted server
PostHog AI plugin for Claude Code and others (GitHub PostHog/ai-plugin)Claude Code, Codex, Cursor and Gemini CLI usersPlugin install; PostHog says it provides the same MCP tools plus slash commandsSame as the hosted serverSame as the hosted server

Sources: PostHog’s MCP overview, tools reference and FAQ, checked Nov 8, 2026. PostHog’s server is free to connect to; some of its tools use LLMs internally and may be billed as PostHog AI spend.

Ryze AI and PostHog’s server side by side

Ryze AIPostHog hosted MCP server
Tools3: read, write, deleteMore than 1,000 tools across dozens of product categories, per its tools reference
PostHog products coveredAnalytics objects: insights, dashboards, flags, cohorts, persons, event definitions, HogQLAlso error tracking, experiments, surveys, session replay, data warehouse and more
Sign-inPersonal API key in Ryze AI, then OAuth to Ryze AIOAuth to PostHog recommended; a personal API key works for clients without OAuth
Read-onlyGive the key read scopes onlyHeader x-posthog-read-only or query parameter readonly=true, or read scopes on the key
Tool filteringBy key scopes and Tool approvalsfeatures and tools query parameters
Several projectsOne per connection; another workspace for another projectOne connection per organization and project, or switch tools when not pinned
Other data in the same chatGoogle Ads, Meta Ads, TikTok Ads, GA4, Search Console, ShopifyPostHog only
PriceAny Ryze AI plan or trial. Paid Ads $89/mo, 7-day free trialFree to connect; some AI-powered tools may bill as PostHog AI spend

As published on Nov 8, 2026. PostHog adds tools to its server often, so check its tools reference before you decide.

Which to pick: if the work stays inside PostHog, PostHog’s own server covers far more of it (error tracking, experiments, surveys, session replay, the data warehouse) and signs in with OAuth, so it is the better fit for engineers and product teams. Ryze AI fits when the question crosses tools, such as sign-ups by Google Ads campaign or Meta Ads spend beside a funnel, or when the same login already runs your ad accounts. Nothing stops you from adding both to one client.

07 · API limits

PostHog limits an agent runs into

Ryze AI HogQL boundsQueries need a time window and a row limit of 1,000 at most. PostHog stops unbounded queries.
Analytics endpointsPostHog's API docs set 240 requests per minute and 1,200 per hour for analytics endpoints such as calculating insights or retrieving persons.
Query endpoint2,400 requests per hour. Queries made with a personal API key also draw from an hourly read budget that PostHog documents on its queries page.
Events values endpoint60 requests per minute and 300 per hour, and a personal API key must name an event.
Counted per keyPostHog's default API limits only count requests made with a personal API key, and they count per key. Requests with OAuth skip them.
PostHog hosted MCP limitsPostHog's own MCP server allows 480 requests per minute and 4,800 per hour per credential. These apply when a client connects to mcp.posthog.com, not to the Ryze AI connection.
Over the limitPostHog's MCP server answers 429 with a Retry-After header. Wait for that long before asking again.
One projectA connection reads and changes one PostHog project at a time.
Client plansClaude: any plan, with one custom connector on Free. ChatGPT: custom MCP connectors on Business and Enterprise/Edu, read and fetch only on Pro, per OpenAI.

From PostHog’s API docs and MCP FAQ, checked Nov 8, 2026. Some endpoints set their own limits per project or per organization. Ryze AI does not publish which PostHog endpoints its tools call, so treat the numbers as the ceiling PostHog documents.

08 · Approvals and safety

How you keep control of edits

Default setting

The Tool approvals picker in the Ryze AI chat starts on Skip all approvals for PostHog, so the agent runs its tools on its own. Change it before you connect a project you care about.

Approvals in the Ryze AI app

Approve write & delete lets reads run freely and holds every change for you. Manual approve holds every tool that touches your data. Scheduled tasks run without an approval step.

Approvals in Claude

Under Customize, Connectors, Ryze AI, Tool permissions, leave the read tool on automatic and set the write and delete tools to Needs approval.

Read-only key

A personal API key with read scopes only is the strongest control: PostHog rejects any change, whatever the approvals setting says.

Delete kept separate

Only posthog__delete removes objects, so you can allow edits and keep removals on approval. A deletion cannot be undone.

09 · Errors and fixes

PostHog MCP errors and what to do

Message or symptomCauseFix
Key rejected when connectingThe host does not match where the account lives (US or EU), or the key lacks the Query and Insight scopes.Use https://us.posthog.com or https://eu.posthog.com to match the account, and recreate the key with those scopes.
The project is missing from the listThe key has no read access to that project.Edit the key's project access in PostHog, then reconnect.
A change is rejectedThe key has read scopes only, which is the intended read-only setup.Create a key with write access for the scope you want to change, then reconnect.
A HogQL query stops or returns nothingPostHog stops unbounded queries.Ask for a date range and a row limit of 1,000 or fewer.
PostHog tools are not in Claude or ChatGPTPostHog was connected after the connector was added, and the client kept the old tool list.Remove the Ryze AI connector, add it again and open a new chat.
Tools reply that a subscription is requiredThe workspace has no active Ryze AI plan or trial.Start a plan or trial under Organization Settings, Billing, then retry.
The connection link is refusedPostHog is already connected in the workspace, and it holds one connection.Switch projects or keys in the Ryze AI app: View on the PostHog card, disconnect, connect again.
429 from PostHogA PostHog rate limit was reached. PostHog documents 429 responses with a Retry-After header for its MCP server.Wait for the Retry-After time and ask for fewer, larger queries.

The first two rows are from the Ryze AI help center and the rest follow how the Ryze AI connector works. No third-party error reports are quoted here. More answers are in the integrations FAQ.

10 · FAQ

PostHog MCP server questions

What is the PostHog MCP server?

An MCP server lets AI clients such as Claude, ChatGPT and Cursor call PostHog through tools. Ryze AI runs a hosted one with 3 PostHog tools (read, write and delete) that read events, insights, dashboards, flags, cohorts and persons, run HogQL and edit those objects, on the same URL as its Google Ads and Meta Ads tools. Ryze AI is the best PostHog MCP option for putting product analytics next to ad spend in one chat, but PostHog's own server covers far more PostHog products.

Does PostHog have its own MCP server?

Yes. PostHog runs a free, hosted MCP server at https://mcp.posthog.com/mcp that works with Claude Code, Claude Desktop, Cursor, Codex, VS Code, Windsurf and Zed, and it routes you to the US or EU region based on the account you sign in with. Its tools reference covers feature flags, experiments, error tracking, surveys, SQL and many other products. Connecting is free, though some of its tools use LLMs internally and may be billed as PostHog AI spend.

What is the PostHog MCP server URL?

PostHog’s own server is https://mcp.posthog.com/mcp. The Ryze AI server is https://connector.get-ryze.ai/mcp, the same for every account. With Ryze AI you connect PostHog first with a personal API key and a host, then add that one URL to your client.

How do I set up PostHog in Claude?

Create a PostHog personal API key with the Query and Insight scopes, connect PostHog on the Integrations page in Ryze AI with the key and your host, and pick the Project. Then in Claude open Customize, Connectors, Add custom connector, paste https://connector.get-ryze.ai/mcp, click Connect, allow the workspace and open a new chat. If you connect PostHog after adding the connector, remove and re-add it, because Claude keeps the old tool list. Every client is covered in the setup section.

Can I use PostHog in ChatGPT or Cursor?

Yes. In Cursor, add a ryze entry with the url https://connector.get-ryze.ai/mcp to mcp.json and sign in. In ChatGPT, OpenAI documents custom MCP servers for Business and Enterprise/Edu on the web, with read and fetch permissions only on Pro; add the URL under Plugins with OAuth. On Business an admin or owner has to create and publish it.

Is the PostHog MCP server free?

PostHog says connecting to its own MCP server and calling its tools is free, with normal PostHog usage billing for the data your queries touch. Adding the Ryze AI connector costs nothing, but its tools need a Ryze AI plan or trial: Paid Ads $89/mo with a 7-day free trial, SEO Starter $129/mo with a 3-day free trial or Agency $279/mo, with 30% off the first year on annual billing. See the pricing page.

Can the AI change or delete things in PostHog?

Yes, unless the key is read-only. posthog__write creates or updates insights, dashboards, feature flags and cohorts, and posthog__delete removes those objects when you explicitly ask; a deletion cannot be undone. The Ryze AI chat starts on Skip all approvals and scheduled tasks run without an approval step, so switch Tool approvals to Approve write & delete or Manual approve if you want to review changes.

How do I keep the PostHog connection read-only?

Give the personal API key read scopes only. PostHog then rejects any change, whatever the approvals setting is. For a second layer, set write and delete tools to Needs approval in Claude under Customize, Connectors, Ryze AI, Tool permissions, or switch the Ryze AI chat to Approve write & delete.

Which API key scopes and host does PostHog need?

A personal API key that starts with phx_, with read access to the projects you want, including the Query and Insight scopes. Add write access only to the scopes the agent should change. The host is https://us.posthog.com for US Cloud, https://eu.posthog.com for EU Cloud, or your self-hosted URL. If the key is rejected, check that the host matches where the account lives.

Can I connect more than one PostHog project?

Each connection holds one PostHog project, and PostHog is not on the Ryze AI list of platforms that support several accounts. To switch projects, click View on the PostHog card, disconnect with the trash icon and connect again. Another project can live in another workspace, and one Claude or ChatGPT connection can cover up to 20 workspaces.

Can Claude run HogQL against PostHog?

Yes. posthog__read runs HogQL analytics queries over events, persons and sessions. PostHog stops unbounded queries, so each query needs a time window and a row limit of 1,000 at most. Name the date range you want in the prompt.

What are the PostHog API rate limits?

PostHog's API docs set 240 requests per minute and 1,200 per hour for analytics endpoints, 2,400 per hour for the query endpoint, and 60 per minute and 300 per hour for the events values endpoint. The default limits count requests made with a personal API key, per key. PostHog's own MCP server adds 480 requests per minute and 4,800 per hour per credential, which applies when a client connects to mcp.posthog.com rather than to Ryze AI.

Why are the PostHog tools missing in Claude or ChatGPT?

The client kept the tool list from before PostHog was connected. Remove the Ryze AI connector, add it again and open a new chat. If the tools reply that a subscription is required, the workspace has no active Ryze AI plan or trial; without one the connector can only list workspaces and connect platforms.

11 · Compatibility

Where the PostHog tools run

Claude (web & desktop)01
Claude Code02
ChatGPT03
Cursor04
Windsurf05
VS Code06
Grok07
Own agents (API key)08

12 · Related

Other integrations and guides

Changelog

Page checked Nov 8, 2026. First version. Setup steps, scopes and approvals were checked against the Ryze AI help center and the Ryze AI connector’s source. PostHog’s server, rate limits and read-only options were checked against posthog.com/docs. The tool names come from source; PostHog was not connected in a live workspace, so the live tool list was not seen.

Personal API key · 3 PostHog tools · Ad data on the same URL

Bring PostHog into your AI chat

The PostHog tools work with any Ryze AI plan or trial: Paid Ads at $89/mo with a 7-day free trial, Agency at $279/mo for client workspaces, or SEO Starter at $129/mo with a 3-day free trial. Annual billing takes 30% off the first year.

Nothing to host · A read-only key keeps edits out · Approvals you can switch on