ms-teams-clilisted
Install: claude install-skill abdullahkhawer/devops-skills
# Microsoft Teams CLI Skill
Microsoft Teams has no official first-party CLI — use the Microsoft Graph API via `curl` for all operations.
## Configuration
Update the tenant details below before using this skill:
| Setting | Value |
|---|---|
| Azure AD Tenant ID | `<your-tenant-id>` |
| App Registration Client ID | `<your-client-id>` |
| Token File | `~/.msteams/token` |
### Prerequisites (one-time setup by user)
Register an Azure AD application with `ChannelMessage.Send`, `Team.ReadBasic.All`, and `Channel.ReadBasic.All` Graph API permissions (admin consent required for most Teams scopes), then obtain an OAuth token and save it to the token file. Never print or display the token value. Do not perform these steps yourself.
```bash
mkdir -p ~/.msteams && echo "<your-access-token>" > ~/.msteams/token && chmod 600 ~/.msteams/token
```
## Command Format
All API calls use `curl` with the token read from the token file:
```bash
curl -s -H "Authorization: Bearer $(cat ~/.msteams/token)" \
"https://graph.microsoft.com/v1.0/<endpoint>" | jq .
```
## Available API Endpoints
### Read-only (safe, no confirmation needed)
| Endpoint | Method | Description |
|---|---|---|
| `/v1.0/me/joinedTeams` | GET | List teams the authenticated user has joined |
| `/v1.0/teams/<team-id>/channels` | GET | List channels in a team |
| `/v1.0/teams/<team-id>/channels/<channel-id>/messages` | GET | List messages in a channel |
| `/v1.0/teams/<team-id>/channels/<channel-id>/messages/<message-id