Microsoft Teams MCP Server
for AI Agents
Connect your AI agent to StackOne's Microsoft Teams MCP server and give it 75 MCP tools out of the box. Auth, tool execution, and security all managed.
Coverage
75 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 75 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, observability, and agent execution runtime. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
All Microsoft Teams MCP Tools
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.
Subscriptions
- Create Subscription
Create a Microsoft Graph webhook subscription
- List Subscriptions
List all active Graph webhook subscriptions
- Get Subscription
Get a subscription by ID
- Update Subscription
Renew a subscription by updating its expiration date
- Delete Subscription
Delete a subscription by ID
Bot Get Conversation Members
- Bot Get Conversation Members
Gets all members of a conversation
- Bot Get Conversation Member
Gets details about a specific member of a conversation
Other (20)
- 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
- Bot Create Conversation
Creates a new conversation between the bot and one or more users
- Bot Send To Conversation
Sends an activity (message) to a conversation as a bot
- Bot Reply To Activity
Sends a reply to a specific activity in a conversation
- Bot Update Activity
Updates an existing activity in a conversation
- Bot Delete Activity
Deletes an existing activity from a conversation
- Bot Get Conversation Paged Members
Gets members of a conversation
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.
Agent Frameworks
{
"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>"
]
}
}
}Platform Resources
MCP Code Mode: Keeping Tool Responses Out of Agent Context
Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Comparing BM25, TF-IDF, and Hybrid Search for MCP Tool Discovery
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
Indirect Prompt Injection Defense for MCP Tools: A Technical Guide
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
MCP vs A2A: Architecture, Security, and When to Use Each
MCP vs A2A: what each protocol standardizes, how they differ, their shared security risks including indirect prompt injection, and when to use one, both, or a hybrid architecture.
12 min
MCP vs API: What 200+ Connector Builds Taught Us
MCP wraps APIs, it doesn't replace them. After building 200+ connectors that serve both, here's when each approach wins.
14 min read
Microsoft Teams MCP Server FAQ
Does StackOne have a Microsoft Teams MCP server?
Microsoft Teams MCP server vs direct API integration — what's the difference?
How does Microsoft Teams authentication work for AI agents?
origin_owner_id.Are Microsoft Teams MCP tools vulnerable to prompt injection?
What is the context bloat of a Microsoft Teams agent and how do I avoid it?
Can I limit which actions my Microsoft Teams agent can access?
Can I create custom agent actions for my Microsoft Teams MCP server?
When should I NOT use a Microsoft Teams MCP server?
What AI frameworks and AI clients does the StackOne Microsoft Teams MCP server support?
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.