Antigravity-awesome-skills amplitude-automation
Automate Amplitude tasks via Rube MCP (Composio): events, user activity, cohorts, user identification. Always search tools first for current schemas.
git clone https://github.com/sickn33/antigravity-awesome-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/sickn33/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/antigravity-awesome-skills/skills/amplitude-automation" ~/.claude/skills/sickn33-antigravity-awesome-skills-amplitude-automation-363073 && rm -rf "$T"
plugins/antigravity-awesome-skills/skills/amplitude-automation/SKILL.mdAmplitude Automation via Rube MCP
Automate Amplitude product analytics through Composio's Amplitude toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Amplitude connection via
with toolkitRUBE_MANAGE_CONNECTIONSamplitude - Always call
first to get current tool schemasRUBE_SEARCH_TOOLS
Setup
Get Rube MCP: Add
https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
respondsRUBE_SEARCH_TOOLS - Call
with toolkitRUBE_MANAGE_CONNECTIONSamplitude - If connection is not ACTIVE, follow the returned auth link to complete Amplitude authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Send Events
When to use: User wants to track events or send event data to Amplitude
Tool sequence:
- Send one or more events to Amplitude [Required]AMPLITUDE_SEND_EVENTS
Key parameters:
: Array of event objects, each containing:events
: Name of the event (e.g., 'page_view', 'purchase')event_type
: Unique user identifier (required if nouser_id
)device_id
: Device identifier (required if nodevice_id
)user_id
: Object with custom event propertiesevent_properties
: Object with user properties to setuser_properties
: Event timestamp in milliseconds since epochtime
Pitfalls:
- At least one of
oruser_id
is required per eventdevice_id
is required for every event; cannot be emptyevent_type
must be in milliseconds (13-digit epoch), not secondstime- Batch limit applies; check schema for maximum events per request
- Events are processed asynchronously; successful API response does not mean data is immediately queryable
2. Get User Activity
When to use: User wants to view event history for a specific user
Tool sequence:
- Find user by ID or property [Prerequisite]AMPLITUDE_FIND_USER
- Retrieve user's event stream [Required]AMPLITUDE_GET_USER_ACTIVITY
Key parameters:
: Amplitude internal user ID (from FIND_USER)user
: Pagination offset for event listoffset
: Maximum number of events to returnlimit
Pitfalls:
parameter requires Amplitude's internal user ID, NOT your application's user_iduser- Must call FIND_USER first to resolve your user_id to Amplitude's internal ID
- Activity is returned in reverse chronological order by default
- Large activity histories require pagination via
offset
3. Find and Identify Users
When to use: User wants to look up users or set user properties
Tool sequence:
- Search for a user by various identifiers [Required]AMPLITUDE_FIND_USER
- Set or update user properties [Optional]AMPLITUDE_IDENTIFY
Key parameters:
- For FIND_USER:
: Search term (user_id, email, or Amplitude ID)user
- For IDENTIFY:
: Your application's user identifieruser_id
: Device identifier (alternative to user_id)device_id
: Object withuser_properties
,$set
,$unset
,$add
operations$append
Pitfalls:
- FIND_USER searches across user_id, device_id, and Amplitude ID
- IDENTIFY uses special property operations (
,$set
,$unset
,$add
)$append
overwrites existing values;$set
only sets if not already set$setOnce- At least one of
oruser_id
is required for IDENTIFYdevice_id - User property changes are eventually consistent; not immediate
4. Manage Cohorts
When to use: User wants to list cohorts, view cohort details, or update cohort membership
Tool sequence:
- List all saved cohorts [Required]AMPLITUDE_LIST_COHORTS
- Get detailed cohort information [Optional]AMPLITUDE_GET_COHORT
- Add/remove users from a cohort [Optional]AMPLITUDE_UPDATE_COHORT_MEMBERSHIP
- Check async cohort operation status [Optional]AMPLITUDE_CHECK_COHORT_STATUS
Key parameters:
- For LIST_COHORTS: No required parameters
- For GET_COHORT:
(from list results)cohort_id - For UPDATE_COHORT_MEMBERSHIP:
: Target cohort IDcohort_id
: Object withmemberships
and/oradd
arrays of user IDsremove
- For CHECK_COHORT_STATUS:
from update responserequest_id
Pitfalls:
- Cohort IDs are required for all cohort-specific operations
- UPDATE_COHORT_MEMBERSHIP is asynchronous; use CHECK_COHORT_STATUS to verify
from the update response is needed for status checkingrequest_id- Maximum membership changes per request may be limited; chunk large updates
- Only behavioral cohorts support API membership updates
5. Browse Event Categories
When to use: User wants to discover available event types and categories in Amplitude
Tool sequence:
- List all event categories [Required]AMPLITUDE_GET_EVENT_CATEGORIES
Key parameters:
- No required parameters; returns all configured event categories
Pitfalls:
- Categories are configured in Amplitude UI; API provides read access
- Event names within categories are case-sensitive
- Use these categories to validate event_type values before sending events
Common Patterns
ID Resolution
Application user_id -> Amplitude internal ID:
1. Call AMPLITUDE_FIND_USER with user=your_user_id 2. Extract Amplitude's internal user ID from response 3. Use internal ID for GET_USER_ACTIVITY
Cohort name -> Cohort ID:
1. Call AMPLITUDE_LIST_COHORTS 2. Find cohort by name in results 3. Extract id for cohort operations
User Property Operations
Amplitude IDENTIFY supports these property operations:
: Set property value (overwrites existing)$set
: Set only if property not already set$setOnce
: Increment numeric property$add
: Append to list property$append
: Remove property entirely$unset
Example structure:
{ "user_properties": { "$set": {"plan": "premium", "company": "Acme"}, "$add": {"login_count": 1} } }
Async Operation Pattern
For cohort membership updates:
1. Call AMPLITUDE_UPDATE_COHORT_MEMBERSHIP -> get request_id 2. Call AMPLITUDE_CHECK_COHORT_STATUS with request_id 3. Repeat step 2 until status is 'complete' or 'error'
Known Pitfalls
User IDs:
- Amplitude has its own internal user IDs separate from your application's
- FIND_USER resolves your IDs to Amplitude's internal IDs
- GET_USER_ACTIVITY requires Amplitude's internal ID, not your user_id
Event Timestamps:
- Must be in milliseconds since epoch (13 digits)
- Seconds (10 digits) will be interpreted as very old dates
- Omitting timestamp uses server receive time
Rate Limits:
- Event ingestion has throughput limits per project
- Batch events where possible to reduce API calls
- Cohort membership updates have async processing limits
Response Parsing:
- Response data may be nested under
keydata - User activity returns events in reverse chronological order
- Cohort lists may include archived cohorts; check status field
- Parse defensively with fallbacks for optional fields
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Send events | AMPLITUDE_SEND_EVENTS | events (array) |
| Find user | AMPLITUDE_FIND_USER | user |
| Get user activity | AMPLITUDE_GET_USER_ACTIVITY | user, offset, limit |
| Identify user | AMPLITUDE_IDENTIFY | user_id, user_properties |
| List cohorts | AMPLITUDE_LIST_COHORTS | (none) |
| Get cohort | AMPLITUDE_GET_COHORT | cohort_id |
| Update cohort members | AMPLITUDE_UPDATE_COHORT_MEMBERSHIP | cohort_id, memberships |
| Check cohort status | AMPLITUDE_CHECK_COHORT_STATUS | request_id |
| List event categories | AMPLITUDE_GET_EVENT_CATEGORIES | (none) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.