Polar Signals MCP logo

Polar Signals MCP

Polar Signals MCP lets engineering agents inspect continuous profiling projects and performance data to diagnose regressions and optimization opportunities.

8 actions Integration catalog
Request access
Connect Polar Signals MCP once you're in Boring.
01 · WHAT THE AGENT CAN DO

Actions

Every capability is a discrete, logged action the agent calls by name — scoped to what you authorize and recorded in the run trace.

List projectsPOLAR_SIGNALS_MCP_LIST_PROJECTS
List all projects accessible to the current user. IMPORTANT: Call this FIRST before using any other tools. Returns project IDs and names. You need a project ID for all other tool calls. If only one project is returned, use it automatically. If a project is specified in the user's instructions (e.g. claude.md or system prompt), prefer that one. Otherwise, ask the user which project to use.
Query profile flamegraphPOLAR_SIGNALS_MCP_QUERY_PROFILE_FLAMEGRAPH
Return a flame graph as a breadth-first call tree. Each row has id, parent (the parent row's id, -1 = a root), depth, cumulative, flat, function_name — rebuild the tree via the parent pointers. Unsymbolized frames (no function_name) instead carry their hex memory address in an extra 'address' column, shown only when such frames are present. Use this for a top-down picture of where time goes; 'query_profile_table' gives a flat ranked list and 'query_profile_sandwich' focuses on one function. Drill into a subtree with 'focus_path'. Same query syntax as 'query_profile_table'.
Query profile labelsPOLAR_SIGNALS_MCP_QUERY_PROFILE_LABELS
Get available label names for a specific profile type. Call this after 'profile_types' to discover what labels exist. You MUST use exact profile type strings from 'profile_types' output. Returns label names that can be used with 'values' and in 'query_profile_table' queries - do not invent label names.
Query profile label valuesPOLAR_SIGNALS_MCP_QUERY_PROFILE_LABEL_VALUES
List the values a profiling label takes (e.g. the process names for the 'comm' label). These are label values used to filter queries — not the sampled values of the profile itself. Use it to discover valid filter values; only use label names from 'query_profile_labels'.
Query profile sandwichPOLAR_SIGNALS_MCP_QUERY_PROFILE_SANDWICH
Show the calling context around a specific function: which functions call it (callers) and which functions it calls (callees). Use this after 'query_profile_table' to drill into a specific function. The function_name should be an exact function name from 'query_profile_table' results.
Query profile sourcePOLAR_SIGNALS_MCP_QUERY_PROFILE_SOURCE
Retrieve per-line profiling data for a specific source file. Returns line numbers with flat and cumulative sample counts — without returning the source code itself (read the file directly and correlate using line numbers).
Query profile tablePOLAR_SIGNALS_MCP_QUERY_PROFILE_TABLE
Query profiling data as a flat table of functions sorted by cumulative time. Recommended workflow: first call 'list_projects', then 'profile_types', then 'labels', then 'values' to discover valid query components. Query syntax: 'profile_type{label="value"}' where all components come from previous tool outputs. With symbolized=false, unsymbolized rows (no function_name) gain an 'address' column carrying their hex memory address.
Query profile typesPOLAR_SIGNALS_MCP_QUERY_PROFILE_TYPES
ProfileTypes returns the list of available profile types. IMPORTANT: Call 'list_projects' first to get a project ID. Profile types follow the format 'name:sample_type:sample_unit:period_type:period_unit[:delta]' (e.g. 'parca_agent:samples:count:cpu:nanoseconds:delta'). You MUST use these exact strings when calling 'labels' or 'query_profile_table' - do not invent or shorten profile type names.