Skip to main content

Announcing StackOne Defender: leading open-source prompt injection guard for your agent Read More

Microsoft Teams MCP Server
for AI Agents

Production-ready Microsoft Teams MCP server with 62 extensible actions — plus built-in authentication, security, and optimized execution.

Microsoft Teams logo
Microsoft Teams MCP Server
Built by StackOne StackOne

Coverage

62 Agent Actions

Create, read, update, and delete across Microsoft Teams — and extend your agent's capabilities with custom actions.

Authentication

Agent Tool Authentication

Per-user OAuth in one call. Your Microsoft Teams MCP server gets session-scoped tokens with zero credentials stored on your infra.

Agent Auth →

Security

Agent Protection

Every Microsoft Teams tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.

Prompt Injection Defense →

Performance

Max Agent Context. Min Cost.

Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every Microsoft Teams call.

Tools Discovery →

What is the Microsoft Teams MCP Server?

A Microsoft Teams MCP server lets AI agents read and write Microsoft Teams data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's Microsoft Teams MCP server ships with 62 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, and optimized agent context. Connect it from MCP clients like Claude Desktop, Cursor, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.

All Microsoft Teams MCP Tools and Actions

Every action from Microsoft Teams's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.

Users

  • Create User

    Create a new user account in the organization with the specified properties

  • List Users

    Retrieve a list of user objects. By default, returns a limited set of properties (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName). Use $select to specify alternative properties.

  • Get User

    Retrieve the properties and relationships of a specific user by their ID or userPrincipalName. By default, only a limited set of properties are returned (businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName). Use the select parameter to return an alternative property set.

  • Delete User

    Delete a specific user from the organization by their ID or userPrincipalName

Teams

  • Create Team

    Create a new team from a template or from an existing group

  • Clone Team

    Create a copy of a team with specified parts

  • List Teams

    Retrieve a list of all teams in an organization using the direct teams endpoint

  • Get Team

    Retrieve the properties and relationships of a specific team by its ID

  • Update Team

    Update the properties of the specified team

  • Delete Team

    Delete a team and move it to the recycle bin for 30 days

Team Members

  • Add Team Member

    Add a member to a team

  • List Team Members

    Get the conversationMember collection of a team

  • Get Team Member

    Get a conversationMember from a team

  • Remove Team Member

    Remove a member from a team

Team Members In Bulks

  • Add Team Members In Bulk

    Add multiple members to a team in a single request

  • Remove Team Members In Bulk

    Remove multiple members from a team in a single request

Channels

  • Create Channel

    Create a new channel in a team, as specified in the request body

  • List Channels

    Retrieve the list of channels in a team

  • Get Channel

    Retrieve the properties and relationships of a channel

  • Update Channel

    Update the properties of the specified channel

  • Delete Channel

    Delete a specific channel from a team. Deleting a channel is a permanent operation that cannot be undone.

Channel Tabs

  • List Channel Tabs

    Retrieve the list of tabs in the specified channel within a team

  • Get Channel Tab

    Retrieve the properties and relationships of a specified tab in a channel within a team

  • Delete Channel Tab

    Remove (unpin) a tab from the specified channel within a team

Channel Members

  • Add Channel Member

    Add a conversationMember to a channel

  • List Channel Members

    Get a list of members in a channel, including direct members of standard, private, and shared channels

  • Get Channel Member

    Get a conversationMember from a channel

  • Remove Channel Member

    Delete a conversationMember from a channel

Channel Messages

  • Send Channel Message

    Send a new message to a specific channel. Only the body property is mandatory.

  • List Channel Messages

    Retrieve the list of messages (without the replies) in a channel of a team

  • Get Channel Message

    Retrieve a single message or a message reply in a channel

  • Update Channel Message

    Update an existing message in a channel using delegated permissions

  • Delete Channel Message

    Soft-delete a message in a channel

Message Replys

  • Send Message Reply

    Send a reply to a specific message in a channel. Only the body property is mandatory.

  • Get Message Reply

    Retrieve a specific reply to a message in a channel

Chat Messages

  • Send Chat Message

    Send a new message to a specific chat. Only the body property is mandatory.

  • List Chat Messages

    Retrieve all messages in a specific chat. Supports $top (max 50), $orderby (lastModifiedDateTime or createdDateTime in descending order), and $filter query parameters.

  • Get Chat Message

    Retrieve a specific message in a chat by its ID

  • Delete Chat Message

    Soft-delete a message in a chat

Chats

  • Create Chat

    Create a new chat with specified members. Supports one-on-one and group chats. Only one one-on-one chat can exist between two members.

  • List Chats

    Retrieve all chats that the authenticated user is a participant in. Supports $expand, $top, $filter, and $orderby query parameters.

  • Get Chat

    Retrieve the properties and relationships of a specific chat

  • Update Chat

    Update the properties of a chat object. This can only be used to set the topic for a chat with a chatType value of group. Maximum length is 250 characters. Use of ':' is not allowed.

  • Delete Chat

    Delete a chat object. This operation is permanent and cannot be undone.

Chat Members

  • Add Chat Member

    Add a conversationMember to a chat

  • List Chat Members

    Retrieve all members in a specific chat. This operation does not support OData query parameters to customize the response.

  • Get Chat Member

    Retrieve a single conversationMember from a chat.

  • Remove Chat Member

    Remove a conversationMember from a chat.

Other (14)

  • Get Current User

    Retrieve the properties and relationships of the currently authenticated user

  • List All Channels

    Get the list of channels either in this team or shared with this team (incoming channels)

  • List Incoming Channels

    Get the list of incoming channels (channels shared with a team)

  • Get Primary Channel

    Get the default channel, General, of a team

  • Get Channel Files Folder

    Get the metadata for the location where the files of a channel are stored

  • List All Channel Members

    Get a list of all members in a channel, including direct and indirect members

  • List All Channel Messages

    Retrieve messages across all channels in a team, including text, audio, and video conversations

  • List Message Replies

    Retrieve all replies to a specific message in a channel. Supports $top and $expand OData query parameters.

  • Change Password

    Change the password for the authenticated user. The user must provide their current password and the new password.

  • Archive Team

    Archive a team to prevent most changes while maintaining membership

  • Unarchive Team

    Restore an archived team to active state

  • Archive Channel

    Archive a channel in a team

  • Unarchive Channel

    Restore an archived channel in a team

  • Undo Soft Delete Chat Message

    Undo soft deletion of a single chat message or a message reply in a channel or a chat

Set Up Your Microsoft Teams MCP Server in Minutes

One endpoint. Any framework. Your agent is talking to Microsoft Teams in under 10 lines of code.

MCP Clients

Agent Frameworks

Claude Desktop
{
  "mcpServers": {
    "stackone": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://api.stackone.com/mcp?x-account-id=<account_id>",
        "--header",
        "Authorization: Basic <YOUR_BASE64_TOKEN>"
      ]
    }
  }
}

More Communication MCP Servers

Discord

145+ actions

Basecamp

118+ actions

Webex

100+ actions

SendGrid

99+ actions

Braze

98+ actions

Mailgun

81+ actions

JustCall

73+ actions

Microsoft Teams MCP Server FAQ

Microsoft Teams MCP server vs direct API integration — what's the difference?
A Microsoft Teams MCP server and direct API integration serve different use cases. Direct API integration is for software-to-software — backend code calling Microsoft Teams. A Microsoft Teams MCP server is for AI agents — MCP clients like Claude and Cursor, plus framework agents built with OpenAI, LangChain, or Vercel AI — discovering and calling Microsoft Teams at runtime. StackOne provides both.
How does Microsoft Teams authentication work for AI agents?
Microsoft Teams authentication for AI agents works through a StackOne Connect Session. Create one via the dashboard or the SDK — you get an auth link and ready-to-paste config for Claude Desktop, Cursor, and other MCP clients. Your user authenticates their own Microsoft Teams account; StackOne handles token exchange, storage, and refresh. Credentials never reach the LLM, and each user is isolated via origin_owner_id.
Are Microsoft Teams MCP tools vulnerable to prompt injection?
Yes — Microsoft Teams MCP tools can be vulnerable to indirect prompt injection. Any tool that reads user-written content — documents, messages, tickets, records, or free-text fields — is a potential vector. StackOne Defender scans every tool response before it enters the agent's context — regex patterns in ~1ms, then a MiniLM classifier in ~4ms. 88.7% accuracy, CPU-only.
What is the context bloat of a Microsoft Teams agent and how do I avoid it?
Context bloat happens when Microsoft Teams tool schemas and API responses eat your Microsoft Teams agent's memory, preventing it from reasoning effectively. A single Microsoft Teams query can return a massive JSON response, and connecting multiple tools compounds the problem. Tools Discovery and Code Mode reduce context bloat — loading only relevant tools per query and keeping raw responses out of the agent's context.
Can I limit which actions my Microsoft Teams agent can access?
Yes — you can limit which actions your Microsoft Teams agent can access directly from the StackOne dashboard. Toggle actions on or off, or restrict them to specific accounts, with no code changes to your agent. Session tokens can be scoped to exact actions so if one leaks, exposure stays contained.
Can I create custom agent actions for my Microsoft Teams MCP server?
Yes — you can create custom agent actions for your Microsoft Teams MCP server using Connector Builder. It's an integration agent your coding assistant (Claude Code, Cursor, or Copilot) can invoke to research Microsoft Teams's API, generate production-ready connector YAML, test against the live API, and validate before you ship.
When should I NOT use a Microsoft Teams MCP server?
Skip a Microsoft Teams MCP server if your integration is purely software-to-software — direct Microsoft Teams API integration is simpler when no AI agent is involved. For deterministic, compliance-critical operations (financial transactions, regulatory reporting), direct API gives you predictable behavior without agent-driven decision-making. MCP shines when AI agents need to dynamically discover and call Microsoft Teams actions at runtime.
What AI frameworks and AI clients does the StackOne Microsoft Teams MCP server support?
The StackOne Microsoft Teams MCP server supports both. MCP clients (paste-and-go apps): Claude Desktop, Claude Code, Cursor, VS Code, Goose. Agent frameworks (code SDKs you build with): OpenAI Agents SDK, Anthropic, Vercel AI, Google ADK, CrewAI, Pydantic AI, LangChain, LangGraph, Azure AI Foundry.

Put your AI agents to work

All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.