24 actions ready for your AI
Connect PostHog to your AI
Connect PostHog once and every AI you use can query error trackings, list organizations projects and create organizations projects through it.
ReadyConnect it in one click. Your AI can use it straight away.
Not verified by us yet. Its actions come from PostHog's own documented API, and we have not run them here yet.
Use your own PostHog account. Credentials stay encrypted in ahel.
Tell me when ahel has verified PostHog
What your AI can do with PostHog
Choose a task and ask your AI.
Dashboard
- Dashboards bulk update tags create
POSTBulk update tags on multiple objects. PAT access: this action has no requiredscopes= on the decorator - inheriting viewsets must add "bulkupdatetags" to their scopeobjectwriteactions list to accept personal API keys.
project_idrequired- Project ID of the project you're trying to access.
idsrequired- List of object IDs to update tags on.
actionrequired- 'add' merges with existing tags, 'remove' deletes specific tags, 'set' replaces all tags.
tagsrequired- Tag names to add, remove, or set.
- Dashboards create unlisted dashboard create
POSTCreates an unlisted dashboard from template by tag. Enforces uniqueness (one per tag per team). Returns 409 if unlisted dashboard with this tag already exists.
project_idrequired- Project ID of the project you're trying to access.
breakdown_colors- Custom color mapping for breakdown values.
data_color_theme_id- ID of the color theme used for chart visualizations.
restriction_level- 21 - Everyone in the project can edit 37 - Only those invited to this dashboard can edit
- Dashboards widget catalog retrieve
GETList registered dashboard widget types and per-type configschema documentation for agents.
project_idrequired- Project ID of the project you're trying to access.
Error
- Error tracking query issue create
POSTGet compact error tracking issue details
project_idrequired- Project ID of the project you're trying to access.
issueIdrequired- Error tracking issue ID.
dateRange- Date range for issue impact and latest-event metadata.
filterTestAccounts- When true, exclude internal/test account data from results.
- Error tracking query issue events create
POSTList sampled exception events for an error tracking issue
project_idrequired- Project ID of the project you're trying to access.
issueIdrequired- Error tracking issue ID.
dateRange- Date range for sampled exception events.
filterTestAccounts- When true, exclude internal/test account data from results.
- Error tracking query issues list create
POSTList compact error tracking issues
project_idrequired- Project ID of the project you're trying to access.
dateRange- Date range for issue aggregates.
status- Filter by issue status.
assignee- Filter by issue assignee.
Experiment
- Experiments list
GETList experiments for the current project. Supports filtering by status and archival state.
project_idrequired- Project ID of the project you're trying to access.
archived- Filter by archived state.
created_by_id- Filter to experiments created by the given user(s).
event- Filter to experiments whose metrics reference this event name.
- Experiments create
POSTCreate a new experiment in draft status with optional metrics.
project_idrequired- Project ID of the project you're trying to access.
namerequired- Name of the experiment.
feature_flag_keyrequired- Unique key for the experiment's feature flag.
description- Description of the experiment hypothesis and expected outcomes.
- Experiments calculate running time create
POSTEstimate the recommended sample size and running time for an experiment. Pure statistical calculation - does not read or write any experiment.
project_idrequired- Project ID of the project you're trying to access.
metric_typerequired- Metric type to size for.
minimum_detectable_effectrequired- Smallest relative change to detect, as a percentage (e.g.
number_of_variants- Total number of variants including control (default 2).
Annotation
- Annotations list
GETCreate, Read, Update and Delete annotations. See docs for more information on annotations.
project_idrequired- Project ID of the project you're trying to access.
limit- Number of results to return per page.
offset- The initial index from which to return the results.
search- A search term.
- Annotations create
POSTCreate, Read, Update and Delete annotations. See docs for more information on annotations.
project_idrequired- Project ID of the project you're trying to access.
content- Annotation text shown on charts to describe the change, release, or incident.
date_marker- When this annotation happened (ISO 8601 timestamp).
creation_type- Who created this annotation.
Show 8 more groups
Feature
- Feature flags list
GETCreate, read, update and delete feature flags. See docs for more information on feature flags. If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if...
project_idrequired- Project ID of the project you're trying to access.
archived- Filter by archived state.
created_by_id- Filter by the user(s) who created the feature flag.
eligible_for_experiment- When 'true', only return flags that can back an experiment: multivariate with 2-20 variants.
- Feature flags create
POSTCreate, read, update and delete feature flags. See docs for more information on feature flags. If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if...
project_idrequired- Project ID of the project you're trying to access.
key- Feature flag key.
name- Feature flag description (stored in the name field for backwards compatibility).
filters- Feature flag targeting configuration.
Insight
- Insights list
GETDRF ViewSet mixin that gates coalesced responses behind permission checks. The QueryCoalescingMiddleware attaches cached response data to request.META["coalescedresponse"] for followers.
project_idrequired- Project ID of the project you're trying to access.
basic- Return basic insight metadata only (no results, faster).
created_by- JSON-encoded array of user IDs.
created_date_from- Filter by createdat > createddatefrom.
- Insights create
POSTDRF ViewSet mixin that gates coalesced responses behind permission checks. The QueryCoalescingMiddleware attaches cached response data to request.META["coalescedresponse"] for followers.
project_idrequired- Project ID of the project you're trying to access.
include_dashboards- Opt in to receiving the deprecated dashboards field in insight payloads.
dashboards- DEPRECATED. Will be removed in a future release.
Organization
- Organizations projects list
GETProjects for the current organization.
organization_idrequired- ID of the organization you're trying to access.
limit- Number of results to return per page.
offset- The initial index from which to return the results.
search- A search term.
- Organizations projects create
POSTProjects for the current organization.
organization_idrequired- ID of the organization you're trying to access.
name- Project name.
product_description- Short description of what the project is about.
anonymize_ips- When true, PostHog drops the IP address from every ingested event.
Saved
- Saved query column annotations list
GETRead and edit semantic descriptions of data-modelling views and columns surfaced to the AI agent. List can be filtered to one view with ?savedqueryid= .
project_idrequired- Project ID of the project you're trying to access.
limit- Number of results to return per page.
offset- The initial index from which to return the results.
saved_query_id- Only return annotations for this data warehouse saved query (view).
- Saved query column annotations create
POSTRead and edit semantic descriptions of data-modelling views and columns surfaced to the AI agent. List can be filtered to one view with ?savedqueryid= .
project_idrequired- Project ID of the project you're trying to access.
saved_queryrequired- ID of the data warehouse saved query (view) this annotation describes.
descriptionrequired- Human-readable description of what this table or column means.
column_name- Column this annotation describes.
Warehouse
- Warehouse column annotations list
GETRead and edit semantic descriptions of warehouse tables and columns surfaced to the AI agent. List can be filtered to one table with ?tableid= .
project_idrequired- Project ID of the project you're trying to access.
limit- Number of results to return per page.
offset- The initial index from which to return the results.
table_id- Only return annotations for this data warehouse table.
- Warehouse column annotations create
POSTRead and edit semantic descriptions of warehouse tables and columns surfaced to the AI agent. List can be filtered to one table with ?tableid= .
project_idrequired- Project ID of the project you're trying to access.
tablerequired- ID of the data warehouse table this annotation describes.
descriptionrequired- Human-readable description of what this table or column means.
column_name- Column this annotation describes.
Event
- Events list
GETThis endpoint allows you to list and filter events. It is effectively deprecated and is kept only for backwards compatibility. If you ever ask about it you will be advised to not use it...
project_idrequired- Project ID of the project you're trying to access.
after- Only return events with a timestamp after this time.
before- Only return events with a timestamp before this time.
distinct_id- Filter list by distinct id.
Person
- Persons list
GETThis endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the capture API, the $set and $unset properties, or one of our SDKs.
project_idrequired- Project ID of the project you're trying to access.
client_query_id- Names the ClickHouse query this request runs.
distinct_id- Filter list by distinct id.
email- Filter persons by email (exact match)
Project
- Query create
POSTDRF ViewSet mixin that gates coalesced responses behind permission checks. The QueryCoalescingMiddleware attaches cached response data to request.META["coalescedresponse"] for followers.
project_idrequired- Project ID of the project you're trying to access.
queryrequired- Submit a JSON string representing a query for PostHog data analysis, for example a HogQL query.
client_query_id- Client provided query ID. Can be used to retrieve the status or cancel the query.
limit_context- Limit context for the query.
Ask your AI
Try one of these requests with a connected AI.
- List my organization projects in PostHog
- Create an organization project in PostHog
- List my annotations in PostHog
- Create an annotation in PostHog
- List my events in PostHog
- List my experiments in PostHog
Works with
All appsUse PostHog alongside your other connected apps.
Published servers for PostHog
Built by the community and served through your gateway with the same key. A curated pick is one ahel has checked.
PostHog MCP server, hosted by ahel
One hosted endpoint serves PostHog. There is nothing to install and no local server to run.
Connect PostHog to Claude, Claude Code, Cursor or Codex
- Add your PostHog key. ahel stores it encrypted.
- Add your PostHog region (us or eu). PostHog gives every customer its own address, and that is the one ahel calls.
- Paste one link into your AI:
https://mcp.ahel.ai(once, for every app). - Ask for the work. Your AI picks the action and ahel runs it with your key.
Documentation
- Where to find your PostHog keyon the vendor's side; paste it into ahel after sign-in
About PostHog
PostHog is an analytics service. Connect your own PostHog account, by signing in or with a key, and ahel holds it sealed and signs your AI's calls with it.
PostHog over MCP: ahel serves PostHog to Claude, Claude Code, Cursor and Codex as one hosted MCP endpoint. There is no local server to run. Add your PostHog key once, paste one link into your AI, and the actions above are there.
Questions
Is my PostHog key safe?
Your PostHog key is sealed in ahel and added to the request server-side when your AI calls PostHog. It never crosses the MCP link, no tool can read it back, and you can turn the app off or remove the key at any time.
Which AIs can use PostHog through ahel?
Any MCP-capable AI: Claude, Claude Code, Codex, Cursor, VS Code and others. Paste one link, https://mcp.ahel.ai, into the AI once and everything in your gateway arrives through it.
What can my AI do with PostHog?
24 actions today, covering dashboards, errors and experiments. Ask in plain language; your AI picks the action and ahel runs it with your key.
Does connecting PostHog cost anything?
Connecting apps is free during ahel's early access. Free, Pro and Team all cost nothing today, and the pricing page lists what each one includes. PostHog may bill you for API use under its own terms.