Connect your AI Agents to PostHog in minutes

Available tools
list_actions
List actions with pagination. Use offset from page_info for next page.
get_action
Get an action by ID. Use list_actions to find valid IDs.
create_action
Create a new action. Define matching criteria using steps (event name, URL, CSS selector, etc.).
update_action
Update an action's name, description, or matching steps. Use list_actions to find valid IDs.
delete_action
Soft-delete an action by marking it as deleted. Use list_actions to find valid IDs.
list_activity_log
List activity log entries showing recent changes to the project (data management, events, properties, surveys, actions).
list_annotations
List annotations with pagination. Use offset from page_info for next page.
get_annotation
Get an annotation by ID. Use list_annotations to find valid IDs.
create_annotation
Create an annotation at a specific date. Useful for marking deployments, incidents, or notable events on charts.
update_annotation
Update an annotation's content, date, or scope. Use list_annotations to find valid IDs.
delete_annotation
Soft-delete an annotation by marking it as deleted. Use list_annotations to find valid IDs.
list_batch_exports
List batch export configurations with pagination. Use offset from page_info for next page.
get_batch_export
Get a batch export configuration by ID. Use list_batch_exports to find valid IDs.
create_batch_export
Create a batch export to regularly export data to a destination (S3, BigQuery, Snowflake, etc.).
delete_batch_export
Delete a batch export configuration permanently. Use list_batch_exports to find valid IDs.
list_cohorts
List cohorts with pagination. Use offset from page_info for next page.
get_cohort
Get a cohort by ID. Use list_cohorts to find valid IDs.
create_cohort
Create a new cohort. Use groups to define membership criteria with property filters.
update_cohort
Update a cohort's name, description, or filter groups. Use list_cohorts to find valid IDs.
delete_cohort
Soft-delete a cohort by marking it as deleted. Use list_cohorts to find valid IDs.
list_dashboards
List dashboards with pagination. Use offset from page_info for next page.
get_dashboard
Get a dashboard by ID with its tiles. Use list_dashboards to find valid IDs.
create_dashboard
Create a new dashboard. Add insights to it later using update_insight.
update_dashboard
Update a dashboard's name, description, or pinned status. Use list_dashboards to find valid IDs.
delete_dashboard
Soft-delete a dashboard by marking it as deleted. Use list_dashboards to find valid IDs.
list_event_definitions
List event definitions with pagination. Shows event names, volumes, and metadata tracked in the project.
get_event_definition
Get an event definition by ID. Use list_event_definitions to find valid IDs.
update_event_definition
Update an event definition's description or tags. Use list_event_definitions to find valid IDs.
list_experiments
List experiments with pagination. Use offset from page_info for next page.
get_experiment
Get an experiment by ID. Use list_experiments to find valid IDs.
create_experiment
Create a new experiment. Requires name and feature_flag_key. The feature flag will be auto-created if it doesn't exist.
update_experiment
Update an experiment's name, description, parameters, or filters. Use list_experiments to find valid IDs.
delete_experiment
Soft-delete an experiment by marking it as deleted. Use list_experiments to find valid IDs.
list_feature_flags
List feature flags with pagination. Use offset from page_info for next page.
get_feature_flag
Get a feature flag by ID. Use list_feature_flags to find valid IDs.
create_feature_flag
Create a new feature flag. Requires a unique key. Use filters to set release conditions.
update_feature_flag
Update a feature flag's key, name, active status, or filters. Use list_feature_flags to find valid IDs.
delete_feature_flag
Soft-delete a feature flag by marking it as deleted. Use list_feature_flags to find valid IDs.
list_insights
List saved insights with pagination. Use offset from page_info for next page.
get_insight
Get an insight by ID. Use list_insights to find valid IDs.
create_insight
Create a new insight. Use filters for legacy insights or query for HogQL-based insights.
update_insight
Update an insight's name, description, filters, or query. Use list_insights to find valid IDs.
delete_insight
Soft-delete an insight by marking it as deleted. Use list_insights to find valid IDs.
list_persons
List persons with pagination. Optionally search by name/distinct ID or filter by properties.
get_person
Get a person by ID with their properties and distinct IDs. Use list_persons to find valid IDs.
delete_person
Delete a person and their data permanently. Use list_persons to find valid IDs.
list_projects
List all projects in the organization. Use offset from page_info for next page.
get_project
Get a specific project by ID. Use list_projects to find valid project IDs.
update_project
Update a project's name or timezone. Use list_projects to find valid project IDs.
list_property_definitions
List property definitions with pagination. Optionally filter by type (event, person, group).
get_property_definition
Get a property definition by ID. Use list_property_definitions to find valid IDs.
update_property_definition
Update a property definition's description, tags, or type. Use list_property_definitions to find valid IDs.
run_query
Execute a HogQL query. Pass a query object like {'kind': 'HogQLQuery', 'query': 'SELECT count() FROM events'}. Max 50k rows.
list_session_recordings
List session recordings with pagination. Use offset from page_info for next page.
get_session_recording
Get a session recording by ID. Use list_session_recordings to find valid IDs.
delete_session_recording
Delete a session recording permanently. Use list_session_recordings to find valid IDs.
list_surveys
List surveys with pagination. Use offset from page_info for next page.
get_survey
Get a survey by ID. Use list_surveys to find valid IDs.
create_survey
Create a new survey. Define questions with type (open, multiple_choice, rating, etc.) and targeting filters.
update_survey
Update a survey's name, description, questions, or schedule. Use list_surveys to find valid IDs.
delete_survey
Delete a survey permanently. Use list_surveys to find valid IDs.
get_current_user
Get the currently authenticated user's profile including email, name, organization, and team details.
validate_credential
Validate PostHog credentials by fetching the current user profile. Returns success status and authenticated user email.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's PostHog MCP server
FAQs on using Merge's PostHog MCP server
Explore other MCP servers built and managed by Merge





















Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now
