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/mcpdo { 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.
- 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 - 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 hostproject_idYour PostHog project id
account { op: "connections.requirements", service: "posthog" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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
Error tracking
9042 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
Organizations
8940 read · 35 write · 14 destructive
List_for_organization Organizations Members · List_for_organization Organizations Roles · List Organizations · Update Organizations Members
Experiments
3717 read · 19 write · 1 destructive
Create Experiments · List Experiments · Create Experiments Create From Prompt · List Experiments Matching Ids
Dashboards
267 read · 15 write · 4 destructive
List Dashboards · Create Dashboards · Create Dashboards Create From Template Json · Create Dashboards Create Unlisted Dashboard
Feature flags
2614 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
Insights
2511 read · 10 write · 4 destructive
List Insights · Create Insights Viewed · Create Insights · Get Insights
Surveys
2112 read · 8 write · 1 destructive
List Surveys · Create Surveys · List Surveys Question Labels · Get Surveys
Batch exports
209 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
posthog.organizations.members.list_for_organizationList_for_organization Organizations Members | List_for_organization Organizations Members | read | identity.group_member.list103 connectors |
posthog.persons.listList Persons | This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture… | read | analytics.profile.list3 connectors |
posthog.groups.listList Groups | List 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… | read | analytics.profile.list3 connectors |
posthog.users.listList Users | List Users | read | identity.user.list474 connectors |
posthog.groups_types.listList Groups Types | List Groups Types | read | analytics.dataset.list28 connectors |
posthog.dashboards.listList Dashboards | List Dashboards | read | analytics.dashboard.list22 connectors |
posthog.dashboard_templates.listList Dashboard Templates | List Dashboard Templates | read | analytics.dashboard.list22 connectors |
posthog.groups.createCreate Groups | Create Groups | write | analytics.profile.create2 connectors |
posthog.actions.listList Actions | List Actions | read | analytics.segment.list17 connectors |
posthog.elements.createCreate Elements | Create Elements | write | analytics.tracked_event.create12 connectors |
posthog.experiments.createCreate Experiments | Create a new experiment in draft status with optional metrics. | write | analytics.experiment.create12 connectors |
posthog.groups_types.deleteDelete Groups Types | Delete Groups Types | destructive | analytics.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.
- Readread
Give me a one-line status for every active PostHog project.
calls
posthog.organizations.projects.list_for_organization - Planwrite
Backfill a batch export and watch it finish in PostHog.
calls
posthog.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 - Plandestructive
Invite a member and grant a role in PostHog. Ask me before anything is sent or changed.
calls
posthog.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 - Writewrite
Create Groups in PostHog. Show me exactly what you will send before you save it.
calls
posthog.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.
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.
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.
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.
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.
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.
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.
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 decides
Restore hog function hog function id to revision version and publish it live.
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 decides
Permanently delete candidate count PostHog feature flags: items, ', '.
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 decides
Invite target email to the organization and grant the role name.
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 decides
Permanently delete purge count session recordings from date from onward. This cannot be undone.
account { op: "plans.install", slug: "posthog-audit-dashboard-sharing" }
# then ask for it by name; a schedule can run it on a timetableGovernance for PostHog
Destructive actions wait for a yes.
77 PostHog actions are destructive. The first 10:
- Delete Groups Types
posthog.groups_types.delete - Delete Dashboards
posthog.dashboards.delete - Delete Dashboard Templates
posthog.dashboard_templates.delete - Delete Users
posthog.users.delete - Delete Organizations Members
posthog.organizations.members.delete - Create Persons Bulk Delete
posthog.persons.bulk_delete.create - Delete Actions
posthog.actions.delete - Delete Cohorts
posthog.cohorts.delete - Delete Experiments
posthog.experiments.delete - Delete Web Experiments
posthog.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.
Delete Groups Types?
intent: the user asked me to delete Groups Types
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]" } ]}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
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 Rulesreadposthog.error_tracking.bypass_rules.listList Error Tracking Bypass Rulesreadposthog.error_tracking.grouping_rules.listList Error Tracking Grouping Rulesreadposthog.error_tracking.severity_rules.listList Error Tracking Severity Rulesreadposthog.error_tracking.alerts.createCreate Error Tracking Alertswriteposthog.error_tracking.alerts.deleteDelete Error Tracking Alertsdestructive- and 84 more in this area
Organizations89
posthog.organizations.listList Organizationsreadposthog.organizations.members.list_for_organizationList_for_organization Organizations Membersreadposthog.organizations.members.updateUpdate Organizations Memberswriteposthog.organizations.roles.list_for_organizationList_for_organization Organizations Rolesreadposthog.organizations.batch_exports.create_for_organizationCreate_for_organization Organizations Batch Exportswriteposthog.organizations.batch_exports.deleteDelete Organizations Batch Exportsdestructive- and 83 more in this area
Experiments37
posthog.experiments.createCreate Experimentswriteposthog.experiments.create_from_prompt.createCreate Experiments Create From Promptwriteposthog.experiments.listList Experimentsreadposthog.experiments.matching_ids.listList Experiments Matching Idsreadposthog.experiments.activity.list_for_experimentList_for_experiment Experiments Activityreadposthog.experiments.archive.create_for_experimentCreate_for_experiment Experiments Archivewrite- and 31 more in this area
Dashboards26
posthog.dashboards.createCreate Dashboardswriteposthog.dashboards.create_from_template_json.createCreate Dashboards Create From Template Jsonwriteposthog.dashboards.create_unlisted_dashboard.createCreate Dashboards Create Unlisted Dashboardwriteposthog.dashboards.listList Dashboardsreadposthog.dashboards.bulk_update_tags.createCreate Dashboards Bulk Update Tagswriteposthog.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 Flagwriteposthog.feature_flags.dashboard.create_for_feature_flagCreate_for_feature_flag Feature Flags Dashboardwriteposthog.feature_flags.enrich_usage_dashboard.create_for_feature_flagCreate_for_feature_flag Feature Flags Enrich Usage Dashboardwriteposthog.feature_flags.user_blast_radius.createCreate Feature Flags User Blast Radiusreadposthog.feature_flags.activity.listList Feature Flags Activityreadposthog.feature_flags.activity.list_for_feature_flagList_for_feature_flag Feature Flags Activityread- and 20 more in this area
Insights25
posthog.insights.createCreate Insightswriteposthog.insights.getGet Insightsreadposthog.insights.listList Insightsreadposthog.insights.viewed.createCreate Insights Viewedwriteposthog.insights.activity.listList Insights Activityreadposthog.insights.activity.list_for_insightList_for_insight Insights Activityread- and 19 more in this area
Surveys21
posthog.surveys.createCreate Surveyswriteposthog.surveys.getGet Surveysreadposthog.surveys.listList Surveysreadposthog.surveys.question_labels.listList Surveys Question Labelsreadposthog.surveys.activity.listList Surveys Activityreadposthog.surveys.activity.list_for_surveyList_for_survey Surveys Activityread- and 15 more in this area
Batch exports20
posthog.batch_exports.createCreate Batch Exportswriteposthog.batch_exports.getGet Batch Exportsreadposthog.batch_exports.listList Batch Exportsreadposthog.batch_exports.test.listList Batch Exports Testreadposthog.batch_exports.backfills.cancel.create_for_backfillCreate_for_backfill Batch Exports Backfills Canceldestructiveposthog.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 Functionswriteposthog.hog_functions.icons.listList Hog Functions Iconsreadposthog.hog_functions.listList Hog Functionsreadposthog.hog_functions.masked_secrets.listList Hog Functions Masked Secretsreadposthog.hog_functions.deleteDelete Hog Functionsdestructiveposthog.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 Idsreadposthog.persons.batch_by_uuids.createCreate Persons Batch By Uuidsreadposthog.persons.getGet Personsreadposthog.persons.listList Personsreadposthog.persons.activity.listList Persons Activityreadposthog.persons.activity.list_for_personList_for_person Persons Activityread- and 13 more in this area
Notebooks15
posthog.notebooks.createCreate Notebookswriteposthog.notebooks.getGet Notebooksreadposthog.notebooks.listList Notebooksreadposthog.notebooks.updateUpdate Notebookswriteposthog.notebooks.activity.listList Notebooks Activityreadposthog.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 Namereadposthog.event_definitions.createCreate Event Definitionswriteposthog.event_definitions.listList Event Definitionsreadposthog.event_definitions.updateUpdate Event Definitionswriteposthog.event_definitions.bulk_update_tags.createCreate Event Definitions Bulk Update Tagswriteposthog.event_definitions.bulk_update_verified.createCreate Event Definitions Bulk Update Verifiedwrite- and 7 more in this area
File system13
posthog.file_system.createCreate File Systemwriteposthog.file_system.listList File Systemreadposthog.file_system.log_view.createCreate File System Log Viewwriteposthog.file_system.unfiled.listList File System Unfiledreadposthog.file_system.count.query_for_file_systemQuery_for_file_system File System Countreadposthog.file_system.count_by_path.queryQuery File System Count By Pathread- and 7 more in this area
Cohorts12
posthog.cohorts.createCreate Cohortswriteposthog.cohorts.getGet Cohortsreadposthog.cohorts.listList Cohortsreadposthog.cohorts.persons.list_for_cohortList_for_cohort Cohorts Personsreadposthog.cohorts.activity.listList Cohorts Activityreadposthog.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 Slackwriteposthog.comments.complete.create_for_commentCreate_for_comment Comments Completewriteposthog.comments.count.listList Comments Countreadposthog.comments.createCreate Commentswriteposthog.comments.deleteDelete Commentsdestructiveposthog.comments.getGet Commentsread- and 4 more in this area
Groups types10
posthog.groups_types.deleteDelete Groups Typesdestructiveposthog.groups_types.listList Groups Typesreadposthog.groups_types.metrics.create_for_groups_typeCreate_for_groups_type Groups Types Metricswriteposthog.groups_types.metrics.list_for_groups_typeList_for_groups_type Groups Types Metricsreadposthog.groups_types.create_detail_dashboard.updateUpdate Groups Types Create Detail Dashboardwriteposthog.groups_types.metrics.deleteDelete Groups Types Metricsdestructive- and 4 more in this area
Alerts9
posthog.alerts.createCreate Alertswriteposthog.alerts.getGet Alertsreadposthog.alerts.listList Alertsreadposthog.alerts.updateUpdate Alertswriteposthog.alerts.deleteDelete Alertsdestructiveposthog.alerts.destinations.create_for_alertCreate_for_alert Alerts Destinationswrite- and 3 more in this area
Query9
posthog.query.by_kind.queryQuery Query By Kindreadposthog.query.check_auth_for_async.queryQuery Query Check Auth For Asyncreadposthog.query.draft_sql.listList Query Draft Sqlreadposthog.query.queryQuery Queryreadposthog.query.deleteDelete Querydestructiveposthog.query.getGet Queryread- and 3 more in this area
Session recordings9
posthog.session_recordings.deleteDelete Session Recordingsdestructiveposthog.session_recordings.getGet Session Recordingsreadposthog.session_recordings.listList Session Recordingsreadposthog.session_recordings.updateUpdate Session Recordingswriteposthog.session_recordings.bulk_delete.createCreate Session Recordings Bulk Deletedestructiveposthog.session_recordings.sharing.list_for_session_recordingList_for_session_recording Session Recordings Sharingread- and 3 more in this area
Subscriptions9
posthog.subscriptions.createCreate Subscriptionswriteposthog.subscriptions.getGet Subscriptionsreadposthog.subscriptions.listList Subscriptionsreadposthog.subscriptions.updateUpdate Subscriptionswriteposthog.subscriptions.deleteDelete Subscriptionsdestructiveposthog.subscriptions.deliveries.getGet Subscriptions Deliveriesread- and 3 more in this area
Groups8
posthog.groups.createCreate Groupswriteposthog.groups.find.listList Groups Findreadposthog.groups.listList Groupsreadposthog.groups.related.listList Groups Relatedreadposthog.groups.activity.listList Groups Activityreadposthog.groups.delete_property.createCreate Groups Delete Propertydestructive- and 2 more in this area
Session recording playlists8
posthog.session_recording_playlists.createCreate Session Recording Playlistswriteposthog.session_recording_playlists.getGet Session Recording Playlistsreadposthog.session_recording_playlists.listList Session Recording Playlistsreadposthog.session_recording_playlists.updateUpdate Session Recording Playlistswriteposthog.session_recording_playlists.deleteDelete Session Recording Playlistsdestructiveposthog.session_recording_playlists.recordings.createCreate Session Recording Playlists Recordingswrite- and 2 more in this area
Actions7
posthog.actions.createCreate Actionswriteposthog.actions.getGet Actionsreadposthog.actions.listList Actionsreadposthog.actions.references.list_for_actionList_for_action Actions Referencesreadposthog.actions.bulk_update_tags.createCreate Actions Bulk Update Tagswriteposthog.actions.deleteDelete Actionsdestructive- and 1 more in this area
Dashboard templates7
posthog.dashboard_templates.createCreate Dashboard Templateswriteposthog.dashboard_templates.getGet Dashboard Templatesreadposthog.dashboard_templates.listList Dashboard Templatesreadposthog.dashboard_templates.updateUpdate Dashboard Templateswriteposthog.dashboard_templates.copy_between_projects.createCreate Dashboard Templates Copy Between Projectswriteposthog.dashboard_templates.deleteDelete Dashboard Templatesdestructive- and 1 more in this area
Elements7
posthog.elements.createCreate Elementswriteposthog.elements.getGet Elementsreadposthog.elements.listList Elementsreadposthog.elements.values.listList Elements Valuesreadposthog.elements.deleteDelete Elementsdestructiveposthog.elements.stats.listList Elements Statsread- and 1 more in this area
File system shortcut6
posthog.file_system_shortcut.createCreate File System Shortcutwriteposthog.file_system_shortcut.getGet File System Shortcutreadposthog.file_system_shortcut.listList File System Shortcutreadposthog.file_system_shortcut.updateUpdate File System Shortcutwriteposthog.file_system_shortcut.deleteDelete File System Shortcutdestructiveposthog.file_system_shortcut.reorder.createCreate File System Shortcut Reorderwrite
Property definitions6
posthog.property_definitions.getGet Property Definitionsreadposthog.property_definitions.listList Property Definitionsreadposthog.property_definitions.seen_together.listList Property Definitions Seen Togetherreadposthog.property_definitions.updateUpdate Property Definitionswriteposthog.property_definitions.bulk_update_tags.createCreate Property Definitions Bulk Update Tagswriteposthog.property_definitions.deleteDelete Property Definitionsdestructive
Annotations5
posthog.annotations.createCreate Annotationswriteposthog.annotations.getGet Annotationsreadposthog.annotations.listList Annotationsreadposthog.annotations.updateUpdate Annotationswriteposthog.annotations.deleteDelete Annotationsdestructive
Early access feature5
posthog.early_access_feature.createCreate Early Access Featurewriteposthog.early_access_feature.getGet Early Access Featurereadposthog.early_access_feature.listList Early Access Featurereadposthog.early_access_feature.updateUpdate Early Access Featurewriteposthog.early_access_feature.deleteDelete Early Access Featuredestructive
Experiment holdouts5
posthog.experiment_holdouts.createCreate Experiment Holdoutswriteposthog.experiment_holdouts.getGet Experiment Holdoutsreadposthog.experiment_holdouts.listList Experiment Holdoutsreadposthog.experiment_holdouts.updateUpdate Experiment Holdoutswriteposthog.experiment_holdouts.deleteDelete Experiment Holdoutsdestructive
Experiment saved metrics5
posthog.experiment_saved_metrics.createCreate Experiment Saved Metricswriteposthog.experiment_saved_metrics.getGet Experiment Saved Metricsreadposthog.experiment_saved_metrics.listList Experiment Saved Metricsreadposthog.experiment_saved_metrics.updateUpdate Experiment Saved Metricswriteposthog.experiment_saved_metrics.deleteDelete Experiment Saved Metricsdestructive
Insight variables5
posthog.insight_variables.createCreate Insight Variableswriteposthog.insight_variables.getGet Insight Variablesreadposthog.insight_variables.listList Insight Variablesreadposthog.insight_variables.updateUpdate Insight Variableswriteposthog.insight_variables.deleteDelete Insight Variablesdestructive
Scheduled changes5
posthog.scheduled_changes.createCreate Scheduled Changeswriteposthog.scheduled_changes.getGet Scheduled Changesreadposthog.scheduled_changes.listList Scheduled Changesreadposthog.scheduled_changes.updateUpdate Scheduled Changeswriteposthog.scheduled_changes.deleteDelete Scheduled Changesdestructive
Web experiments5
posthog.web_experiments.createCreate Web Experimentswriteposthog.web_experiments.getGet Web Experimentsreadposthog.web_experiments.listList Web Experimentsreadposthog.web_experiments.updateUpdate Web Experimentswriteposthog.web_experiments.deleteDelete Web Experimentsdestructive
Exports4
posthog.exports.content.list_for_exportList_for_export Exports Contentreadposthog.exports.createCreate Exportswriteposthog.exports.getGet Exportsreadposthog.exports.listList Exportsread
Users4
posthog.users.deleteDelete Usersdestructiveposthog.users.getGet Usersreadposthog.users.listList Usersreadposthog.users.updateUpdate Userswrite
Events3
posthog.events.getGet Eventsreadposthog.events.listList Eventsreadposthog.events.values.listList Events Valuesread
Heatmaps2
posthog.heatmaps.events.listList Heatmaps Eventsreadposthog.heatmaps.listList Heatmapsread
Sessions2
posthog.sessions.property_definitions.listList Sessions Property Definitionsreadposthog.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.