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 createPOST

    Bulk 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 createPOST

    Creates 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 retrieveGET

    List 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 createPOST

    Get 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 createPOST

    List 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 createPOST

    List 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 listGET

    List 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 createPOST

    Create 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 createPOST

    Estimate 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 listGET

    Create, 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 createPOST

    Create, 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 listGET

    Create, 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 createPOST

    Create, 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 listGET

    DRF 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 createPOST

    DRF 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 listGET

    Projects 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 createPOST

    Projects 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 listGET

    Read 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 createPOST

    Read 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 listGET

    Read 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 createPOST

    Read 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 listGET

    This 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 listGET

    This 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 createPOST

    DRF 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

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

  1. Add your PostHog key. ahel stores it encrypted.
  2. Add your PostHog region (us or eu). PostHog gives every customer its own address, and that is the one ahel calls.
  3. Paste one link into your AI: https://mcp.ahel.ai (once, for every app).
  4. Ask for the work. Your AI picks the action and ahel runs it with your key.

Documentation

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.

Analytics

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.