Skip to main content
Glama
clamp-sh

Clamp Analytics MCP Server

Official

users.journey

Read-only

Retrieve chronological session history for a single visitor to analyze multi-touch attribution or debug user journeys.

Instructions

Chronological session history for a single visitor (anonymous_id). Each session collapses to one row showing the start and end timestamps, entry page, channel, referrer host, UTMs, country, device type, pageview count, and the distinct custom event names fired in that session. The first row is flagged with is_first_touch: true.

Use this when an aggregate query can't answer the question — multi-touch attribution analysis, support / debugging investigations ("what did this user do before signing up?"), or sanity-checking a specific account's journey before drawing conclusions about a cohort.

Examples:

  • "show me what this user did across all their visits" → anonymous_id="anon_xxx"

  • "where did this paying customer first come from?" → anonymous_id="anon_xxx", read sessions[0].channel

  • "did they convert on their first visit or come back later?" → check if signup-event sessions match is_first_touch=true

Limitations: requires the visitor's anonymous_id, which the SDK exposes via getAnonymousId() on the browser side. Aggregate questions ("which channels drive my best users") use revenue.sum with attribution_model="first_touch" — don't loop this tool over thousands of users. Defaults to a 365-day lookback so first-touch is meaningful; tighten with period if needed.

Pairs with: revenue.sum(attribution_model="first_touch") to validate the aggregate first-touch read against specific high-value customers' actual paths.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idNoTarget project ID (e.g. "proj_abc123"). Required when the credential has access to multiple projects. If omitted and only one project is accessible, that project is used automatically. Call `projects.list` to discover available project IDs.
anonymous_idYesThe visitor's anonymous_id. From the browser SDK's getAnonymousId() / localStorage clamp_aid; from server-side tracks, whatever you passed as anonymousId.
periodNoTime period. Use "today", "yesterday", "7d", "30d", "90d", or a custom range as "YYYY-MM-DD:YYYY-MM-DD" (e.g. "2026-01-01:2026-03-31"). Defaults to "30d".
limitNoMax sessions to return. Defaults to 50, max 200.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
anonymous_idYes
sessionsYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true. The description adds rich behavioral context: 365-day lookback default, session collapse with fields, is_first_touch flag, and limitations like requiring anonymous_id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured: output description first, then use cases, examples, limitations, and pairing. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given high schema coverage, presence of output schema, and detailed description covering input, output, use cases, limitations, and cross-tool pairing, the description is fully complete for agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all 4 parameters (100% coverage). The description adds value by explaining the anonymous_id source (SDK getAnonymousId) and the period default's significance for first-touch meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'chronological session history for a single visitor (anonymous_id)', specifying the verb (chronological session history), resource (single visitor), and scope. It differentiates from sibling tools like revenue.sum by focusing on individual-level analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (multi-touch attribution, debugging) and when not to (aggregate queries). Provides alternative tool (revenue.sum with attribution_model) and warns against looping over thousands of users.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/clamp-sh/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server