teams-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@teams-mcpsend 'Good morning' to team chat via Power Automate"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Teams MCP Server (Secure)
A secure Microsoft Teams MCP server using only official Microsoft packages.
Security
This server uses exclusively official Microsoft packages:
Package | Source | Purpose |
| Authentication | |
| Graph API calls | |
| MCP protocol |
No third-party authentication or API wrappers.
Related MCP server: teams-mcp
Prerequisites
Node.js 18+
Azure CLI (
az login) - required for authentication
Installation
npm install
npm run buildAuthentication
The server uses Azure CLI credentials (az login). For enterprise tenants with Conditional Access policies blocking Graph API Chat permissions, use the Power Automate integration instead.
Power Automate Integration (Recommended for Enterprise)
If your organization blocks direct Graph API access to Teams chats, you can use Power Automate as a bridge:
One-time Setup
Go to Power Automate
Create a new Instant cloud flow
Add trigger: "When an HTTP request is received"
Click "Use sample payload" and enter:
{"message": "Hello"}Add action: "Post message in a chat or channel" (Microsoft Teams)
Configure the Teams action with your target chat/channel
For Message, select message from Dynamic content
Save and turn on the flow
Copy the HTTP POST URL from the trigger
Usage
# Set your Power Automate flow URL
export POWER_AUTOMATE_URL="https://....powerplatform.com/.../invoke?api-version=1"
# Post a message (uses Azure AD auth automatically)
curl -X POST "$POWER_AUTOMATE_URL" \
-H "Authorization: Bearer $(az account get-access-token --resource https://service.flow.microsoft.com/ --query accessToken -o tsv)" \
-H "Content-Type: application/json" \
-d '{"message": "Hello from MCP!"}'Usage
Add to your MCP config
VS Code (.vscode/mcp.json):
{
"servers": {
"teams": {
"type": "stdio",
"command": "node",
"args": ["C:/teams-mcp/dist/index.js"]
}
}
}Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"teams": {
"command": "node",
"args": ["C:/teams-mcp/dist/index.js"]
}
}
}Available Tools
Tool | Description |
| Get authenticated user info |
| List user's Teams chats |
| List joined Teams |
| List channels in a Team |
| Send message to a chat (requires Graph permissions) |
| Send message to a channel (requires Graph permissions) |
| Get messages from a chat |
| Get messages from a channel |
| Send message via Power Automate (bypasses Graph restrictions) |
Examples
Send a message via Power Automate (Recommended)
{
"tool": "send_via_power_automate",
"arguments": {
"flowUrl": "https://....powerplatform.com/.../invoke?api-version=1",
"message": "Hello from MCP!"
}
}Send a message to a chat (requires Graph permissions)
{
"tool": "send_chat_message",
"arguments": {
"chatId": "19:abc123@thread.v2",
"message": "Hello from MCP!"
}
}License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/imatiach-msft/teams-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server