# Microsoft Teams — how to use (mcp.ai)

Microsoft Teams in natural language: read chats and channel messages, post messages and replies, manage teams, channels and members, create meetings. The platform provides the OAuth app, just click Connect and pick your Microsoft account. Multiple accounts can be connected to the same MCP.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_microsoft_teams?ms=1781045220000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `microsoft_teams_add_member_to_team`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/microsoft_teams`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/microsoft_teams/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/microsoft_teams/add/member/to/team` — Tool to add a user to a microsoft teams team. use when granting or updating membership for a user.
  - body: { roles?: string[], team_id: string, user_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/archive/team` — Tool to archive a microsoft teams team. use after confirming the team id; returns 202 if accepted.
  - body: { team_id: string, should_set_spo_site_read_only_for_members?: boolean }
- `POST https://api.mcp.ai/api/microsoft_teams/chats/get/all/chats` — Retrieves all microsoft teams chats a specified user is part of, supporting filtering, property selection, and pagination.
  - body: { top?: integer, filter?: string, select?: string[], user_id?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/chats/get/all/messages` — Retrieves 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` a
  - body: { top?: integer, filter?: string, select?: string[], chat_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/create/meeting` — Use to schedule a new standalone microsoft teams online meeting, i.e., one not linked to any calendar event.
  - body: { subject: string, participants?: object[], end_date_time: string, start_date_time: string, is_passcode_required?: boolean }
- `POST https://api.mcp.ai/api/microsoft_teams/create/team` — Tool to create a new microsoft teams team. use when you need to provision a team with optional template, channels, and members.
  - body: { members?: object[], visibility: string, description?: string, displayName: string, firstChannelName?: string, template_odata_bind?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/delete/team` — Tool to delete a microsoft teams team. use after confirming the target team id.
  - body: { team_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/get/channel` — Tool to get a specific channel in a team. use after obtaining valid team and channel ids to fetch channel details.
  - body: { team_id: string, channel_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/get/chat/message` — Tool to get a specific chat message. use after confirming chat id and message id.
  - body: { chat_id: string, message_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/get/team` — Tool to get a specific team. use when full details of one team by id are needed.
  - body: { team_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/list/message/replies` — Tool to list replies to a channel message. use after obtaining team, channel, and message ids.
  - body: { top?: integer, team_id: string, channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/list/team/members` — Tool to list members of a microsoft teams team. use when you need to retrieve the members of a specific team, for auditing or notifications.
  - body: { top?: integer, team_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/list/teams/templates` — Tool to list available microsoft teams templates. use when retrieving templates for team creation or customization workflows.
  - body: { top?: integer, skip?: integer, count?: boolean, filter?: string, select?: string, orderby?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/list/users` — Tool to list all users in the organization. use when you need to retrieve directory users with filtering, pagination, and field selection.
  - body: { $top?: integer, $skip?: integer, $expand?: string, $filter?: string, $select?: string, $orderby?: string, consistencyLevel?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/create/channel` — Creates a new 'standard', 'private', or 'shared' channel within a specified microsoft teams team.
  - body: { name: string, team_id: string, description?: string, membership_type?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/create/chat` — Creates a new chat; if a 'oneonone' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created.
  - body: { topic?: string, members: object[], chatType: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/get/message` — Retrieves a specific message from a microsoft teams channel using its team, channel, and message ids.
  - body: { team_id: string, channel_id: string, message_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/list` — Retrieves microsoft teams accessible by the authenticated user, allowing filtering, property selection, and pagination.
  - body: { top?: integer, filter?: string, select?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/list/channels` — Retrieves 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.
  - body: { filter?: string, select?: string, team_id: string, include_shared_channels?: boolean }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/list/chat/messages` — Retrieves messages (newest first) from an existing and accessible microsoft teams one-on-one chat, group chat, or channel thread, specified by `chat id`.
  - body: { top?: integer, chat_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/list/people` — Retrieves a list of people relevant to a specified user from microsoft graph, noting the `search` parameter is only effective if `user id` is 'me'.
  - body: { top?: integer, skip?: integer, filter?: string, search?: string, select?: string, orderby?: string, user_id?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/post/channel/message` — Posts a new text or html message to a specified channel in a microsoft teams team.
  - body: { content: string, team_id: string, channel_id: string, content_type?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/post/chat/message` — Sends a non-empty message (text or html) to a specified, existing microsoft teams chat; content must be valid html if `content type` is 'html'.
  - body: { chat_id: string, content: string, content_type?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/teams/post/message/reply` — Sends a reply to an existing message, identified by `message id`, within a specific `channel id` of a given `team id` in microsoft teams.
  - body: { content: string, team_id: string, channel_id: string, message_id: string, content_type?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/unarchive/team` — Tool to unarchive a microsoft teams team. use when you need to restore an archived team to active state.
  - body: { team_id: string }
- `POST https://api.mcp.ai/api/microsoft_teams/update/channel/message` — Tool to update a message in a channel. use when you need to modify an existing channel message after confirming channel and message ids.
  - body: { content: string, team_id: string, channel_id: string, message_id: string, content_type?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/update/chat/message` — Tool to update a specific message in a chat. use when you need to correct or modify a sent chat message.
  - body: { chat_id: string, content: string, message_id: string, content_type?: string }
- `POST https://api.mcp.ai/api/microsoft_teams/update/team` — Tool to update the properties of a team. use when you need to modify team settings such as member, messaging, or fun settings.
  - body: { team_id: string, funSettings?: object, memberSettings?: object, messagingSettings?: object }

## Example prompts
- "Summarize the unread messages from my recent Teams chats"
- "List this week's messages in the General channel of the Engineering team"
- "Post an announcement in the Announcements channel about tomorrow's meeting"

## More
- Page: https://mcp.ai/microsoft_teams
- Agent spec (llms.txt): https://mcp.ai/microsoft_teams/llms.txt
- Postman collection: https://mcp.ai/microsoft_teams/postman.json
