Microsoft teams
Read and send Microsoft Teams chat messages via Microsoft Graph v1.0. Use when the user mentions Microsoft Teams chats, a 1:1 or group chat, reading recent Teams messages, or sending a Teams chat message. (Channel messages are not covered — they need admin-consented scopes.)From its SKILL.md
npx -y skills add AceDataCloud/Skills --skill microsoft-teamsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.0 KB, 616 tokens by cl100k_base, as published. Nobody here has run it
Drive Microsoft Teams chats via Microsoft Graph with curl + jq. The user's
OAuth bearer token is in $MICROSOFT_TEAMS_TOKEN; every call needs
Authorization: Bearer $MICROSOFT_TEAMS_TOKEN. Base URL:
https://graph.microsoft.com/v1.0.
Failures are {"error":{"code","message"}} — show message verbatim. 401 =
re-install. 403/Forbidden on send = the user granted read-only
(Chat.Read) → re-connect with Chat.ReadWrite + ChatMessage.Send.
403 "No authorization information present on the request" on /me/chats =
the connected account is a personal Microsoft account. Teams chat is a
work/school (organization) feature — Microsoft Graph does not expose /me/chats
or grant the Chat.* scopes for personal MSA accounts (outlook.com/hotmail/etc).
Tell the user plainly: "Microsoft Teams chat needs a work or school account;
your connected account is a personal Microsoft account. Reconnect Teams and
choose a work/school account." Do not retry — it cannot succeed for that account.
G="https://graph.microsoft.com/v1.0"; AUTH="Authorization: Bearer $MICROSOFT_TEAMS_TOKEN"
# My chats (1:1 + group), most recent first; expand members for names
curl -sS -H "$AUTH" "$G/me/chats?\$top=20&\$expand=members" \
| jq '.value[] | {id, chatType, topic, members: [.members[].displayName]}'
Read & send chat messages
CHAT="CHAT_ID"
# Recent messages
curl -sS -H "$AUTH" "$G/chats/$CHAT/messages?\$top=20" \
| jq '.value[] | {from: .from.user.displayName, created: .createdDateTime, text: .body.content}'
# Send a message (confirm content with the user first). contentType html|text.
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d '{"body":{"contentType":"html","content":"Hi from the assistant 👋"}}' \
"$G/chats/$CHAT/messages" | jq '{id, created: .createdDateTime}'
Gotchas
- Chats only. Reading Teams channel messages needs
ChannelMessage.Read.All— a Microsoft "protected API" requiring tenant-admin consent — which this connector deliberately does not request. Don't try/teams/{id}/channels/.../messages; it will 403. body.contentfor HTML messages contains markup — strip tags when summarizing.- OData
$top/$expandneed the$escaped in the shell; quote the URL.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.