{"id":"95cb564d-c852-41a6-96a2-a057b3c5fc41","shortId":"y4nWaV","kind":"skill","title":"amplitude-automation","tagline":"Automate Amplitude tasks via Rube MCP (Composio): events, user activity, cohorts, user identification. Always search tools first for current schemas.","description":"# Amplitude Automation via Rube MCP\n\nAutomate Amplitude product analytics through Composio's Amplitude toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Amplitude connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `amplitude`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**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.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `amplitude`\n3. If connection is not ACTIVE, follow the returned auth link to complete Amplitude authentication\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Send Events\n\n**When to use**: User wants to track events or send event data to Amplitude\n\n**Tool sequence**:\n1. `AMPLITUDE_SEND_EVENTS` - Send one or more events to Amplitude [Required]\n\n**Key parameters**:\n- `events`: Array of event objects, each containing:\n  - `event_type`: Name of the event (e.g., 'page_view', 'purchase')\n  - `user_id`: Unique user identifier (required if no `device_id`)\n  - `device_id`: Device identifier (required if no `user_id`)\n  - `event_properties`: Object with custom event properties\n  - `user_properties`: Object with user properties to set\n  - `time`: Event timestamp in milliseconds since epoch\n\n**Pitfalls**:\n- At least one of `user_id` or `device_id` is required per event\n- `event_type` is required for every event; cannot be empty\n- `time` must be in milliseconds (13-digit epoch), not seconds\n- Batch limit applies; check schema for maximum events per request\n- Events are processed asynchronously; successful API response does not mean data is immediately queryable\n\n### 2. Get User Activity\n\n**When to use**: User wants to view event history for a specific user\n\n**Tool sequence**:\n1. `AMPLITUDE_FIND_USER` - Find user by ID or property [Prerequisite]\n2. `AMPLITUDE_GET_USER_ACTIVITY` - Retrieve user's event stream [Required]\n\n**Key parameters**:\n- `user`: Amplitude internal user ID (from FIND_USER)\n- `offset`: Pagination offset for event list\n- `limit`: Maximum number of events to return\n\n**Pitfalls**:\n- `user` parameter requires Amplitude's internal user ID, NOT your application's user_id\n- Must call FIND_USER first to resolve your user_id to Amplitude's internal ID\n- Activity is returned in reverse chronological order by default\n- Large activity histories require pagination via `offset`\n\n### 3. Find and Identify Users\n\n**When to use**: User wants to look up users or set user properties\n\n**Tool sequence**:\n1. `AMPLITUDE_FIND_USER` - Search for a user by various identifiers [Required]\n2. `AMPLITUDE_IDENTIFY` - Set or update user properties [Optional]\n\n**Key parameters**:\n- For FIND_USER:\n  - `user`: Search term (user_id, email, or Amplitude ID)\n- For IDENTIFY:\n  - `user_id`: Your application's user identifier\n  - `device_id`: Device identifier (alternative to user_id)\n  - `user_properties`: Object with `$set`, `$unset`, `$add`, `$append` operations\n\n**Pitfalls**:\n- FIND_USER searches across user_id, device_id, and Amplitude ID\n- IDENTIFY uses special property operations (`$set`, `$unset`, `$add`, `$append`)\n- `$set` overwrites existing values; `$setOnce` only sets if not already set\n- At least one of `user_id` or `device_id` is required for IDENTIFY\n- User property changes are eventually consistent; not immediate\n\n### 4. Manage Cohorts\n\n**When to use**: User wants to list cohorts, view cohort details, or update cohort membership\n\n**Tool sequence**:\n1. `AMPLITUDE_LIST_COHORTS` - List all saved cohorts [Required]\n2. `AMPLITUDE_GET_COHORT` - Get detailed cohort information [Optional]\n3. `AMPLITUDE_UPDATE_COHORT_MEMBERSHIP` - Add/remove users from a cohort [Optional]\n4. `AMPLITUDE_CHECK_COHORT_STATUS` - Check async cohort operation status [Optional]\n\n**Key parameters**:\n- For LIST_COHORTS: No required parameters\n- For GET_COHORT: `cohort_id` (from list results)\n- For UPDATE_COHORT_MEMBERSHIP:\n  - `cohort_id`: Target cohort ID\n  - `memberships`: Object with `add` and/or `remove` arrays of user IDs\n- For CHECK_COHORT_STATUS: `request_id` from update response\n\n**Pitfalls**:\n- Cohort IDs are required for all cohort-specific operations\n- UPDATE_COHORT_MEMBERSHIP is asynchronous; use CHECK_COHORT_STATUS to verify\n- `request_id` from the update response is needed for status checking\n- Maximum membership changes per request may be limited; chunk large updates\n- Only behavioral cohorts support API membership updates\n\n### 5. Browse Event Categories\n\n**When to use**: User wants to discover available event types and categories in Amplitude\n\n**Tool sequence**:\n1. `AMPLITUDE_GET_EVENT_CATEGORIES` - List all event categories [Required]\n\n**Key parameters**:\n- No required parameters; returns all configured event categories\n\n**Pitfalls**:\n- Categories are configured in Amplitude UI; API provides read access\n- Event names within categories are case-sensitive\n- Use these categories to validate event_type values before sending events\n\n## Common Patterns\n\n### ID Resolution\n\n**Application user_id -> Amplitude internal ID**:\n```\n1. Call AMPLITUDE_FIND_USER with user=your_user_id\n2. Extract Amplitude's internal user ID from response\n3. Use internal ID for GET_USER_ACTIVITY\n```\n\n**Cohort name -> Cohort ID**:\n```\n1. Call AMPLITUDE_LIST_COHORTS\n2. Find cohort by name in results\n3. Extract id for cohort operations\n```\n\n### User Property Operations\n\nAmplitude IDENTIFY supports these property operations:\n- `$set`: Set property value (overwrites existing)\n- `$setOnce`: Set only if property not already set\n- `$add`: Increment numeric property\n- `$append`: Append to list property\n- `$unset`: Remove property entirely\n\nExample structure:\n```json\n{\n  \"user_properties\": {\n    \"$set\": {\"plan\": \"premium\", \"company\": \"Acme\"},\n    \"$add\": {\"login_count\": 1}\n  }\n}\n```\n\n### Async Operation Pattern\n\nFor cohort membership updates:\n```\n1. Call AMPLITUDE_UPDATE_COHORT_MEMBERSHIP -> get request_id\n2. Call AMPLITUDE_CHECK_COHORT_STATUS with request_id\n3. Repeat step 2 until status is 'complete' or 'error'\n```\n\n## Known Pitfalls\n\n**User IDs**:\n- Amplitude has its own internal user IDs separate from your application's\n- FIND_USER resolves your IDs to Amplitude's internal IDs\n- GET_USER_ACTIVITY requires Amplitude's internal ID, not your user_id\n\n**Event Timestamps**:\n- Must be in milliseconds since epoch (13 digits)\n- Seconds (10 digits) will be interpreted as very old dates\n- Omitting timestamp uses server receive time\n\n**Rate Limits**:\n- Event ingestion has throughput limits per project\n- Batch events where possible to reduce API calls\n- Cohort membership updates have async processing limits\n\n**Response Parsing**:\n- Response data may be nested under `data` key\n- User activity returns events in reverse chronological order\n- Cohort lists may include archived cohorts; check status field\n- Parse defensively with fallbacks for optional fields\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Send events | AMPLITUDE_SEND_EVENTS | events (array) |\n| Find user | AMPLITUDE_FIND_USER | user |\n| Get user activity | AMPLITUDE_GET_USER_ACTIVITY | user, offset, limit |\n| Identify user | AMPLITUDE_IDENTIFY | user_id, user_properties |\n| List cohorts | AMPLITUDE_LIST_COHORTS | (none) |\n| Get cohort | AMPLITUDE_GET_COHORT | cohort_id |\n| Update cohort members | AMPLITUDE_UPDATE_COHORT_MEMBERSHIP | cohort_id, memberships |\n| Check cohort status | AMPLITUDE_CHECK_COHORT_STATUS | request_id |\n| List event categories | AMPLITUDE_GET_EVENT_CATEGORIES | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["amplitude","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-amplitude-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/amplitude-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34964 github stars · SKILL.md body (8,152 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T00:50:25.509Z","embedding":null,"createdAt":"2026-04-18T21:30:52.699Z","updatedAt":"2026-04-25T00:50:25.509Z","lastSeenAt":"2026-04-25T00:50:25.509Z","tsv":"'/mcp':79 '1':99,146,165,314,425,559,714,774,805,872,880 '10':957 '13':266,954 '2':111,295,325,437,568,784,810,889,901 '3':119,405,577,793,817,898 '4':134,539,588 '5':694 'access':744 'acm':868 'across':490 'action':1120 'activ':13,51,124,139,298,329,389,399,800,936,1007,1052,1056 'add':76,93,483,505,627,846,869 'add/remove':582 'alreadi':516,844 'altern':473 'alway':17,61 'amplitud':2,5,24,30,36,52,60,118,132,162,166,175,315,326,339,363,385,426,438,458,496,560,569,578,589,711,715,739,771,776,786,807,826,882,891,912,930,938,1039,1046,1053,1062,1070,1076,1084,1094,1103 'amplitude-autom':1 'analyt':32 'and/or':628 'api':89,286,691,741,987 'append':484,506,850,851 'appli':273 'applic':370,465,768,922,1114 'archiv':1018 'array':180,630,1043 'ask':1158 'async':594,873,993 'asynchron':284,658 'auth':128 'authent':133 'autom':3,4,25,29 'avail':50,104,705 'batch':271,981 'behavior':688 'boundari':1166 'brows':695 'call':62,112,375,775,806,881,890,988 'cannot':258 'case':751 'case-sensit':750 'categori':697,709,718,722,733,735,748,755,1102,1106 'chang':533,678 'check':274,590,593,635,660,675,892,1020,1091,1095 'chronolog':394,1012 'chunk':684 'clarif':1160 'clear':1133 'client':86 'cohort':14,541,549,551,555,562,566,571,574,580,586,591,595,603,609,610,617,619,622,636,644,651,655,661,689,801,803,809,812,821,877,884,893,989,1014,1019,1069,1072,1075,1078,1079,1082,1086,1088,1092,1096 'cohort-specif':650 'common':764 'compani':867 'complet':131,905 'composio':10,34 'configur':87,731,737 'confirm':106,135 'connect':46,53,57,115,121,136 'consist':536 'contain':185 'core':144 'count':871 'criteria':1169 'current':22,69 'custom':219 'data':160,291,999,1004 'date':965 'default':397 'defens':1024 'describ':1121,1137 'detail':552,573 'devic':204,206,208,245,469,471,493,525 'digit':267,955,958 'discov':704 'e.g':192 'email':456 'empti':260 'endpoint':95 'entir':858 'environ':1149 'environment-specif':1148 'epoch':236,268,953 'error':907 'event':11,148,156,159,168,173,179,182,186,191,215,220,231,250,251,257,278,281,306,333,350,356,696,706,717,721,732,745,758,763,946,974,982,1009,1038,1041,1042,1101,1105 'eventu':535 'everi':256 'exampl':859 'execut':1116 'exist':509,837 'expert':1154 'extract':785,818 'fallback':1026 'field':1022,1029 'find':316,318,344,376,406,427,449,487,777,811,924,1044,1047 'first':20,66,378 'follow':125 'get':68,73,296,327,570,572,608,716,798,886,934,1050,1054,1074,1077,1104 'histori':307,400 'id':197,205,207,214,243,246,321,342,367,373,383,388,455,459,463,470,476,492,494,497,523,526,611,620,623,633,639,645,666,766,770,773,783,790,796,804,819,888,897,911,918,928,933,941,945,1065,1080,1089,1099 'identif':16 'identifi':200,209,408,435,439,461,468,472,498,530,827,1060,1063 'immedi':293,538 'includ':1017 'increment':847 'inform':575 'ingest':975 'input':1163 'intern':340,365,387,772,788,795,916,932,940 'interpret':961 'json':861 'key':90,177,336,446,599,724,1005,1035 'known':908 'larg':398,685 'least':239,519 'limit':272,352,683,973,978,995,1059,1125 'link':129 'list':351,548,561,563,602,613,719,808,853,1015,1068,1071,1100 'login':870 'look':416 'manag':56,114,540 'match':1134 'maximum':277,353,676 'may':681,1000,1016 'mcp':9,28,40,43,75,82,102 'mean':290 'member':1083 'membership':556,581,618,624,656,677,692,878,885,990,1087,1090 'millisecond':234,265,951 'miss':1171 'must':44,262,374,948 'name':188,746,802,814 'need':91,672 'nest':1002 'none':1073,1107 'number':354 'numer':848 'object':183,217,224,479,625 'offset':346,348,404,1058 'old':964 'omit':966 'one':170,240,520 'oper':485,502,596,653,822,825,831,874 'option':445,576,587,598,1028 'order':395,1013 'output':1143 'overview':1124 'overwrit':508,836 'page':193 'pagin':347,402 'param':1036 'paramet':178,337,361,447,600,606,725,728 'pars':997,1023 'pattern':765,875 'per':249,279,679,979 'permiss':1164 'pitfal':237,359,486,643,734,909 'plan':865 'possibl':984 'premium':866 'prerequisit':41,324 'process':283,994 'product':31 'project':980 'properti':216,221,223,227,323,422,444,478,501,532,824,830,834,842,849,854,857,863,1067 'provid':742 'purchas':195 'queryabl':294 'quick':1030 'rate':972 'read':743 'receiv':970 'reduc':986 'refer':1031 'remov':629,856 'repeat':899 'request':280,638,665,680,887,896,1098 'requir':176,201,210,248,254,335,362,401,436,528,567,605,647,723,727,937,1162 'resolut':767 'resolv':380,926 'respond':110 'respons':287,642,670,792,996,998 'result':614,816 'retriev':330 'return':127,358,391,729,1008 'revers':393,1011 'review':1155 'rube':8,27,39,42,47,55,63,74,101,107,113 'rube.app':78 'rube.app/mcp':77 'run':141 'safeti':1165 'save':565 'schema':23,71,275 'scope':1136 'search':18,48,64,108,429,452,489 'second':270,956 'send':147,158,167,169,762,1037,1040 'sensit':752 'separ':919 'sequenc':164,313,424,558,713 'server':83,969 'set':229,420,440,481,503,507,513,517,832,833,839,845,864 'setonc':511,838 'setup':72 'show':138 'sinc':235,952 'skill':1112,1128 'skill-amplitude-automation' 'slug':1034 'source-sickn33' 'special':500 'specif':310,652,1150 'status':137,592,597,637,662,674,894,903,1021,1093,1097 'step':900 'stop':1156 'stream':334 'structur':860 'substitut':1146 'success':285,1168 'support':690,828 'target':621 'task':6,1032,1132 'term':453 'test':1152 'throughput':977 'time':230,261,971 'timestamp':232,947,967 'tool':19,49,65,70,109,163,312,423,557,712,1033 'toolkit':37,59,117 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':155 'treat':1141 'type':187,252,707,759 'ui':740 'uniqu':198 'unset':482,504,855 'updat':442,554,579,616,641,654,669,686,693,879,883,991,1081,1085 'use':151,301,412,499,544,659,700,753,794,968,1110,1126 'user':12,15,152,196,199,213,222,226,242,297,302,311,317,319,328,331,338,341,345,360,366,372,377,382,409,413,418,421,428,432,443,450,451,454,462,467,475,477,488,491,522,531,545,583,632,701,769,778,780,782,789,799,823,862,910,917,925,935,944,1006,1045,1048,1049,1051,1055,1057,1061,1064,1066 'valid':757,1151 'valu':510,760,835 'various':434 'verifi':100,664 'via':7,26,38,54,403 'view':194,305,550 'want':153,303,414,546,702 'within':747 'work':98 'workflow':143,145,1118","prices":[{"id":"2add7d5b-03dc-4431-9218-654c4763c6f5","listingId":"95cb564d-c852-41a6-96a2-a057b3c5fc41","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:30:52.699Z"}],"sources":[{"listingId":"95cb564d-c852-41a6-96a2-a057b3c5fc41","source":"github","sourceId":"sickn33/antigravity-awesome-skills/amplitude-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/amplitude-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:30:52.699Z","lastSeenAt":"2026-04-25T00:50:25.509Z"}],"details":{"listingId":"95cb564d-c852-41a6-96a2-a057b3c5fc41","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"amplitude-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34964,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"eb71901b8e339ee8033cd4eff0c960e1dd1efe09","skill_md_path":"skills/amplitude-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/amplitude-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"amplitude-automation","description":"Automate Amplitude tasks via Rube MCP (Composio): events, user activity, cohorts, user identification. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/amplitude-automation"},"updatedAt":"2026-04-25T00:50:25.509Z"}}