Microsoft teams CLI for AI Agents

Framework Integration Gradient
Microsoft teams Logo
CLI Logo
divider

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 850+ SaaS applications. With Microsoft teams, agents can add new member to project team, schedule an online meeting for sales, list all chats i’m part of, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Microsoft teams automation.

Also integrate Microsoft teams with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 850+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Microsoft teams to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Microsoft teams"
  3. Complete the authentication and authorization flow and your Microsoft teams integration is all set.
  4. Start asking anything you want.

Supported Tools & Triggers

Tools
Add member to teamTool to add a user to a microsoft teams team.
Archive Teams teamTool to archive a microsoft teams team.
Get all chatsRetrieves all microsoft teams chats a specified user is part of, supporting filtering, property selection, and pagination.
Get all chat messagesRetrieves all messages from a specified microsoft teams chat using the microsoft graph api, automatically handling pagination; ensure `chat id` is valid and odata expressions in `filter` or `select` are correct.
Create online meetingUse to schedule a new standalone microsoft teams online meeting, i.
Create TeamTool to create a new microsoft teams team.
Delete Teams teamTool to delete a microsoft teams team.
Get team channelTool to get a specific channel in a team.
Get chat messageTool to get a specific chat message.
Get TeamTool to get a specific team.
List message repliesTool to list replies to a channel message.
List team membersTool to list members of a microsoft teams team.
List Teams templatesTool to list available microsoft teams templates.
List usersTool to list all users in the organization.
Create a channelCreates a new 'standard', 'private', or 'shared' channel within a specified microsoft teams team.
Create ChatCreates a new chat; if a 'oneonone' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created.
Get Teams messageRetrieves a specific message from a microsoft teams channel using its team, channel, and message ids.
List TeamsRetrieves microsoft teams accessible by the authenticated user, allowing filtering, property selection, and pagination.
List team channelsRetrieves channels for a specified microsoft teams team id (must be valid and for an existing team), with options to include shared channels, filter results, and select properties.
List chat messagesRetrieves messages (newest first) from an existing and accessible microsoft teams one-on-one chat, group chat, or channel thread, specified by `chat id`.
List PeopleRetrieves a list of people relevant to a specified user from microsoft graph, noting the `search` parameter is only effective if `user id` is 'me'.
Post message to Teams channelPosts a new text or html message to a specified channel in a microsoft teams team.
Send message to Teams chatSends a non-empty message (text or html) to a specified, existing microsoft teams chat; content must be valid html if `content type` is 'html'.
Reply to Teams channel messageSends a reply to an existing message, identified by `message id`, within a specific `channel id` of a given `team id` in microsoft teams.
Unarchive Teams teamTool to unarchive a microsoft teams team.
Update Teams channel messageTool to update a message in a channel.
Update Teams chat messageTool to update a specific message in a chat.
Update TeamTool to update the properties of a team.

Universal CLI Commands for Microsoft teams

You can also manually execute CLI commands to interact with your Microsoft teams.

Connect your Microsoft teams account

Link your Microsoft teams account and verify the connection:

bash
# Connect your Microsoft teams account (opens OAuth flow)
composio connected-accounts link microsoft_teams

# Verify the connection
composio connected-accounts list --toolkits microsoft_teams

Discover Microsoft teams tools

Search and inspect available Microsoft teams tools:

bash
# List all available Microsoft teams tools
composio tools list --toolkit microsoft_teams

# Search for Microsoft teams tools by action
composio tools search "microsoft teams"

# Inspect a tool's input schema
composio tools info MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM

Common Microsoft teams Actions

Add member to teamTool to add a user to a microsoft teams team

bash
composio tools execute MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM \
  --team_id "ee0f5ae2-8bc6-4ae5-8466-7daeebbfa062" \
  --user_id "8b081ef6-4792-4def-b2c9-c363a1bf41d5"

Archive Teams teamTool to archive a microsoft teams team

bash
composio tools execute MICROSOFT_TEAMS_ARCHIVE_TEAM \
  --team_id "f47ac10b-58cc-4372-a567-0e02b2c3d479"

Get all chatsRetrieves all microsoft teams chats a specified user is part of, supporting filtering, property selection, and pagination

bash
composio tools execute MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS \
  --top "25" \
  --filter "topic eq 'Engineering Team'" \
  --select '["id","topic","lastMessagePreview"]' \
  --user_id "me"

Get all chat messagesRetrieves all messages from a specified microsoft teams chat using the microsoft graph api, automatically handling pagination; ensure `chat id` is valid and odata expressions in `filter` or `select` are correct

bash
composio tools execute MICROSOFT_TEAMS_CHATS_GET_ALL_MESSAGES \
  --chat_id "chat-id-123"

Generate Type Definitions

Generate typed schemas for Microsoft teams tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits microsoft_teams

# TypeScript
composio ts generate --toolkits microsoft_teams

# Python
composio py generate --toolkits microsoft_teams

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Microsoft teams operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects

How to build Microsoft teams MCP Agent with another framework

FAQ

What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 850+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Microsoft teams and other connected apps.

How is the CLI different from using an MCP server for Microsoft teams?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

How safe is my Microsoft teams data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Microsoft teams data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.