{"id":"1630de4d-11e5-4184-94b6-7f3cc6528ae4","shortId":"d7JBuQ","kind":"skill","title":"microsoft-teams-automation","tagline":"Automate Microsoft Teams tasks via Rube MCP (Composio): send messages, manage channels, create meetings, handle chats, and search messages. Always search tools first for current schemas.","description":"# Microsoft Teams Automation via Rube MCP\n\nAutomate Microsoft Teams operations through Composio's Microsoft Teams toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Microsoft Teams connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `microsoft_teams`\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 `microsoft_teams`\n3. If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Send Channel Messages\n\n**When to use**: User wants to post a message to a Teams channel\n\n**Tool sequence**:\n1. `MICROSOFT_TEAMS_TEAMS_LIST` - List teams to find target team [Prerequisite]\n2. `MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS` - List channels in the team [Prerequisite]\n3. `MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE` - Post the message [Required]\n\n**Key parameters**:\n- `team_id`: UUID of the team (from TEAMS_LIST)\n- `channel_id`: Channel ID (from LIST_CHANNELS, format: '19:...@thread.tacv2')\n- `content`: Message text or HTML\n- `content_type`: 'text' or 'html'\n\n**Pitfalls**:\n- team_id must be a valid UUID format\n- channel_id must be in thread format (e.g., '19:abc@thread.tacv2')\n- TEAMS_LIST may paginate (~100 items/page); follow @odata.nextLink to find all teams\n- LIST_CHANNELS can return 403 if user lacks access to the team\n- Messages over ~28KB can trigger 400/413 errors; split long content\n- Throttling may return 429; use exponential backoff (1s/2s/4s)\n\n### 2. Send Chat Messages\n\n**When to use**: User wants to send a direct or group chat message\n\n**Tool sequence**:\n1. `MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS` - List existing chats [Optional]\n2. `MICROSOFT_TEAMS_LIST_USERS` - Find users for new chats [Optional]\n3. `MICROSOFT_TEAMS_TEAMS_CREATE_CHAT` - Create a new chat [Optional]\n4. `MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE` - Send the message [Required]\n\n**Key parameters**:\n- `chat_id`: Chat ID (from GET_ALL_CHATS or CREATE_CHAT)\n- `content`: Message content\n- `content_type`: 'text' or 'html'\n- `chatType`: 'oneOnOne' or 'group' (for CREATE_CHAT)\n- `members`: Array of member objects (for CREATE_CHAT)\n\n**Pitfalls**:\n- CREATE_CHAT requires the authenticated user as one of the members\n- oneOnOne chats return existing chat if one already exists between the two users\n- group chats require at least one member with 'owner' role\n- member user_odata_bind must use full Microsoft Graph URL format\n- Chat filter support is very limited; filter client-side when needed\n\n### 3. Create Online Meetings\n\n**When to use**: User wants to schedule a Microsoft Teams meeting\n\n**Tool sequence**:\n1. `MICROSOFT_TEAMS_LIST_USERS` - Find participant user IDs [Optional]\n2. `MICROSOFT_TEAMS_CREATE_MEETING` - Create the meeting [Required]\n\n**Key parameters**:\n- `subject`: Meeting title\n- `start_date_time`: ISO 8601 start time (e.g., '2024-08-15T10:00:00Z')\n- `end_date_time`: ISO 8601 end time (must be after start)\n- `participants`: Array of user objects with user_id and role\n\n**Pitfalls**:\n- end_date_time must be strictly after start_date_time\n- Participants require valid Microsoft user_id (GUID) values, not emails\n- This creates a standalone meeting not linked to a calendar event\n- For calendar-linked meetings, use OUTLOOK_CALENDAR_CREATE_EVENT with is_online_meeting=true\n\n### 4. Manage Teams and Channels\n\n**When to use**: User wants to list, create, or manage teams and channels\n\n**Tool sequence**:\n1. `MICROSOFT_TEAMS_TEAMS_LIST` - List all accessible teams [Required]\n2. `MICROSOFT_TEAMS_GET_TEAM` - Get details for a specific team [Optional]\n3. `MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS` - List channels in a team [Optional]\n4. `MICROSOFT_TEAMS_GET_CHANNEL` - Get channel details [Optional]\n5. `MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL` - Create a new channel [Optional]\n6. `MICROSOFT_TEAMS_LIST_TEAM_MEMBERS` - List team members [Optional]\n7. `MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM` - Add a member to the team [Optional]\n\n**Key parameters**:\n- `team_id`: Team UUID\n- `channel_id`: Channel ID in thread format\n- `filter`: OData filter string (e.g., \"startsWith(displayName,'Project')\")\n- `select`: Comma-separated properties to return\n\n**Pitfalls**:\n- TEAMS_LIST pagination: follow @odata.nextLink in large tenants\n- Private/shared channels may be omitted unless permissions align\n- GET_CHANNEL returns 404 if team_id or channel_id is wrong\n- Always source IDs from list operations; do not guess ID formats\n\n### 5. Search Messages\n\n**When to use**: User wants to find messages across Teams chats and channels\n\n**Tool sequence**:\n1. `MICROSOFT_TEAMS_SEARCH_MESSAGES` - Search with KQL syntax [Required]\n\n**Key parameters**:\n- `query`: KQL search query (supports from:, sent:, attachments, boolean logic)\n\n**Pitfalls**:\n- Newly posted messages may take 30-60 seconds to appear in search\n- Search is eventually consistent; do not rely on it for immediate delivery confirmation\n- Use message listing tools for real-time message verification\n\n## Common Patterns\n\n### Team and Channel ID Resolution\n\n```\n1. Call MICROSOFT_TEAMS_TEAMS_LIST\n2. Find team by displayName\n3. Extract team id (UUID format)\n4. Call MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS with team_id\n5. Find channel by displayName\n6. Extract channel id (19:...@thread.tacv2 format)\n```\n\n### User Resolution\n\n```\n1. Call MICROSOFT_TEAMS_LIST_USERS\n2. Filter by displayName or email\n3. Extract user id (UUID format)\n4. Use for meeting participants, chat members, or team operations\n```\n\n### Pagination\n\n- Teams/Users: Follow @odata.nextLink URL for next page\n- Chats: Auto-paginates up to limit; use top for page size (max 50)\n- Use `top` parameter to control page size\n- Continue until @odata.nextLink is absent\n\n## Known Pitfalls\n\n**Authentication and Permissions**:\n- Different operations require different Microsoft Graph permissions\n- 403 errors indicate insufficient permissions or team access\n- Some operations require admin consent in the Azure AD tenant\n\n**ID Formats**:\n- Team IDs: UUID format (e.g., '87b0560f-fc0d-4442-add8-b380ca926707')\n- Channel IDs: Thread format (e.g., '19:abc123@thread.tacv2')\n- Chat IDs: Various formats (e.g., '19:meeting_xxx@thread.v2')\n- User IDs: UUID format\n- Never guess IDs; always resolve from list operations\n\n**Rate Limits**:\n- Microsoft Graph enforces throttling\n- 429 responses include Retry-After header\n- Keep requests to a few per second\n- Batch operations help reduce total request count\n\n**Message Formatting**:\n- HTML content_type supports rich formatting\n- Adaptive cards require additional handling\n- Message size limit is approximately 28KB\n- Split long content into multiple messages\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List teams | MICROSOFT_TEAMS_TEAMS_LIST | filter, select, top |\n| Get team details | MICROSOFT_TEAMS_GET_TEAM | team_id |\n| List channels | MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS | team_id, filter |\n| Get channel | MICROSOFT_TEAMS_GET_CHANNEL | team_id, channel_id |\n| Create channel | MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL | team_id, displayName |\n| Post to channel | MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE | team_id, channel_id, content |\n| List chats | MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS | user_id, limit |\n| Create chat | MICROSOFT_TEAMS_TEAMS_CREATE_CHAT | chatType, members, topic |\n| Post to chat | MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE | chat_id, content |\n| Create meeting | MICROSOFT_TEAMS_CREATE_MEETING | subject, start_date_time, end_date_time |\n| List users | MICROSOFT_TEAMS_LIST_USERS | filter, select, top |\n| List team members | MICROSOFT_TEAMS_LIST_TEAM_MEMBERS | team_id |\n| Add team member | MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM | team_id, user_id |\n| Search messages | MICROSOFT_TEAMS_SEARCH_MESSAGES | query |\n| Get chat message | MICROSOFT_TEAMS_GET_CHAT_MESSAGE | chat_id, message_id |\n| List joined teams | MICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS | (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":["microsoft","teams","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-microsoft-teams-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/microsoft-teams-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 · 34666 github stars · SKILL.md body (8,667 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-23T06:51:33.716Z","embedding":null,"createdAt":"2026-04-18T21:40:46.331Z","updatedAt":"2026-04-23T06:51:33.716Z","lastSeenAt":"2026-04-23T06:51:33.716Z","tsv":"'-08':512 '-15':513 '-60':798 '/mcp':90 '00':515 '00z':516 '1':110,158,177,324,479,605,769,834,875 '100':267 '19':231,260,870,986,994 '1s/2s/4s':304 '2':122,189,305,335,489,615,840,881 '2024':511 '28kb':289,1055 '3':131,201,346,462,627,845,887 '30':797 '4':146,357,585,639,851,893 '400/413':292 '403':279,949 '404':731 '429':300,1016 '4442':977 '5':648,751,861 '50':924 '6':659,866 '7':669 '8601':507,521 '87b0560f':975 '87b0560f-fc0d':974 'abc':261 'abc123':987 'absent':936 'access':283,612,956 'across':762 'action':1250 'activ':60,136,151 'ad':965 'adapt':1045 'add':87,104,672,676,1196,1201 'add8':979 'add8-b380ca926707':978 'addit':1048 'admin':960 'align':727 'alreadi':423 'alway':24,72,740,1005 'api':100 'appear':801 'applic':1244 'approxim':1054 'array':397,529 'ask':1288 'attach':788 'auth':140 'authent':409,939 'auto':913 'auto-pagin':912 'autom':4,5,33,37 'avail':59,115 'azur':964 'b380ca926707':980 'backoff':303 'batch':1030 'bind':442 'boolean':789 'boundari':1296 'calendar':568,572,577 'calendar-link':571 'call':73,123,835,852,876 'card':1046 'channel':16,160,174,194,196,206,223,225,229,252,276,589,602,632,634,643,645,653,657,689,691,721,729,736,766,831,857,863,868,981,1088,1093,1098,1102,1105,1108,1113,1119,1124,1128 'chat':20,307,320,327,330,333,344,351,355,362,370,372,377,380,395,403,406,417,420,430,450,764,898,911,989,1132,1135,1138,1143,1148,1154,1159,1161,1217,1222,1224 'chattyp':389,1149 'clarif':1290 'clear':1263 'client':97,458 'client-sid':457 'comma':706 'comma-separ':705 'common':827 'complet':143 'composio':12,42 'configur':98 'confirm':117,147,816 'connect':55,63,67,126,133,148 'consent':961 'consist':807 'content':233,238,296,381,383,384,1040,1058,1130,1163 'continu':932 'control':929 'core':156 'count':1036 'creat':17,350,352,379,394,402,405,463,492,494,560,578,597,652,654,1107,1112,1142,1147,1164,1168 'criteria':1299 'current':29,80 'date':504,518,540,547,1172,1175 'deliveri':815 'describ':1251,1267 'detail':621,646,1080 'differ':942,945 'direct':317 'displaynam':702,844,865,884,1116 'e.g':259,510,700,973,985,993 'email':558,886 'end':517,522,539,1174 'endpoint':106 'enforc':1014 'environ':1279 'environment-specif':1278 'error':293,950 'event':569,579 'eventu':806 'execut':1246 'exist':332,419,424 'expert':1284 'exponenti':302 'extract':846,867,888 'fc0d':976 'filter':451,456,696,698,882,1075,1096,1183 'find':185,272,340,484,760,841,862 'first':27,77 'follow':137,269,715,905 'format':230,251,258,449,695,750,850,872,892,968,972,984,992,1001,1038,1044 'full':445 'get':79,84,328,375,618,620,642,644,728,1078,1083,1097,1101,1136,1216,1221 'graph':447,947,1013 'group':319,392,429 'guess':748,1003 'guid':555 'handl':19,1049 'header':1022 'help':1032 'html':237,242,388,1039 'id':215,224,226,245,253,371,373,487,535,554,686,690,692,734,737,742,749,832,848,860,869,890,967,970,982,990,999,1004,1086,1095,1104,1106,1115,1127,1129,1140,1162,1195,1206,1208,1225,1227 'immedi':814 'includ':1018 'indic':951 'input':1293 'insuffici':952 'iso':506,520 'items/page':268 'join':1229,1235 'keep':1023 'key':101,212,368,498,683,779,1067 'known':937 'kql':776,782 'lack':282 'larg':718 'least':433 'limit':455,917,1011,1052,1141,1255 'link':141,565,573 'list':181,182,193,195,222,228,264,275,331,338,482,596,609,610,631,633,662,665,713,744,819,839,856,879,1008,1069,1074,1087,1092,1131,1177,1181,1186,1191,1228,1233 'logic':790 'long':295,1057 'manag':15,66,125,586,599 'match':1264 'max':923 'may':265,298,722,795 'mcp':11,36,49,52,86,93,113 'meet':18,465,476,493,496,501,563,574,583,896,995,1165,1169 'member':396,399,415,435,439,664,667,673,678,899,1150,1188,1193,1198,1202 'messag':14,23,161,170,207,210,234,287,308,321,363,366,382,753,761,773,794,818,825,1037,1050,1061,1125,1160,1210,1214,1218,1223,1226 'microsoft':2,6,31,38,44,61,70,129,144,178,190,202,325,336,347,358,446,474,480,490,552,606,616,628,640,649,660,670,770,836,853,877,946,1012,1071,1081,1089,1099,1109,1120,1133,1144,1155,1166,1179,1189,1199,1211,1219,1231 'microsoft-teams-autom':1 'miss':1301 'multipl':1060 'must':53,246,254,443,524,542 'need':102,461 'never':1002 'new':343,354,656 'newli':792 'next':909 'none':1237 'oauth':145 'object':400,532 'odata':441,697 'odata.nextlink':270,716,906,934 'omit':724 'one':412,422,434 'oneonon':390,416 'onlin':464,582 'oper':40,745,902,943,958,1009,1031 'option':334,345,356,488,626,638,647,658,668,682 'outlook':576 'output':1273 'overview':1254 'owner':437 'page':910,921,930 'pagin':266,714,903,914 'param':1068 'paramet':213,369,499,684,780,927 'particip':485,528,549,897 'pattern':828 'per':1028 'permiss':726,941,948,953,1294 'pitfal':243,404,538,711,791,938 'post':168,205,208,361,793,1117,1123,1152,1158 'prerequisit':50,188,200 'private/shared':720 'project':703 'properti':708 'queri':781,784,1215 'quick':1062 'rate':1010 'real':823 'real-tim':822 'reduc':1033 'refer':1063 'reli':810 'request':1024,1035 'requir':211,367,407,431,497,550,614,778,944,959,1047,1292 'resolut':833,874 'resolv':1006 'respond':121 'respons':1017 'retri':1020 'retry-aft':1019 'return':139,278,299,418,710,730 'review':1285 'rich':1043 'role':438,537 'rube':10,35,48,51,56,65,74,85,112,118,124 'rube.app':89 'rube.app/mcp':88 'run':153 'safeti':1295 'schedul':472 'schema':30,82 'scope':1266 'search':22,25,57,75,119,752,772,774,783,803,804,1209,1213 'second':799,1029 'select':704,1076,1184 'send':13,159,306,315,364 'sent':787 'separ':707 'sequenc':176,323,478,604,768 'server':94 'setup':83 'show':150 'side':459 'size':922,931,1051 'skill':1242,1258 'skill-microsoft-teams-automation' 'slug':1066 'sourc':741 'source-sickn33' 'specif':624,1280 'split':294,1056 'standalon':562 'start':503,508,527,546,1171 'startswith':701 'status':149 'stop':1286 'strict':544 'string':699 'subject':500,1170 'substitut':1276 'success':1298 'support':452,785,1042 'syntax':777 't10':514 'take':796 'target':186 'task':8,1064,1262 'team':3,7,32,39,45,62,71,130,173,179,180,183,187,191,192,199,203,204,214,219,221,244,263,274,286,326,337,348,349,359,360,475,481,491,587,600,607,608,613,617,619,625,629,630,637,641,650,651,661,663,666,671,675,681,685,687,712,733,763,771,829,837,838,842,847,854,855,859,878,901,955,969,1070,1072,1073,1079,1082,1084,1085,1090,1091,1094,1100,1103,1110,1111,1114,1121,1122,1126,1134,1145,1146,1156,1157,1167,1180,1187,1190,1192,1194,1197,1200,1204,1205,1212,1220,1230,1232,1236 'teams/users':904 'tenant':719,966 'test':1282 'text':235,240,386 'thread':257,694,983 'thread.tacv2':232,262,871,988 'thread.v2':997 'throttl':297,1015 'time':505,509,519,523,541,548,824,1173,1176 'titl':502 'tool':26,58,76,81,120,175,322,477,603,767,820,1065 'toolkit':46,69,128 'top':919,926,1077,1185 'topic':1151 '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' 'total':1034 'treat':1271 'trigger':291 'true':584 'two':427 'type':239,385,1041 'unless':725 'url':448,907 'use':164,301,311,444,468,575,592,756,817,894,918,925,1240,1256 'user':165,281,312,339,341,410,428,440,469,483,486,531,534,553,593,757,873,880,889,998,1139,1178,1182,1207,1234 'uuid':216,250,688,849,891,971,1000 'valid':249,551,1281 'valu':556 'various':991 'verif':826 'verifi':111 'via':9,34,47,64 'want':166,313,470,594,758 'work':109 'workflow':155,157,1248 'wrong':739 'xxx':996","prices":[{"id":"66526934-5580-41ec-9b26-bb647951a6a5","listingId":"1630de4d-11e5-4184-94b6-7f3cc6528ae4","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:40:46.331Z"}],"sources":[{"listingId":"1630de4d-11e5-4184-94b6-7f3cc6528ae4","source":"github","sourceId":"sickn33/antigravity-awesome-skills/microsoft-teams-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/microsoft-teams-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:40:46.331Z","lastSeenAt":"2026-04-23T06:51:33.716Z"}],"details":{"listingId":"1630de4d-11e5-4184-94b6-7f3cc6528ae4","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"microsoft-teams-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"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-23T06:41:03Z","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":"299fb2fba8c5753fd7309d4bf85be7d69898b528","skill_md_path":"skills/microsoft-teams-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/microsoft-teams-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"microsoft-teams-automation","description":"Automate Microsoft Teams tasks via Rube MCP (Composio): send messages, manage channels, create meetings, handle chats, and search messages. Always search tools first for current schemas."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/microsoft-teams-automation"},"updatedAt":"2026-04-23T06:51:33.716Z"}}