MCP Directory

Microsoft Teams MCP Server (Inditex)

Read, post and reply to Teams channel messages and mention members via Azure bot

Verified
stdio (local)
API key
Python

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
docker run -i --rm --env-file .env ghcr.io/inditextech/mcp-teams-server:latest

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "microsoft-teams-mcp-server-inditex": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "TEAMS_APP_ID",
        "-e",
        "TEAMS_APP_PASSWORD",
        "-e",
        "TEAMS_APP_TYPE",
        "-e",
        "TEAMS_APP_TENANT_ID",
        "-e",
        "TEAM_ID",
        "-e",
        "TEAMS_CHANNEL_ID",
        "ghcr.io/inditextech/mcp-teams-server:latest"
      ],
      "env": {
        "TEAM_ID": "<your-teams-team-id>",
        "TEAMS_APP_ID": "<your-azure-app-id>",
        "TEAMS_APP_TYPE": "SingleTenant",
        "TEAMS_CHANNEL_ID": "<your-teams-channel-id>",
        "TEAMS_APP_PASSWORD": "<your-azure-app-password>",
        "TEAMS_APP_TENANT_ID": "<your-azure-tenant-id>"
      }
    }
  }
}

Requires Docker to be installed and running.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • Python 3.10+ and the uv package manager (or Docker, via ghcr.io/inditextech/mcp-teams-server)
  • A Microsoft Teams account with permission to add bots/apps to a team
  • An Azure subscription to create an MS Entra ID (Azure AD) app registration and an Azure Bot resource
  • The app's client ID and client secret (TEAMS_APP_ID / TEAMS_APP_PASSWORD), plus tenant type and tenant ID
  • The target Team (group) ID and channel ID to scope the bot to (TEAM_ID / TEAMS_CHANNEL_ID)

About Microsoft Teams MCP Server (Inditex)

An MCP server (built and open-sourced by Inditex's engineering org) that lets AI agents interact with a Microsoft Teams channel through an Azure Bot Service registration. It can read channel messages and thread replies, start new threads, reply to existing threads, list team members, and @-mention people — turning an assistant into a participant in a Teams channel.

The server is written in Python and talks to Teams via the Bot Framework / Microsoft Graph using an MS Entra ID (Azure AD) app registration. Because it authenticates as a registered bot rather than a user, it is scoped to a single team and channel configured via environment variables, which keeps its blast radius small.

Note: this is not a Microsoft-published server. It is a community project from InditexTech, distributed under Apache-2.0. Setup requires real Azure work (registering an Entra app, creating an Azure Bot resource, and adding the bot to your team), documented in the repo's MS-Teams-setup.md.

Tools & capabilities (6)

start_thread

Start a new thread in the configured channel with a title and body, optionally @-mentioning members

update_thread

Reply to / update an existing thread with a new message, optionally mentioning members

read_thread

Read the replies of a specific thread to fetch conversation context

list_threads

List the message threads in the configured channel

list_members

List the members of the team the channel belongs to

get_member_by_name

Look up a team member by name so they can be mentioned

When to use it

  • Use it when you want an agent to post status updates or summaries into a specific Teams channel
  • Use it when an assistant should reply within an existing Teams thread to keep discussion threaded
  • Use it when you need to @-mention the right person by resolving their name to a member
  • Use it when an agent must read recent channel messages or a thread before acting on it
  • Use it when building Teams-based notification or ChatOps automation that runs as a bot rather than a user

Quick setup

  1. 1Register an MS Entra ID application in Azure and create a client secret
  2. 2Create an Azure Bot resource tied to that app and add the bot/app to your target team (see MS-Teams-setup.md)
  3. 3Collect TEAMS_APP_ID, TEAMS_APP_PASSWORD, TEAMS_APP_TYPE, TEAMS_APP_TENANT_ID, TEAM_ID and TEAMS_CHANNEL_ID
  4. 4Run the server with uv (uv run mcp-teams-server) or the prebuilt Docker image, passing those env vars
  5. 5Add the stdio command to your MCP client config and restart the client
  6. 6Verify by calling list_members or reading channel messages

Security notes

Requires an Azure Bot app registration with a client secret that can read and post in Teams channels; store TEAMS_APP_PASSWORD as a secret and scope the bot to only the intended team/channel. Pin to a versioned image tag rather than latest for reproducible, reviewed deployments.

Microsoft Teams MCP Server (Inditex) FAQ

Is this an official Microsoft server?

No. It is an open-source project from InditexTech (Inditex's tech org), licensed under Apache-2.0. It uses Microsoft's Bot Framework and Graph APIs but is not published by Microsoft.

What authentication does it use?

It authenticates as an Azure Bot via an MS Entra ID app registration — you supply the app's client ID and secret. There is no per-user OAuth flow; the bot acts within the team it has been added to.

Can it post to any channel?

No. It is scoped to a single team and channel set via TEAM_ID and TEAMS_CHANNEL_ID. To target a different channel you change those environment variables.

Why is the Azure setup so involved?

Microsoft Teams requires a registered bot identity to read and post messages. The repo's MS-Teams-setup.md walks through registering the Entra app, creating the Azure Bot resource, and installing it into the team.

How do I run it without installing Python?

Use the prebuilt container image ghcr.io/inditextech/mcp-teams-server:latest and pass the required environment variables.

Alternatives to Microsoft Teams MCP Server (Inditex)

Compare all alternatives →

Connect your personal WhatsApp: search, read and send messages and media locally

Verified
stdio (local)
No auth
Python
12 tools
Updated 28 days agoRepo

Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth

Verified
stdio (local)
API key
Go
12 tools
Updated 1 month agoRepo

Full Telegram user-account MCP via MTProto: read chats, manage groups, send messages

Verified
stdio (local)
API key
Python
11 tools
Updated 9 days agoRepo