Amplitude MCP Pack - provides tools to query Amplitude analytics data including events, active users, retention, and user activity
This server exposes API credentials (_apiKey, _secretKey) as required tool parameters, violating critical security patterns. Tool descriptions are present but generic (avg 95 chars, below 194-char baseline). Parameter descriptions lack format constraints, enums, and validation guidance. No output schemas documented. Error handling is minimal, ampFetch throws raw API errors without recovery guidance. Tools are well-named with action verbs (amp_get_*, amp_user_search), but parameter naming is inconsistent (event_type vs m vs re). No pagination documented for amp_get_user_activity despite offset/limit params. Overall: functional but unsafe and incomplete.
Get daily/weekly/monthly active user counts for a date range.
Get event segmentation data from Amplitude for a date range. Returns event counts and breakdowns.
Get retention data for a date range. Shows how many users return over time.
Get recent event activity for a specific user by their Amplitude ID.
Search for a user by user property or user ID. Returns matching Amplitude user profiles.
Credentials exposed as tool parameters (_apiKey, _secretKey required on every call). Violates secret-injection pattern, credentials appear in agent logs, traces, and prompt history.
No output schemas documented. LLMs cannot predict response structure, plan downstream calls, or extract required fields. Baseline: 100% of A+ tools document return types.
Parameter descriptions lack format constraints and enums. 'start' and 'end' say 'YYYYMMDD' but no validation. 'm' metric accepts 'active|new|returning' only, should be enum, not free-form string. 're' retention type should be enum.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Error handling is minimal. ampFetch throws raw API errors without recovery guidance. LLM receives 'Amplitude API error (401): ...' with no hint to check credentials or retry. Baseline: errors must guide next action.
Parameter naming inconsistency: 'event_type' vs 'm' vs 're' vs 'user' vs 'amplitude_id'. Inconsistent suffixes (no _id on 'user', but _id on 'amplitude_id') confuse LLMs about parameter semantics.