Documentation
¶
Overview ¶
Package analytics implements PostHog MCP Analytics event capture for the PipeOps MCP server (Go). Official @posthog/mcp is TS/Python-only; we emit the same $mcp_* wire contract so project dashboards (e.g. project 15061) work without a language rewrite.
Index ¶
- func CloseGlobal() error
- func NewSessionID() string
- func SessionIDFromMCP(raw string) string
- type Client
- func (c *Client) CaptureInitialize(sessionID, clientName, clientVersion, protocolVersion, distinctID string)
- func (c *Client) CaptureToolCall(ev ToolCallEvent)
- func (c *Client) CaptureToolsList(sessionID, clientName, clientVersion, protocolVersion, distinctID string, ...)
- func (c *Client) Close() error
- func (c *Client) Enabled() bool
- type ToolCallEvent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewSessionID ¶
func NewSessionID() string
NewSessionID mints a ses_<32hex> id matching the TS SDK shape.
func SessionIDFromMCP ¶
SessionIDFromMCP normalizes an MCP protocol session id into analytics form.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client captures MCP protocol events into PostHog.
func InitFromEnv ¶
InitFromEnv configures the process-wide analytics client. Enabled when POSTHOG_API_KEY or POSTHOG_PROJECT_API_KEY is set (unless POSTHOG_MCP_ANALYTICS=false).
Env:
- POSTHOG_API_KEY / POSTHOG_PROJECT_API_KEY — project API key (phc_…)
- POSTHOG_HOST — https://us.i.posthog.com or https://eu.i.posthog.com
- POSTHOG_PROJECT_ID — optional (e.g. 15061) stamped on events for filtering
- POSTHOG_MCP_ANALYTICS — set to "false"/"0"/"off" to disable even with a key
func (*Client) CaptureInitialize ¶
func (c *Client) CaptureInitialize(sessionID, clientName, clientVersion, protocolVersion, distinctID string)
CaptureInitialize records $mcp_initialize.
func (*Client) CaptureToolCall ¶
func (c *Client) CaptureToolCall(ev ToolCallEvent)
CaptureToolCall records $mcp_tool_call (and optional $exception sibling).
func (*Client) CaptureToolsList ¶
func (c *Client) CaptureToolsList(sessionID, clientName, clientVersion, protocolVersion, distinctID string, toolNames []string)
CaptureToolsList records $mcp_tools_list.
type ToolCallEvent ¶
type ToolCallEvent struct {
SessionID string
ClientName string
ClientVersion string
ProtocolVersion string
DistinctID string
ToolName string
ToolDescription string
Parameters map[string]interface{}
Response interface{}
DurationMs int64
IsError bool
ErrorMessage string
Intent string
IntentSource string // "context_parameter" | "inferred"
}
ToolCallEvent is the payload for a tools/call capture.