Skip to content

Connectors · Observability & analytics

PostHog MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to PostHog and the rest of your systems. It gives your agent 583 PostHog actions (279 reads, 227 writes and 77 that wait for a confirmation) and holds the PostHog credential itself, so the agent never does. It paces PostHog's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "posthog.persons.list",  intent: "check which PostHog account is connected"}# List Persons · read · 1 upstream call
  • 583actionsin one signed file
  • 279readlook, never change
  • 227writecreate and update
  • 77wait for a yesdestructive, confirmed first

Set up

Connect PostHog in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect PostHog.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • tokenPostHog personal API key (phx_...)
    • hostWhere your PostHog lives: your host
    • project_idYour PostHog project id
    account { op: "connections.requirements", service: "posthog" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "posthog.persons.list" }# list persons · read · 1 upstream callcheck { action: "posthog.groups.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

PostHog at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
token
Setup fields
hostproject_id
Limits we pace to
240 calls a minute, per connection
API covered
PostHog API 1.0.0, at your PostHog instance's API base URL, which you enter when connecting
Built from
PostHog's documentation, read 18 September 2026us.posthog.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
262 of 279 reads, for up to an hour; a write clears what it affects
Ready-made plans
10 in the store
Shared entities
5, so ask can line PostHog up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in PostHog.

583 actions in 41 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 279readlook, never change
  • 227writecreate and update
  • 77destructivewait for a confirmation
  1. Error tracking

    90

    42 read · 34 write · 14 destructive

    List Error Tracking Assignment Rules · List Error Tracking Bypass Rules · List Error Tracking Grouping Rules · List Error Tracking Severity Rules

  2. Organizations

    89

    40 read · 35 write · 14 destructive

    List_for_organization Organizations Members · List_for_organization Organizations Roles · List Organizations · Update Organizations Members

  3. Experiments

    37

    17 read · 19 write · 1 destructive

    Create Experiments · List Experiments · Create Experiments Create From Prompt · List Experiments Matching Ids

  4. Dashboards

    26

    7 read · 15 write · 4 destructive

    List Dashboards · Create Dashboards · Create Dashboards Create From Template Json · Create Dashboards Create Unlisted Dashboard

  5. Feature flags

    26

    14 read · 10 write · 2 destructive

    Create_for_feature_flag Feature Flags Dashboard · Create_for_feature_flag Feature Flags Create Static Cohort For Flag · Create_for_feature_flag Feature Flags Enrich Usage Dashboard · Create Feature Flags User Blast Radius

  6. Insights

    25

    11 read · 10 write · 4 destructive

    List Insights · Create Insights Viewed · Create Insights · Get Insights

  7. Surveys

    21

    12 read · 8 write · 1 destructive

    List Surveys · Create Surveys · List Surveys Question Labels · Get Surveys

  8. Batch exports

    20

    9 read · 8 write · 3 destructive

    List Batch Exports · Create Batch Exports · List Batch Exports Test · Get Batch Exports

33 more areas · 249 actions
  • Hog functions 20
  • Persons 19
  • Notebooks 15
  • Event definitions 13
  • File system 13
  • Cohorts 12
  • Comments 10
  • Groups types 10
  • Alerts 9
  • Query 9
  • Session recordings 9
  • Subscriptions 9
  • Groups 8
  • Session recording playlists 8
  • Actions 7
  • Dashboard templates 7
  • Elements 7
  • File system shortcut 6
  • Property definitions 6
  • Annotations 5
  • Early access feature 5
  • Experiment holdouts 5
  • Experiment saved metrics 5
  • Insight variables 5
  • Scheduled changes 5
  • Web experiments 5
  • Exports 4
  • Users 4
  • Events 3
  • Heatmaps 2
  • Sessions 2
  • Activity log 1
  • Plugin configs 1

Top actions

The PostHog API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 243 of PostHog's 264 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
posthog.organizations.members.list_for_organizationList_for_organization Organizations MembersList_for_organization Organizations Membersreadidentity.group_member.list103 connectors
posthog.persons.listList PersonsThis endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture…readanalytics.profile.list3 connectors
posthog.groups.listList GroupsList all groups of a specific group type. You must pass ?group_type_index= in the URL. To get a list of valid group types, call…readanalytics.profile.list3 connectors
posthog.users.listList UsersList Usersreadidentity.user.list474 connectors
posthog.groups_types.listList Groups TypesList Groups Typesreadanalytics.dataset.list28 connectors
posthog.dashboards.listList DashboardsList Dashboardsreadanalytics.dashboard.list22 connectors
posthog.dashboard_templates.listList Dashboard TemplatesList Dashboard Templatesreadanalytics.dashboard.list22 connectors
posthog.groups.createCreate GroupsCreate Groupswriteanalytics.profile.create2 connectors
posthog.actions.listList ActionsList Actionsreadanalytics.segment.list17 connectors
posthog.elements.createCreate ElementsCreate Elementswriteanalytics.tracked_event.create12 connectors
posthog.experiments.createCreate ExperimentsCreate a new experiment in draft status with optional metrics.writeanalytics.experiment.create12 connectors
posthog.groups_types.deleteDelete Groups TypesDelete Groups Typesdestructiveanalytics.dataset.delete23 connectors

Try it

Prompts to paste into Claude.

Each one names the PostHog actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Give me a one-line status for every active PostHog project.

    callsposthog.organizations.projects.list_for_organization

  2. Planwrite

    Backfill a batch export and watch it finish in PostHog.

    callsposthog.batch_exports.pause.create_for_batch_exportposthog.batch_exports.backfills.create_for_batch_exportposthog.batch_exports.backfills.getposthog.batch_exports.unpause.create_for_batch_exportposthog.batch_exports.logs.list_for_batch_export

  3. Plandestructive

    Invite a member and grant a role in PostHog. Ask me before anything is sent or changed.

    callsposthog.organizations.invites.list_for_organizationposthog.organizations.roles.getposthog.organizations.invites.create_for_organizationposthog.organizations.roles.role_memberships.create_for_roleposthog.organizations.members.scoped_api_keys.list_for_member

  4. Writewrite

    Create Groups in PostHog. Show me exactly what you will send before you save it.

    callsposthog.groups.create

The plan store

Ready-made plans for PostHog.

10 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Audit who can see each dashboard

    Use it when Someone is running an access review and needs to know which PostHog dashboards are shared and with whom.

    Effect
    write
    Steps
    4 · loops
    Needs
    project id
    Install
    posthog-audit-dashboard-sharing
  2. Run a query and save the answer

    Use it when Someone wants an ad hoc PostHog query run and the result stored in a notebook instead of pasted into chat.

    Effect
    write
    Steps
    4
    Needs
    project id, query and title
    Install
    posthog-run-hogql-query-to-notebook
  3. Build the weekly survey response report

    Use it when Someone asks for a weekly written summary of how the PostHog surveys performed over a date range.

    Effect
    write
    Steps
    4
    Needs
    project id, date from and date to
    Install
    posthog-weekly-survey-report
  4. Backfill a batch export and watch it finish

    Use it when A batch export missed a window and needs a backfill run safely, with the export paused while it catches up.

    Effect
    write
    Steps
    5
    Needs
    project id, batch export id, start at and end at
    Install
    posthog-backfill-batch-export
  5. Triage open error tracking issues

    Use it when An on-call engineer wants the PostHog error tracking board triaged with a severity and status set on each open issue.

    Effect
    write
    Steps
    5 · loops
    Needs
    project id
    Install
    posthog-triage-error-tracking-issues
  6. Verify and tag the live event definitions

    Use it when The analytics taxonomy needs its live events marked verified and tagged after an instrumentation change.

    Effect
    write
    Steps
    5
    Needs
    project id and definition ids
    Install
    posthog-verify-event-definitions
  7. Restore and publish a hog function revision

    Use it when A hog function needs rolling back to an earlier revision and someone must approve before it goes live.

    A person decidesRestore hog function hog function id to revision version and publish it live.

    Effect
    write
    Steps
    6
    Needs
    project id, hog function id and version
    Install
    posthog-publish-hog-function-revision
  8. Retire stale feature flags after approval

    Use it when A team wants old feature flags cleaned out of PostHog but a human must sign off before anything is removed.

    A person decidesPermanently delete candidate count PostHog feature flags: items, ', '.

    Effect
    destructive
    Steps
    5
    Needs
    project id and flag ids
    Install
    posthog-retire-stale-feature-flags
  9. Invite a member and grant a role

    Use it when A new teammate needs a PostHog organization invite plus a role, with someone signing off on the access level.

    A person decidesInvite target email to the organization and grant the role name.

    Effect
    destructive
    Steps
    6
    Needs
    organization id, target email, role id and user uuid
    Install
    posthog-onboard-organization-member
  10. Purge session recordings after sign-off

    Use it when A retention or privacy request requires session recordings to be deleted, with explicit human sign-off first.

    A person decidesPermanently delete purge count session recordings from date from onward. This cannot be undone.

    Effect
    destructive
    Steps
    6
    Needs
    project id, short id, session recording ids and date from
    Install
    posthog-purge-session-recordings
install a plan
account { op: "plans.install", slug: "posthog-audit-dashboard-sharing" }
# then ask for it by name; a schedule can run it on a timetable

Governance for PostHog

Destructive actions wait for a yes.

77 PostHog actions are destructive. The first 10:

  • Delete Groups Typesposthog.groups_types.delete
  • Delete Dashboardsposthog.dashboards.delete
  • Delete Dashboard Templatesposthog.dashboard_templates.delete
  • Delete Usersposthog.users.delete
  • Delete Organizations Membersposthog.organizations.members.delete
  • Create Persons Bulk Deleteposthog.persons.bulk_delete.create
  • Delete Actionsposthog.actions.delete
  • Delete Cohortsposthog.cohorts.delete
  • Delete Experimentsposthog.experiments.delete
  • Delete Web Experimentsposthog.web_experiments.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doposthog.groups_types.deleteconfirm_policy: human

Delete Groups Types?

intent: the user asked me to delete Groups Types

run suspended · waiting for a named person · key posthog-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "posthog-agent",  allowed_actions: ["posthog.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "posthog.groups_types.delete", approver: "[email protected]" },    { match: "posthog.dashboards.delete", approver: "[email protected]" },    { match: "posthog.dashboard_templates.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to PostHog only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What PostHog costs on actionlake.

Every PostHog action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call PostHog refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 583 PostHog actions
  • 583actions pageeach page of a long list is one call
  • 262reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every PostHog action.

583 actions by area: the id your agent calls, what it does, and its effect.

Error tracking90
  • posthog.error_tracking.assignment_rules.listList Error Tracking Assignment Rulesread
  • posthog.error_tracking.bypass_rules.listList Error Tracking Bypass Rulesread
  • posthog.error_tracking.grouping_rules.listList Error Tracking Grouping Rulesread
  • posthog.error_tracking.severity_rules.listList Error Tracking Severity Rulesread
  • posthog.error_tracking.alerts.createCreate Error Tracking Alertswrite
  • posthog.error_tracking.alerts.deleteDelete Error Tracking Alertsdestructive
  • and 84 more in this area
Organizations89
  • posthog.organizations.listList Organizationsread
  • posthog.organizations.members.list_for_organizationList_for_organization Organizations Membersread
  • posthog.organizations.members.updateUpdate Organizations Memberswrite
  • posthog.organizations.roles.list_for_organizationList_for_organization Organizations Rolesread
  • posthog.organizations.batch_exports.create_for_organizationCreate_for_organization Organizations Batch Exportswrite
  • posthog.organizations.batch_exports.deleteDelete Organizations Batch Exportsdestructive
  • and 83 more in this area
Experiments37
  • posthog.experiments.createCreate Experimentswrite
  • posthog.experiments.create_from_prompt.createCreate Experiments Create From Promptwrite
  • posthog.experiments.listList Experimentsread
  • posthog.experiments.matching_ids.listList Experiments Matching Idsread
  • posthog.experiments.activity.list_for_experimentList_for_experiment Experiments Activityread
  • posthog.experiments.archive.create_for_experimentCreate_for_experiment Experiments Archivewrite
  • and 31 more in this area
Dashboards26
  • posthog.dashboards.createCreate Dashboardswrite
  • posthog.dashboards.create_from_template_json.createCreate Dashboards Create From Template Jsonwrite
  • posthog.dashboards.create_unlisted_dashboard.createCreate Dashboards Create Unlisted Dashboardwrite
  • posthog.dashboards.listList Dashboardsread
  • posthog.dashboards.bulk_update_tags.createCreate Dashboards Bulk Update Tagswrite
  • posthog.dashboards.collaborators.create_for_dashboardCreate_for_dashboard Dashboards Collaboratorswrite
  • and 20 more in this area
Feature flags26
  • posthog.feature_flags.create_static_cohort_for_flag.create_for_feature_flagCreate_for_feature_flag Feature Flags Create Static Cohort For Flagwrite
  • posthog.feature_flags.dashboard.create_for_feature_flagCreate_for_feature_flag Feature Flags Dashboardwrite
  • posthog.feature_flags.enrich_usage_dashboard.create_for_feature_flagCreate_for_feature_flag Feature Flags Enrich Usage Dashboardwrite
  • posthog.feature_flags.user_blast_radius.createCreate Feature Flags User Blast Radiusread
  • posthog.feature_flags.activity.listList Feature Flags Activityread
  • posthog.feature_flags.activity.list_for_feature_flagList_for_feature_flag Feature Flags Activityread
  • and 20 more in this area
Insights25
  • posthog.insights.createCreate Insightswrite
  • posthog.insights.getGet Insightsread
  • posthog.insights.listList Insightsread
  • posthog.insights.viewed.createCreate Insights Viewedwrite
  • posthog.insights.activity.listList Insights Activityread
  • posthog.insights.activity.list_for_insightList_for_insight Insights Activityread
  • and 19 more in this area
Surveys21
  • posthog.surveys.createCreate Surveyswrite
  • posthog.surveys.getGet Surveysread
  • posthog.surveys.listList Surveysread
  • posthog.surveys.question_labels.listList Surveys Question Labelsread
  • posthog.surveys.activity.listList Surveys Activityread
  • posthog.surveys.activity.list_for_surveyList_for_survey Surveys Activityread
  • and 15 more in this area
Batch exports20
  • posthog.batch_exports.createCreate Batch Exportswrite
  • posthog.batch_exports.getGet Batch Exportsread
  • posthog.batch_exports.listList Batch Exportsread
  • posthog.batch_exports.test.listList Batch Exports Testread
  • posthog.batch_exports.backfills.cancel.create_for_backfillCreate_for_backfill Batch Exports Backfills Canceldestructive
  • posthog.batch_exports.backfills.create_for_batch_exportCreate_for_batch_export Batch Exports Backfillswrite
  • and 14 more in this area
Hog functions20
  • posthog.hog_functions.createCreate Hog Functionswrite
  • posthog.hog_functions.icons.listList Hog Functions Iconsread
  • posthog.hog_functions.listList Hog Functionsread
  • posthog.hog_functions.masked_secrets.listList Hog Functions Masked Secretsread
  • posthog.hog_functions.deleteDelete Hog Functionsdestructive
  • posthog.hog_functions.discard_draft.create_for_hog_functionCreate_for_hog_function Hog Functions Discard Draftwrite
  • and 14 more in this area
Persons19
  • posthog.persons.batch_by_distinct_ids.createCreate Persons Batch By Distinct Idsread
  • posthog.persons.batch_by_uuids.createCreate Persons Batch By Uuidsread
  • posthog.persons.getGet Personsread
  • posthog.persons.listList Personsread
  • posthog.persons.activity.listList Persons Activityread
  • posthog.persons.activity.list_for_personList_for_person Persons Activityread
  • and 13 more in this area
Notebooks15
  • posthog.notebooks.createCreate Notebookswrite
  • posthog.notebooks.getGet Notebooksread
  • posthog.notebooks.listList Notebooksread
  • posthog.notebooks.updateUpdate Notebookswrite
  • posthog.notebooks.activity.listList Notebooks Activityread
  • posthog.notebooks.activity.list_for_notebookList_for_notebook Notebooks Activityread
  • and 9 more in this area
Event definitions13
  • posthog.event_definitions.by_name.listList Event Definitions By Nameread
  • posthog.event_definitions.createCreate Event Definitionswrite
  • posthog.event_definitions.listList Event Definitionsread
  • posthog.event_definitions.updateUpdate Event Definitionswrite
  • posthog.event_definitions.bulk_update_tags.createCreate Event Definitions Bulk Update Tagswrite
  • posthog.event_definitions.bulk_update_verified.createCreate Event Definitions Bulk Update Verifiedwrite
  • and 7 more in this area
File system13
  • posthog.file_system.createCreate File Systemwrite
  • posthog.file_system.listList File Systemread
  • posthog.file_system.log_view.createCreate File System Log Viewwrite
  • posthog.file_system.unfiled.listList File System Unfiledread
  • posthog.file_system.count.query_for_file_systemQuery_for_file_system File System Countread
  • posthog.file_system.count_by_path.queryQuery File System Count By Pathread
  • and 7 more in this area
Cohorts12
  • posthog.cohorts.createCreate Cohortswrite
  • posthog.cohorts.getGet Cohortsread
  • posthog.cohorts.listList Cohortsread
  • posthog.cohorts.persons.list_for_cohortList_for_cohort Cohorts Personsread
  • posthog.cohorts.activity.listList Cohorts Activityread
  • posthog.cohorts.activity.list_for_cohortList_for_cohort Cohorts Activityread
  • and 6 more in this area
Comments10
  • posthog.comments.send_to_slack.create_for_commentCreate_for_comment Comments Send To Slackwrite
  • posthog.comments.complete.create_for_commentCreate_for_comment Comments Completewrite
  • posthog.comments.count.listList Comments Countread
  • posthog.comments.createCreate Commentswrite
  • posthog.comments.deleteDelete Commentsdestructive
  • posthog.comments.getGet Commentsread
  • and 4 more in this area
Groups types10
  • posthog.groups_types.deleteDelete Groups Typesdestructive
  • posthog.groups_types.listList Groups Typesread
  • posthog.groups_types.metrics.create_for_groups_typeCreate_for_groups_type Groups Types Metricswrite
  • posthog.groups_types.metrics.list_for_groups_typeList_for_groups_type Groups Types Metricsread
  • posthog.groups_types.create_detail_dashboard.updateUpdate Groups Types Create Detail Dashboardwrite
  • posthog.groups_types.metrics.deleteDelete Groups Types Metricsdestructive
  • and 4 more in this area
Alerts9
  • posthog.alerts.createCreate Alertswrite
  • posthog.alerts.getGet Alertsread
  • posthog.alerts.listList Alertsread
  • posthog.alerts.updateUpdate Alertswrite
  • posthog.alerts.deleteDelete Alertsdestructive
  • posthog.alerts.destinations.create_for_alertCreate_for_alert Alerts Destinationswrite
  • and 3 more in this area
Query9
  • posthog.query.by_kind.queryQuery Query By Kindread
  • posthog.query.check_auth_for_async.queryQuery Query Check Auth For Asyncread
  • posthog.query.draft_sql.listList Query Draft Sqlread
  • posthog.query.queryQuery Queryread
  • posthog.query.deleteDelete Querydestructive
  • posthog.query.getGet Queryread
  • and 3 more in this area
Session recordings9
  • posthog.session_recordings.deleteDelete Session Recordingsdestructive
  • posthog.session_recordings.getGet Session Recordingsread
  • posthog.session_recordings.listList Session Recordingsread
  • posthog.session_recordings.updateUpdate Session Recordingswrite
  • posthog.session_recordings.bulk_delete.createCreate Session Recordings Bulk Deletedestructive
  • posthog.session_recordings.sharing.list_for_session_recordingList_for_session_recording Session Recordings Sharingread
  • and 3 more in this area
Subscriptions9
  • posthog.subscriptions.createCreate Subscriptionswrite
  • posthog.subscriptions.getGet Subscriptionsread
  • posthog.subscriptions.listList Subscriptionsread
  • posthog.subscriptions.updateUpdate Subscriptionswrite
  • posthog.subscriptions.deleteDelete Subscriptionsdestructive
  • posthog.subscriptions.deliveries.getGet Subscriptions Deliveriesread
  • and 3 more in this area
Groups8
  • posthog.groups.createCreate Groupswrite
  • posthog.groups.find.listList Groups Findread
  • posthog.groups.listList Groupsread
  • posthog.groups.related.listList Groups Relatedread
  • posthog.groups.activity.listList Groups Activityread
  • posthog.groups.delete_property.createCreate Groups Delete Propertydestructive
  • and 2 more in this area
Session recording playlists8
  • posthog.session_recording_playlists.createCreate Session Recording Playlistswrite
  • posthog.session_recording_playlists.getGet Session Recording Playlistsread
  • posthog.session_recording_playlists.listList Session Recording Playlistsread
  • posthog.session_recording_playlists.updateUpdate Session Recording Playlistswrite
  • posthog.session_recording_playlists.deleteDelete Session Recording Playlistsdestructive
  • posthog.session_recording_playlists.recordings.createCreate Session Recording Playlists Recordingswrite
  • and 2 more in this area
Actions7
  • posthog.actions.createCreate Actionswrite
  • posthog.actions.getGet Actionsread
  • posthog.actions.listList Actionsread
  • posthog.actions.references.list_for_actionList_for_action Actions Referencesread
  • posthog.actions.bulk_update_tags.createCreate Actions Bulk Update Tagswrite
  • posthog.actions.deleteDelete Actionsdestructive
  • and 1 more in this area
Dashboard templates7
  • posthog.dashboard_templates.createCreate Dashboard Templateswrite
  • posthog.dashboard_templates.getGet Dashboard Templatesread
  • posthog.dashboard_templates.listList Dashboard Templatesread
  • posthog.dashboard_templates.updateUpdate Dashboard Templateswrite
  • posthog.dashboard_templates.copy_between_projects.createCreate Dashboard Templates Copy Between Projectswrite
  • posthog.dashboard_templates.deleteDelete Dashboard Templatesdestructive
  • and 1 more in this area
Elements7
  • posthog.elements.createCreate Elementswrite
  • posthog.elements.getGet Elementsread
  • posthog.elements.listList Elementsread
  • posthog.elements.values.listList Elements Valuesread
  • posthog.elements.deleteDelete Elementsdestructive
  • posthog.elements.stats.listList Elements Statsread
  • and 1 more in this area
File system shortcut6
  • posthog.file_system_shortcut.createCreate File System Shortcutwrite
  • posthog.file_system_shortcut.getGet File System Shortcutread
  • posthog.file_system_shortcut.listList File System Shortcutread
  • posthog.file_system_shortcut.updateUpdate File System Shortcutwrite
  • posthog.file_system_shortcut.deleteDelete File System Shortcutdestructive
  • posthog.file_system_shortcut.reorder.createCreate File System Shortcut Reorderwrite
Property definitions6
  • posthog.property_definitions.getGet Property Definitionsread
  • posthog.property_definitions.listList Property Definitionsread
  • posthog.property_definitions.seen_together.listList Property Definitions Seen Togetherread
  • posthog.property_definitions.updateUpdate Property Definitionswrite
  • posthog.property_definitions.bulk_update_tags.createCreate Property Definitions Bulk Update Tagswrite
  • posthog.property_definitions.deleteDelete Property Definitionsdestructive
Annotations5
  • posthog.annotations.createCreate Annotationswrite
  • posthog.annotations.getGet Annotationsread
  • posthog.annotations.listList Annotationsread
  • posthog.annotations.updateUpdate Annotationswrite
  • posthog.annotations.deleteDelete Annotationsdestructive
Early access feature5
  • posthog.early_access_feature.createCreate Early Access Featurewrite
  • posthog.early_access_feature.getGet Early Access Featureread
  • posthog.early_access_feature.listList Early Access Featureread
  • posthog.early_access_feature.updateUpdate Early Access Featurewrite
  • posthog.early_access_feature.deleteDelete Early Access Featuredestructive
Experiment holdouts5
  • posthog.experiment_holdouts.createCreate Experiment Holdoutswrite
  • posthog.experiment_holdouts.getGet Experiment Holdoutsread
  • posthog.experiment_holdouts.listList Experiment Holdoutsread
  • posthog.experiment_holdouts.updateUpdate Experiment Holdoutswrite
  • posthog.experiment_holdouts.deleteDelete Experiment Holdoutsdestructive
Experiment saved metrics5
  • posthog.experiment_saved_metrics.createCreate Experiment Saved Metricswrite
  • posthog.experiment_saved_metrics.getGet Experiment Saved Metricsread
  • posthog.experiment_saved_metrics.listList Experiment Saved Metricsread
  • posthog.experiment_saved_metrics.updateUpdate Experiment Saved Metricswrite
  • posthog.experiment_saved_metrics.deleteDelete Experiment Saved Metricsdestructive
Insight variables5
  • posthog.insight_variables.createCreate Insight Variableswrite
  • posthog.insight_variables.getGet Insight Variablesread
  • posthog.insight_variables.listList Insight Variablesread
  • posthog.insight_variables.updateUpdate Insight Variableswrite
  • posthog.insight_variables.deleteDelete Insight Variablesdestructive
Scheduled changes5
  • posthog.scheduled_changes.createCreate Scheduled Changeswrite
  • posthog.scheduled_changes.getGet Scheduled Changesread
  • posthog.scheduled_changes.listList Scheduled Changesread
  • posthog.scheduled_changes.updateUpdate Scheduled Changeswrite
  • posthog.scheduled_changes.deleteDelete Scheduled Changesdestructive
Web experiments5
  • posthog.web_experiments.createCreate Web Experimentswrite
  • posthog.web_experiments.getGet Web Experimentsread
  • posthog.web_experiments.listList Web Experimentsread
  • posthog.web_experiments.updateUpdate Web Experimentswrite
  • posthog.web_experiments.deleteDelete Web Experimentsdestructive
Exports4
  • posthog.exports.content.list_for_exportList_for_export Exports Contentread
  • posthog.exports.createCreate Exportswrite
  • posthog.exports.getGet Exportsread
  • posthog.exports.listList Exportsread
Users4
  • posthog.users.deleteDelete Usersdestructive
  • posthog.users.getGet Usersread
  • posthog.users.listList Usersread
  • posthog.users.updateUpdate Userswrite
Events3
  • posthog.events.getGet Eventsread
  • posthog.events.listList Eventsread
  • posthog.events.values.listList Events Valuesread
Heatmaps2
  • posthog.heatmaps.events.listList Heatmaps Eventsread
  • posthog.heatmaps.listList Heatmapsread
Sessions2
  • posthog.sessions.property_definitions.listList Sessions Property Definitionsread
  • posthog.sessions.values.listList Sessions Valuesread
Activity log1
  • posthog.activity_log.listList Activity Logread
Plugin configs1
  • posthog.plugin_configs.logs.list_for_plugin_configList_for_plugin_config Plugin Configs Logsread

This index shows a sample of each area. All 583 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The PostHog MCP server, answered.

Is there a PostHog MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 583 PostHog actions across error tracking, organizations, experiments and dashboards, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by PostHog.

What do I need to connect PostHog?

PostHog personal API key (phx_...). Plus your host and your project id. The free call account { op: "connections.requirements", service: "posthog" } lists exactly what to paste.

Can an AI agent delete or change things in PostHog?

Only if its key allows it, and only with an explicit confirmation. 77 PostHog actions are destructive, including delete Groups Types, delete Dashboards and delete Dashboard Templates. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my PostHog API limit?

actionlake paces every call to the limits in the PostHog service file: 240 calls a minute per connection. Repeated reads are answered from cache (262 PostHog actions can be), which never reaches PostHog.

What does a PostHog action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (583 PostHog actions page). Cache hits, searches, dry runs and calls PostHog refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which PostHog API does it cover?

The PostHog API 1.0.0 at your PostHog instance's API base URL, which you enter when connecting. It is built from PostHog's documentation as read on 18 September 2026. 583 actions in 41 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my PostHog data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your PostHog credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent PostHog today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.