Connect your AI Agents to Microsoft Teams in minutes

Merge lets you securely connect your agents to Microsoft Teams and thousands of tools instantly

Available tools

reply_to_message

Reply to a specific message in a Teams channel to create threaded conversations.

get_message_replies

Retrieve all replies to a specific message to follow threaded conversations. Useful for understanding discussion context and reading complete conversation threads.

check_channel_type

Check if a channel is private or standard. Returns channel permissions and member management availability.

list_private_channels

List only the private channels in a team.

list_channels

List all channels in a Microsoft Team.

create_channel

Create a new channel within a Team for focused discussions.

get_channel_info

Get detailed information about a Teams channel including description, settings, and metadata. Useful for understanding channel purpose and permissions.

update_channel

Update channel settings such as name, description, or moderation settings.

delete_channel

Permanently delete a channel from a Team. Exercise caution - this removes all channel messages and files. Typically used for cleanup or reorganization.

list_team_files

List all files stored in a Team's SharePoint drive.

delete_team_file

Remove files from a Team's drive to clean up outdated content, free up storage, or remove sensitive information. Exercise caution as this permanently deletes files.

create_meeting

Create a new Teams meeting with attendees and schedule it in calendars. Includes automatic Teams integration for online meetings.

list_meetings

List upcoming meetings and calendar events for the current user.

get_meeting_details

Get detailed information about a specific meeting including attendees, Teams link, and agenda.

update_meeting

Update an existing meeting's details such as time, attendees, or description.

cancel_meeting

Cancel a scheduled meeting and notify all attendees. Use this to remove meetings that are no longer needed or when circumstances change.

get_free_busy_schedule

Check availability and free/busy times for users to find meeting time slots.

list_team_members

List all members of a Microsoft Team with their roles and status.

add_team_member

Add a new member to a Microsoft Team with specified roles and permissions.

get_team_member

Get detailed information about a specific team member including their role, permissions, and profile.

update_team_member

Update a team member's role or permissions within the team.

remove_team_member

Remove a member from a Microsoft Team to revoke their access to team resources.

list_channel_messages

Retrieve message history from a Teams channel. Includes _is_from_me flag to distinguish your messages from others. Date filtering: created_before and created_after both use client-side filtering (API doesn't support date filters). If neither is supplied, results are bounded to the last 30 days (surfaced as a warning) — pass created_after explicitly to widen. Use when you know the specific team/channel. Faster than list_all_my_messages for single-channel queries.

send_channel_message

Send a message to a Teams channel. Requires team_id and channel_id. Use get_team_primary_channel to get the General channel, or list_channels to find other channels.

get_channel_message

Get detailed information about a specific message including sender, timestamp, and full content. Includes _is_from_me flag to distinguish your messages. Useful for referencing or analyzing particular communications.

update_channel_message

Edit or update a previously sent message in a Teams channel.

search_teams

Search for Teams by name or description to quickly find relevant workspaces. Supports discovering teams to join and finding specific collaboration spaces.

get_team_primary_channel

Get information about a Team's default 'General' channel where main discussions occur. Essential for accessing the primary communication hub of any team.

list_channel_members

List all members with access to a specific channel, especially useful for private channels. Supports managing channel access and understanding membership. Includes cross-tenant support for shared channels.

add_channel_member

Add a user to a private channel for selective access control. Note: This operation is only supported for private channels. For standard channels, use 'add_team_member' as standard channels automatically include all team members.

remove_channel_member

Remove a user from a private channel while maintaining their team membership. Note: This operation is only supported for private channels. For standard channels, use 'remove_team_member' as standard channels cannot have selective membership.

list_teams

List all Microsoft Teams that the user is a member of. Returns all teams - no filtering options available due to API limitations.

create_team

Create a new Microsoft Team for collaboration. Use to set up project workspaces and organize team communication.

get_team_info

Get detailed information about a specific Microsoft Team including settings, member count, and metadata. Useful for understanding team structure and permissions.

update_team

Update team properties and settings including display name, description, member permissions, guest settings, messaging options, and fun features.

delete_team

Permanently delete a Microsoft Team. Exercise caution - this removes all team data, channels, and files. Typically used for cleanup or decommissioning projects.

list_meeting_transcripts

List available transcripts for a meeting with metadata (IDs, timestamps, URLs). Accepts event or meeting ID.

get_transcript_content

Get transcript content in VTT format with speaker names and timestamps. Accepts event or meeting ID.

search_users

Search for users in the organization by name, email, or display name. Use to find people to add to teams, start chats with, or @mention in messages. Accepts simple queries like 'Max' or advanced syntax like '"displayName:Max"'. Input: {"query": "search_term", "top": number_of_results}.

get_user_presence

Get a user's presence status (available, busy, away, offline).

send_chat_message

Send a direct private message to a user outside of channels. Returns shareable webUrl link to the sent message. Requires user_id (get from search_users). Creates new DM thread if none exists with that user.

add_message_reaction

Add an emoji reaction to a message in a Teams channel.

search_messages

Search for messages across teams and channels using keywords. Returns full message content with _is_from_me flag to distinguish your messages from others. Uses hybrid approach for immediate results and indexed search. FAST for keyword searches. Use this instead of list_all_my_messages when searching by text content. Note: newly sent messages may take minutes to appear in indexed search.

get_user_info

Get detailed information about a specific user including profile, contact info, and organizational details. Requires a valid user ID (GUID format) or email address - use search_users to find valid user IDs first.

check_user_availability

Check if a user is likely available by looking at their recent activity and profile information. Alternative to presence when direct presence permissions are not available.

list_direct_chats

List all direct chats and group chats the user is part of. Includes unread message detection via chatViewpoint. FAST: Use this for counting contacts, finding who you messaged, or checking unread status. For message content use read_direct_chat_messages.

read_direct_chat_messages

Read messages from a specific direct chat or group chat. Returns conversation history with timestamps, senders, and content. Includes _is_from_me flag and webUrl links. Date filtering: created_before (API filter) and created_after (client-side). If neither is supplied, results are bounded to the last 30 days (surfaced as a warning) — pass created_after explicitly to widen. Use list_direct_chats first to get chat IDs.

list_all_my_messages

Get messages from Teams channels and DMs. Use my_messages_only=True for personal message search (prioritizes DMs), or team_ids for team-specific searches. Date filtering reduces execution time.

validate_credential

Validate Microsoft Teams credentials. Verifies credentials during setup.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Microsoft Teams  MCP server

FAQs on using Merge's Microsoft Teams  MCP server

How can I use the Microsoft Teams MCP server?

Here are just a few potential use cases you can implement:

  • Notifications: Your agent can send real-time alerts to specific Teams channels when critical events occur, like high-priority tickets being created
  • Cross-platform collaboration: Your agent can post project updates to Teams channels by pulling data from tools like Jira or Asana
  • Meeting coordination: Your agent can schedule and create Teams meetings automatically when certain conditions are met, such as when an enterprise opportunity gets created
  • File sharing: Your agent can retrieve and share files from Teams channels with other systems, or upload reports and documents to relevant Teams folders
  • Scheduling: Your agent can check team members' availability statuses in Teams before scheduling meetings
  • Channel management: Your agent can create a new Teams channel automatically when an enterprise customer’s health scores drop below a predefined threshold 

What are popular tools for Microsoft Teams’ MCP server?

Here are just a few popular tools across different areas:

Channels:

  • <code class="blog_inline-code">create_ channel</code>
  • <code class="blog_inline-code">update_channel</code>
  • <code class="blog_inline-code">get_channel_info</code>
  • <code class="blog_inline-code">check_channel_type</code>

Meetings:

  • <code class="blog_inline-code">get_free_busy_schedule</code>
  • <code class="blog_inline-code">list_meetings</code>
  • <code class="blog_inline-code">cancel_meting</code>

Team members:

  • <code class="blog_inline-code">get_team_member</code>
  • <code class="blog_inline-code">add_team_member</code>
  • <code class="blog_inline-code">list_team_member</code>
  • <code class="blog_inline-code">remove_team_member</code>

Can I set custom security rules for Microsoft Teams tool calls in Merge Agent Handler?

You can apply seemingly endless rules that align with your security policies and that of your customers. Here are just a few:

  • Credit card numbers: Block any messages that contain credit card numbers in the message content
  • Social security numbers: Prevent messages that contain social security numbers
  • Email addresses: Redact email addresses when the agent retrieves or searches channel messages. It should only see masked versions (e.g., j*@merge.dev)
  • Phone numbers: Automatically redact phone numbers from Teams message content when agents retrieve channel conversations or chat histories
  • API keys and tokens: Block agents from posting authentication credentials or access tokens in Teams channels or direct messages
  • Internal project codes: Mask sensitive project identifiers when agents read messages from specific Teams channels to prevent cross-team information leakage

What makes Merge Agent Handler’s Microsoft Teams MCP server better than alternative Teams MCP servers?

Merge provides security, reliability, and operational capabilities that Microsoft Teams MCP servers typically don’t offer. This includes:

Enterprise-grade authentication management

Merge performs credential validation, user-specific or shared authentication, and guided login flows through Merge Link. This eliminates the need for developers to write auth flows manually.

Security gateway and DLP protections

All tool inputs and responses are scanned for sensitive data. And administrators can block, redact, or mask data based on configurable rules, and get alerted when these rules are violated.

Connector Studio for customization

You can add, modify, or extend tools and connectors while preserving production-ready quality through Merge’s validation workflows.

Real-time observability and full audit logs

Merge provides searchable logs, audit trails, API request traces, and agent-level action monitoring, all of which are crucial for enterprise Teams deployments.

How can I add tools to Merge Agent Handler’s Microsoft Teams MCP server?

Here’s a brief breakdown of the steps you can take:

1. Open Connector Studio in the Agent Handler dashboard, and add the Microsoft Teams connector.

2. Add or modify tools within the Microsoft Teams connector. This includes defining API requests for Teams-specific actions, configuring input/output schemas for each tool, and providing optimized tool descriptions

3. Assign an authentication model (individual or shared). Individual authentication lets each user authenticate with their own Microsoft Teams credentials, while shared authentication enables organization-level access using shared credentials.

4. Add the Microsoft Teams connector to a Tool Pack, then regenerate the Tool Pack ID to include your Microsoft Teams tools.

5. Associate the Tool Pack with your agent using the MCP entry URL.

Explore other MCP servers built and managed by Merge

zohocrm
Zoho CRM
zohodesk
Zoho Desk
zoom
Zoom
zoominfo
ZoomInfo

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now