CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Microsoft 365 Teams

mindstone/mcp-servers
30 toolsauthSTDIOregistry active
Summary

Connects to Microsoft Teams through the Graph API, letting Claude list your chats, read and send messages, browse teams and channels, and check presence status. Built by Mindstone as part of a 35-connector suite, this server shares host-orchestrated OAuth with their other Microsoft 365 connectors (Outlook mail, calendar, OneDrive files, SharePoint). Useful when you need an LLM to search chat history, send updates to team channels, or coordinate notifications based on availability. Ships with stdio transport and follows the same hardened supply-chain practices as the rest of the monorepo, including pinned dependencies, seven-day release cool-down, and provenance attestation on npm.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

30 tools
MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAMTool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.3 params

Tool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.

Parameters* required
rolesarray
Roles to assign to the member. Only 'owner' is supported. Omit or leave empty to add as a standard member.
team_idstring
The unique ID (GUID) of the Microsoft Team to which the member will be added.
user_idstring
The user's Graph ID (GUID) or userPrincipalName (email) to add to the team.
MICROSOFT_TEAMS_ARCHIVE_TEAMTool to archive a Microsoft Teams team. Use after confirming the team ID; returns 202 if accepted.2 params

Tool to archive a Microsoft Teams team. Use after confirming the team ID; returns 202 if accepted.

Parameters* required
team_idstring
The Microsoft Teams team GUID to archive.
should_set_spo_site_read_only_for_membersboolean
If true, sets the SharePoint site to read-only for team members when archiving.default: false
MICROSOFT_TEAMS_CHATS_GET_ALL_CHATSRetrieves all Microsoft Teams chats a specified user is part of, supporting filtering, property selection, and pagination.4 params

Retrieves all Microsoft Teams chats a specified user is part of, supporting filtering, property selection, and pagination.

Parameters* required
topinteger
The maximum number of chats to retrieve in a single API call, used for pagination. Default is 50. Microsoft Graph enforces a maximum limit of 50 per request.default: 50
filterstring
An OData filter query string to apply to the chat list (e.g., "topic eq 'Project Updates'"). Do not include '$filter=' in the string. This enables retrieving chats that match specific criteria.default:
selectarray
A list of specific Microsoft Graph chat resource properties to retrieve (e.g., 'id', 'topic'). If omitted or empty, a default set of properties is returned. Each string in the list should be a valid property name.
user_idstring
The ID or user principal name (UPN) of the user whose chats are to be retrieved. Use 'me' to specify the currently authenticated user.default: me
MICROSOFT_TEAMS_CHATS_GET_ALL_MESSAGESRetrieves all messages from a specified Microsoft Teams chat using the Microsoft Graph API, automatically handling pagination; ensure `chat_id` is valid and OData expressions in `filter` or `select` are correct.3 params

Retrieves all messages from a specified Microsoft Teams chat using the Microsoft Graph API, automatically handling pagination; ensure `chat_id` is valid and OData expressions in `filter` or `select` are correct.

Parameters* required
topinteger
Maximum number of messages to retrieve per page. Used for pagination. Microsoft Graph enforces a maximum limit of 50 per request.default: 50
filterstring
OData v4.0 filter query string for messages. If empty, no filtering is applied.default:
chat_idstring
Unique identifier of the Microsoft Teams chat.
MICROSOFT_TEAMS_CREATE_MEETINGUse to schedule a new standalone Microsoft Teams online meeting, i.e., one not linked to any calendar event.5 params

Use to schedule a new standalone Microsoft Teams online meeting, i.e., one not linked to any calendar event.

Parameters* required
subjectstring
The subject or title for the online meeting.
participantsarray
An optional list of participants to invite to the meeting. Each participant is defined by their user ID and role.
end_date_timestring
The end date and time of the meeting, specified in ISO 8601 format (e.g., '2024-08-15T11:00:00Z'). Must be after start_date_time.
start_date_timestring
The start date and time of the meeting, specified in ISO 8601 format (e.g., '2024-08-15T10:00:00Z').
is_passcode_requiredboolean
An optional boolean indicating whether a passcode should be required to join this meeting. If not specified, the organization's default policy applies.
MICROSOFT_TEAMS_CREATE_TEAMTool to create a new Microsoft Teams team. Use when you need to provision a team with optional template, channels, and members.6 params

Tool to create a new Microsoft Teams team. Use when you need to provision a team with optional template, channels, and members.

Parameters* required
membersarray
List of initial team members. At least one member with 'owner' role is recommended. If not provided, the authenticated user will be added as owner. Each member must specify '@odata.type', roles, and 'user@odata.bind'.
visibilitystring
Team visibility setting. 'private': Only owners can add members. 'public': Anyone in the organization can join. Default is 'public'.one of private · publicdefault: public
descriptionstring
Brief description of the team's purpose. Maximum 1024 characters. Note: Known template IDs for team creation: 'standard' (default), 'educationClass', 'educationStaff', 'educationProfessionalLearningCommunity'.
displayNamestring
Display name of the team as it will appear in Microsoft Teams. Must be unique within the organization.
firstChannelNamestring
Name of the first channel created; defaults to 'General' if omitted.
template_odata_bindstring
URL reference to the team template. Common templates: 'standard' (default), 'educationClass', 'educationStaff', 'educationProfessionalLearningCommunity'. Format: https://graph.microsoft.com/v1.0/teamsTemplates('template-id')default: https://graph.microsoft.com/v1.0/teamsTemplates('standard')
MICROSOFT_TEAMS_DELETE_TEAMTool to delete a Microsoft Teams team. Use after confirming the target team ID.1 params

Tool to delete a Microsoft Teams team. Use after confirming the target team ID.

Parameters* required
team_idstring
The unique identifier (GUID) of the Microsoft Teams team to delete.
MICROSOFT_TEAMS_GET_CHANNELTool to get a specific channel in a team. Use after obtaining valid team and channel IDs to fetch channel details.2 params

Tool to get a specific channel in a team. Use after obtaining valid team and channel IDs to fetch channel details.

Parameters* required
team_idstring
The unique identifier of the Microsoft Teams team.
channel_idstring
The unique identifier of the channel within the specified team.
MICROSOFT_TEAMS_GET_CHAT_MESSAGETool to get a specific chat message. Use after confirming chat_id and message_id.2 params

Tool to get a specific chat message. Use after confirming chat_id and message_id.

Parameters* required
chat_idstring
Unique identifier of the Microsoft Teams chat that contains the message.
message_idstring
Unique identifier of the chat message to retrieve.
MICROSOFT_TEAMS_GET_TEAMTool to get a specific team. Use when full details of one team by ID are needed.1 params

Tool to get a specific team. Use when full details of one team by ID are needed.

Parameters* required
team_idstring
GUID of the Microsoft Teams team to retrieve.
MICROSOFT_TEAMS_LIST_MESSAGE_REPLIESTool to list replies to a channel message. Use after obtaining team, channel, and message IDs.4 params

Tool to list replies to a channel message. Use after obtaining team, channel, and message IDs.

Parameters* required
topinteger
Maximum number of replies to return per page (1-50).default: 50
team_idstring
Unique identifier (GUID) of the Microsoft Teams team.
channel_idstring
Unique identifier of the channel within the team.
message_idstring
Unique identifier of the channel message whose replies are to be listed.
MICROSOFT_TEAMS_LIST_TEAM_MEMBERSTool to list members of a Microsoft Teams team. Use when you need to retrieve the members of a specific team, for auditing or notifications.2 params

Tool to list members of a Microsoft Teams team. Use when you need to retrieve the members of a specific team, for auditing or notifications.

Parameters* required
topinteger
Optional maximum number of members to return (1–999).
team_idstring
GUID of the Microsoft Teams team to retrieve members from.
MICROSOFT_TEAMS_LIST_TEAMS_TEMPLATESTool to list available Microsoft Teams templates. Use when retrieving templates for team creation or customization workflows.6 params

Tool to list available Microsoft Teams templates. Use when retrieving templates for team creation or customization workflows.

Parameters* required
topinteger
Maximum number of templates to return (1–999).
skipinteger
Number of templates to skip for pagination.
countboolean
If true, include a count of total matching templates in the response.default: false
filterstring
OData filter expression to filter the templates (e.g., "startsWith(displayName,'Template')").default:
selectstring
Comma-separated template properties to include in the response (e.g., 'id,displayName,description'). If empty, default properties are returned.default:
orderbystring
Comma-separated properties and directions to order the results by (e.g., 'displayName desc').default:
MICROSOFT_TEAMS_LIST_USERSTool to list all users in the organization. Use when you need to retrieve directory users with filtering, pagination, and field selection.7 params

Tool to list all users in the organization. Use when you need to retrieve directory users with filtering, pagination, and field selection.

Parameters* required
$topinteger
Maximum number of users to return per page (1-999).
$skipinteger
Number of users to skip for pagination.
$expandstring
OData expand related entities (e.g., `manager`).
$filterstring
OData filter to refine results by property values (e.g., `startswith(displayName,'A')`).
$selectstring
Comma-separated list of user properties to include (e.g., `id,displayName,mail`).
$orderbystring
OData orderby clause to sort results (e.g., `displayName desc`).
consistencyLevelstring
Set to 'eventual' when using advanced queries with $count.
MICROSOFT_TEAMS_SEARCH_FILESSearch files in Microsoft Teams using KQL syntax. Find files by name, type, content, author, and modification date across all Teams and channels. Supports boolean logic and date ranges. Examples: 'filetype:pdf AND lastmodifiedtime>=2024-10-01', 'contract AND budget', 'filename...4 params

Search files in Microsoft Teams using KQL syntax. Find files by name, type, content, author, and modification date across all Teams and channels. Supports boolean logic and date ranges. Examples: 'filetype:pdf AND lastmodifiedtime>=2024-10-01', 'contract AND budget', 'filename...

Parameters* required
sizeinteger
The maximum number of file results to return per page. Use with from_index for pagination.default: 25
querystring
Search query for files in Teams. Supports keywords, filenames, and content search. **Basic Syntax:** - Keywords: 'budget contract' - Exact phrases: '"project timeline"' - Filenames: 'report.pdf' or 'filename:contract' - File types: 'filetype:pdf' or 'filetype:docx' - Boolean: 'contract AND budget' or 'report OR summary' **Property Filters:** - filename: File name - 'filename:contract' - filetype: File extension - 'filetype:pdf', 'filetype:docx', 'filetype:xlsx' - author: Creator - 'author:user@example.com' - lastmodifiedtime: Modified date - 'lastmodifiedtime>=2024-10-01' **Date Filters:** - Exact: 'lastmodifiedtime:2024-10-01' - Greater/equal: 'lastmodifiedtime>=2024-10-01' - Range: 'lastmodifiedtime:2024-10-01..2024-10-31' - Relative: 'lastmodifiedtime>today-30' **Complex Queries:** - 'contract AND filetype:pdf AND lastmodifiedtime>=2024-10-01' - '(budget OR financial) AND filetype:xlsx' - 'filename:report AND lastmodifiedtime>today-7'
from_indexinteger
The 0-based starting index for pagination. To paginate: check response['value'][0]['hitsContainers'][0]['moreResultsAvailable']. If true, call again with from_index += size (e.g., 0 → 25 → 50).default: 0
enable_top_resultsboolean
If `true`, sorts results by relevance; otherwise, sorts by date modified in descending order (newest first).default: false
MICROSOFT_TEAMS_SEARCH_MESSAGESSearch Microsoft Teams messages using powerful KQL syntax. Supports sender (from:), date filters (sent:), attachments, and boolean logic. Works across all Teams chats and channels the user has access to. Examples: 'from:user@example.com AND sent>=2024-10-01', 'punchlist OR ter...4 params

Search Microsoft Teams messages using powerful KQL syntax. Supports sender (from:), date filters (sent:), attachments, and boolean logic. Works across all Teams chats and channels the user has access to. Examples: 'from:user@example.com AND sent>=2024-10-01', 'punchlist OR ter...

Parameters* required
sizeinteger
The maximum number of search results to return per page. Use with from_index for pagination.default: 25
querystring
KQL (Keyword Query Language) search query string. Supports advanced syntax for precise searches. **Basic Syntax:** - Simple keywords: 'budget report' - Exact phrases: '"quarterly review"' - Boolean operators: 'urgent AND deadline' or 'invoice OR receipt' **Property Filters (prefix:value):** - from: Sender - 'from:user@example.com' or 'from:example.com' - sent: Date sent - 'sent:2024-10-01' or 'sent>=2024-10-01' - hasattachment: Has files - 'hasattachment:yes' or 'hasattachment:no' **Date Operators:** - Exact: 'sent:2024-10-01' - Greater/equal: 'sent>=2024-10-01' - Less/equal: 'sent<=2024-10-31' - Range: 'sent:2024-10-01..2024-10-31' - Relative: 'sent>today-7' (last 7 days) **Combining Filters:** - AND: 'from:user@example.com AND subject:budget' - OR: 'punchlist OR termination' - Complex: '(punchlist OR termination) AND sent>=2024-10-01' Note: Can be empty to return recent messages.default:
from_indexinteger
The 0-based starting index for pagination. To paginate: check response['value'][0]['hitsContainers'][0]['moreResultsAvailable']. If true, call again with from_index += size (e.g., 0 → 25 → 50). Message ID is in hits[]['hitId'], not hits[]['resource']['id'].default: 0
enable_top_resultsboolean
If `true`, sorts results by relevance; otherwise, sorts by date in descending order (newest first).default: false
MICROSOFT_TEAMS_TEAMS_CREATE_CHANNELCreates a new 'standard', 'private', or 'shared' channel within a specified Microsoft Teams team.4 params

Creates a new 'standard', 'private', or 'shared' channel within a specified Microsoft Teams team.

Parameters* required
namestring
The display name for the new channel. Maximum length is 50 characters. Cannot contain characters ~ # % & * { } + / \ : < > ? | ' " or start with an underscore or period, or end with a period.
team_idstring
The GUID of the existing Microsoft Teams team where the new channel will be created.
descriptionstring
An optional, user-friendly description of the channel's purpose. Maximum length is 1024 characters.default:
membership_typestring
Membership type determining channel accessibility: 'standard' is accessible to all team members, 'private' is only accessible to a specific subset of team members, and 'shared' can be shared with people outside the team or organization (requires appropriate policies).default: standard
MICROSOFT_TEAMS_TEAMS_CREATE_CHATCreates a new chat; if a 'oneOnOne' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created.3 params

Creates a new chat; if a 'oneOnOne' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created.

Parameters* required
topicstring
Subject or title for the chat. REQUIRED for group chats. For 'oneOnOne' chats, this field is ignored and should be omitted.
membersarray
List of members. For 'oneOnOne' chats, exactly two members are required. For 'group' chats, at least two members are required and at least one member must have the 'owner' role.
chatTypestring
Type of chat. If 'oneOnOne' for members with an existing chat, that chat's details are returned.
MICROSOFT_TEAMS_TEAMS_GET_MESSAGERetrieves a specific message from a Microsoft Teams channel using its Team, Channel, and Message IDs.3 params

Retrieves a specific message from a Microsoft Teams channel using its Team, Channel, and Message IDs.

Parameters* required
team_idstring
ID of the Team containing the channel where the message is located.
channel_idstring
ID of the Channel within the specified Team that contains the message.
message_idstring
ID of the message to retrieve from the channel.
MICROSOFT_TEAMS_TEAMS_LISTRetrieves Microsoft Teams accessible by the authenticated user, allowing filtering, property selection, and pagination.3 params

Retrieves Microsoft Teams accessible by the authenticated user, allowing filtering, property selection, and pagination.

Parameters* required
topinteger
Maximum number of teams to return per page (1-999). Used for pagination; see `next_link` in response.default: 100
filterstring
OData v4.0 filter string to refine results based on team properties (e.g., `startsWith(displayName,'A')`). Consult OData v4.0 documentation for syntax.default:
selectstring
Comma-separated team properties to retrieve (e.g., 'id,displayName,description'). If empty or omitted, standard properties are returned. Supported properties include `id`, `displayName`, `description`, `visibility`.default:
MICROSOFT_TEAMS_TEAMS_LIST_CHANNELSRetrieves channels for a specified Microsoft Teams team ID (must be valid and for an existing team), with options to include shared channels, filter results, and select properties.4 params

Retrieves channels for a specified Microsoft Teams team ID (must be valid and for an existing team), with options to include shared channels, filter results, and select properties.

Parameters* required
filterstring
OData v4 query string to filter channels (e.g., `startswith(displayName,'Sales')` or `membershipType eq 'private'`).default:
selectstring
Comma-separated channel properties to return (e.g., 'id,displayName,description'); empty for default properties. Common: `id`, `displayName`, `description`, `email`, `membershipType`, `webUrl`.default:
team_idstring
Unique identifier (ID) of the Microsoft Teams team.
include_shared_channelsboolean
If true, include channels shared with the team.default: false
MICROSOFT_TEAMS_TEAMS_LIST_CHAT_MESSAGESRetrieves messages (newest first) from an existing and accessible Microsoft Teams one-on-one chat, group chat, or channel thread, specified by `chat_id`.2 params

Retrieves messages (newest first) from an existing and accessible Microsoft Teams one-on-one chat, group chat, or channel thread, specified by `chat_id`.

Parameters* required
topinteger
Maximum number of messages to retrieve. Microsoft Graph enforces a maximum limit of 50 per request.default: 50
chat_idstring
Unique Microsoft Graph chat identifier (GUID format). This is the chat ID returned by Graph API, not a channel thread ID. Use the Get All Chats action to retrieve valid chat IDs.
MICROSOFT_TEAMS_TEAMS_LIST_PEOPLERetrieves a list of people relevant to a specified user from Microsoft Graph, noting the `search` parameter is only effective if `user_id` is 'me'.7 params

Retrieves a list of people relevant to a specified user from Microsoft Graph, noting the `search` parameter is only effective if `user_id` is 'me'.

Parameters* required
topinteger
Maximum number of items per page for pagination. Actual count may be less. Service default if unspecified.
skipinteger
Number of items to skip for pagination.
filterstring
OData $filter query to limit results (e.g., `"startsWith(displayName,'A')"`).
searchstring
Fuzzy search query (name, email, or topic like 'topic:marketing'). Effective only when `user_id` is 'me'.
selectstring
Comma-separated OData property names to include for each person (e.g., 'id,displayName'). If unspecified, a default set is returned. Note: 'emailAddresses' is not a valid property for microsoft.graph.person; use 'scoredEmailAddresses' instead.
orderbystring
OData $orderby expression to sort results (e.g., 'displayName asc, relevanceScore desc').
user_idstring
Identifier of the user (e.g., 'me', 'adelev@contoso.com', or GUID) whose relevant people are to be retrieved.default: me
MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGEPosts a new text or HTML message to a specified channel in a Microsoft Teams team.4 params

Posts a new text or HTML message to a specified channel in a Microsoft Teams team.

Parameters* required
contentstring
The content of the message to be sent. Can be plain text or HTML, determined by `content_type`.
team_idstring
The unique identifier of the Microsoft Teams team containing the channel.
channel_idstring
The unique identifier of the channel within the specified team where the message will be posted.
content_typestring
The format of the message content. Supported values: 'text' (plain text) or 'html' (HTML content). Defaults to 'text'.default: text
MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGESends a non-empty message (text or HTML) to a specified, existing Microsoft Teams chat; content must be valid HTML if `content_type` is 'html'.3 params

Sends a non-empty message (text or HTML) to a specified, existing Microsoft Teams chat; content must be valid HTML if `content_type` is 'html'.

Parameters* required
chat_idstring
Unique identifier for the Microsoft Teams chat to receive the message.
contentstring
Message content, either plain text or HTML (see `content_type`).
content_typestring
Content format: 'text' (plain) or 'html'.default: text
MICROSOFT_TEAMS_TEAMS_POST_MESSAGE_REPLYSends a reply to an existing message, identified by `message_id`, within a specific `channel_id` of a given `team_id` in Microsoft Teams.5 params

Sends a reply to an existing message, identified by `message_id`, within a specific `channel_id` of a given `team_id` in Microsoft Teams.

Parameters* required
contentstring
The body of the reply message. This can be plain text or HTML, as specified by the `content_type` field.
team_idstring
The unique identifier (GUID) of the Microsoft Teams team that contains the channel where the message to be replied to exists.
channel_idstring
The unique identifier of the channel within the specified team. This channel contains the message to which the reply will be posted. Channel IDs typically follow a format like '19:{alphanumeric_string}@thread.tacv2'.
message_idstring
The unique identifier of the specific message within the channel to which this reply is directed.
content_typestring
Specifies the format of the `content` field. Accepted values are 'text' for plain text content and 'html' for content with HTML formatting. Defaults to 'text' if not provided.default: text
MICROSOFT_TEAMS_UNARCHIVE_TEAMTool to unarchive a Microsoft Teams team. Use when you need to restore an archived team to active state.1 params

Tool to unarchive a Microsoft Teams team. Use when you need to restore an archived team to active state.

Parameters* required
team_idstring
The unique identifier (GUID) of the team to unarchive.
MICROSOFT_TEAMS_UPDATE_CHANNEL_MESSAGETool to update a message in a channel. Use when you need to modify an existing channel message after confirming channel and message IDs.5 params

Tool to update a message in a channel. Use when you need to modify an existing channel message after confirming channel and message IDs.

Parameters* required
contentstring
Updated message content, either plain text or HTML.
team_idstring
Unique identifier of the Microsoft Teams team.
channel_idstring
Unique identifier of the channel within the team.
message_idstring
Unique identifier of the channel message to update.
content_typestring
Format of the message content: 'text' or 'html'.default: text
MICROSOFT_TEAMS_UPDATE_CHAT_MESSAGETool to update a specific message in a chat. Use when you need to correct or modify a sent chat message.4 params

Tool to update a specific message in a chat. Use when you need to correct or modify a sent chat message.

Parameters* required
chat_idstring
Unique identifier of the Microsoft Teams chat.
contentstring
Updated message content, either plain text or HTML.
message_idstring
Unique identifier of the chat message to update.
content_typestring
Format of the message content: 'text' or 'html'.default: text
MICROSOFT_TEAMS_UPDATE_TEAMTool to update the properties of a team. Use when you need to modify team settings such as member, messaging, or fun settings.4 params

Tool to update the properties of a team. Use when you need to modify team settings such as member, messaging, or fun settings.

Parameters* required
team_idstring
The unique identifier (GUID) of the team to update.
funSettingsobject
Settings that control fun features in the team.
memberSettingsobject
Settings that control what members can do in the team.
messagingSettingsobject
Settings that control messaging capabilities in the team.

Rogue, the Rebel character for safe action and control

mcp-servers

OpenSSF Scorecard

Source-available MCP servers by Mindstone. Works with any MCP host — Claude Desktop, Cursor, Rebel, and others.

Browse all 35 connectors with their version, auth model, and tool count at the catalogue site (regenerated from each connector's STATUS.json on every push).

Connectors

ConnectorDescription
apple-shortcutsRun and list Apple Shortcuts on macOS via the shortcuts CLI
browser-automationHeadless browser control via accessibility snapshots — navigate, fill forms, click, and screenshot pages via the agent-browser CLI
elevenlabsGenerate speech, music, and sound effects, browse voices, and transcribe audio via the ElevenLabs API
email-imapRead, search, send, and manage emails through IMAP and SMTP
fathomList and search meetings, view details, read transcripts, and manage teams via Fathom AI
freshdeskManage helpdesk tickets, search support requests, reply to customers, and add internal notes
gammaCreate AI-powered presentations, documents, webpages, and social posts via Gamma
google-analyticsDiscover GA4 accounts and properties, explore the live schema, and run reports via the Google Analytics API
google-workspaceRead, search, and send across Gmail, Calendar, Drive, Docs, Sheets, Slides, Contacts, and Comments with host-orchestrated OAuth and per-account on-disk credentials
hubspotManage HubSpot CRM — contacts, companies, deals, tickets, leads, tasks, notes, properties, lists, workflows, knowledge base, and files — with multi-account, host-orchestrated OAuth
humaansQuery employee profiles, job roles, time-away requests, and company info via Humaans HR
klingGenerate AI videos from text descriptions or images via Kling AI
microsoft-calendarList, create, update, and respond to Outlook calendar events, check free/busy, and list calendars; reuses the cohort's host-orchestrated Microsoft 365 OAuth surface
microsoft-filesList, search, upload, download, share, and read OneDrive files via Microsoft Graph; reuses the cohort's host-orchestrated Microsoft 365 OAuth surface
microsoft-mailList, search, read, send, reply, forward, draft, move, and delete Outlook email; owns the cohort's host-orchestrated Microsoft 365 OAuth surface
microsoft-sharepointDiscover sites, browse libraries, read pages and lists, search content, and mutate SharePoint files/lists with incremental Sites.Read.All consent
microsoft-teamsList and read Teams chats, send chat messages, list teams and channels, and read presence; reuses the cohort's host-orchestrated Microsoft 365 OAuth surface
mixmaxManage sequences, send tracked emails, use templates, and monitor engagement via Mixmax
nano-bananaGenerate and edit images using Google Gemini's AI capabilities
napkinGenerate professional visuals — diagrams, infographics, and illustrations — from text via Napkin AI
officeRead and edit Word documents, Excel workbooks, and PowerPoint presentations from desktop Microsoft 365 via an Office Add-in sidecar
openai-imageGenerate and edit images via OpenAI's gpt-image-2 — sharp text rendering, multilingual support, and four quality levels
outreachManage prospects, sequences, accounts, tasks, and mailings via the Outreach sales engagement API
pandadocCreate, send, and manage documents, templates, and e-signatures via PandaDoc
quickbooksManage invoices, bills, customers, vendors, employees, and accounts in QuickBooks Online
replit-sshRead, write, list, and check files on Replit projects over SSH/SFTP, with one-shot SSH key + config setup on the operator's machine
retell-aiPlace voice-agent phone calls, manage agents and LLM prompts, and discover voices via the Retell AI API
runwayGenerate AI video, images, audio, speech, and sound effects via Runway ML
salesforceManage accounts, contacts, opportunities, leads, tasks, users, and custom objects via the Salesforce API
servicenowManage incidents, change requests, users, and knowledge base articles in ServiceNow
slackMulti-workspace Slack — channels, messages, threads, reactions, users, files, bookmarks, and scheduled messages via the Slack Web API, with host-orchestrated OAuth
talentlmsManage users, courses, groups, branches, enrolments, and assessments in TalentLMS
vantaRead and manage compliance posture in Vanta — vulnerabilities, tests, controls, evidence, resources, people, vendors, documents, and compliance summary
workdayQuery workers, profiles, and organizations in Workday HCM
zendeskManage tickets, macros, users, and views in Zendesk Support

Quick Start

Each server builds independently:

cd connectors/<name>
npm install
npm run build

Or run directly via npx (once published):

npx -y @mindstone/mcp-server-zendesk

Moving from @mindstone-engineering/? Every server has been republished under the shorter @mindstone/ npm scope. The legacy @mindstone-engineering/mcp-server-* packages still install but are marked deprecated. See MIGRATION.md for the consumer one-liner and the deprecation timeline.

See each server's README for configuration and host setup instructions. Some connectors require additional environment variables to opt into specific behaviour (e.g. QB_ALLOW_PROD_WRITES for QuickBooks production writes, MCP_WORKSPACE_PATH for sandboxed file reads, BROWSER_AUTOMATION_ALLOW_EVAL for browser-automation script eval) — see the per-connector READMEs for the full list.

Security & Hardening

This monorepo follows a defence-in-depth posture for tool-call hosts. Highlights include:

  • Workflow safety. GitHub Actions workflows are env-fy'd against script injection (CWE-94), every action is pinned to a commit SHA (kept current by Dependabot), and each job is granted a least-privilege permissions: block. Publish is split into a build job (does the install/test/pack with no publish credentials) and a publish job (downloads the packed tarball, runs only npm publish --ignore-scripts --provenance under OIDC trusted publishing, gated by the npm-publish environment). The publish job invokes NO third-party JS — tsc, vitest, lifecycle scripts, etc. all run upstream, away from id-token: write. See docs/security/AUDIT_FOX-3319_tanstack_supply_chain.md for the supply-chain threat model and docs/security/BRANCH_PROTECTION.md for required GitHub settings.
  • Release-age cool-down. The repo-level .npmrc sets min-release-age=7 (days), so CI refuses to install dependency versions published in the last week. This blocks the "same-day malicious re-publish" path that ships post-npm audit-clean PRs into a release tag.
  • Provenance-attested releases. Releases are published by CI (.github/workflows/release.yml) under the @mindstone/ npm scope via Trusted Publishing OIDC — no long-lived npm token exists anywhere — with --provenance Sigstore attestations consumers can verify via npm audit signatures. Every publishable release commit must carry a Release-Gate trailer pointing at its pre-release security review, and every publish posts an alert; the full gate chain is in docs/PUBLISH_APPROVAL_PROCESS.md. (Only a brand-new connector's first publish is manual and WebAuthn-gated; those tarballs carry no provenance attestation but remain shasum-verifiable — check out the release commit and run npm pack; see MIGRATION.md.)
  • OpenSSF Scorecard. The repo runs the OpenSSF Scorecard weekly via .github/workflows/scorecard.yml. The report is generated by a third party from the source tree, so every claim above (action pinning, branch protection, token usage, dependency hygiene) is independently checked rather than just asserted here. The current score is shown by the badge at the top of this README.

Recommendations for consumers

These connectors are published as plain npm packages. The strongest single thing you can do to protect yourself from a future supply-chain compromise of any npm package (these or otherwise) is to use a client that does not run lifecycle scripts by default:

  • pnpm (pnpm install / pnpm dlx) — does not execute postinstall/prepare hooks unless explicitly allowlisted via onlyBuiltDependencies. pnpm v11+ also defaults to a 24-hour minimumReleaseAge cool-down.
  • bun (bunx) — same default, no lifecycle scripts unless allowlisted.
  • npm — if you must use npm, set min-release-age=7 and ignore-scripts=true in your global ~/.npmrc. Requires npm v11.10+ for min-release-age.

None of our published packages need postinstall to function, so disabling lifecycle scripts in your installer of choice is safe.

  • Untrusted-content envelopes. External content from email, helpdesk, and ticketing systems (email-imap, freshdesk, zendesk) is wrapped in <untrusted-content source="..."> envelopes with close-tag breakout escaping, so an LLM host can recognise and refuse instruction-injection attempts.
  • Workspace sandboxing. File-uploading connectors (nano-banana, pandadoc, elevenlabs) constrain reads to MCP_WORKSPACE_PATH (or os.tmpdir()) with canonical-prefix containment that handles symlinked roots like /tmp → /private/tmp.
  • Secure-by-default writes. Production-impacting writes (QuickBooks invoices/bills/customers/vendors) require an explicit QB_ALLOW_PROD_WRITES=1 opt-in env var; outreach prospect-enrolment and mixmax sequence-recipient tools carry destructiveHint: true so hosts surface confirmation prompts.
  • SSRF & path traversal. Download connectors (napkin, runway) enforce host allow-lists, manual-redirect handling, and symlink-safe write paths under a configurable root.
  • Loopback OAuth bind. Connectors with local OAuth callback servers (salesforce, outreach) hard-code 127.0.0.1, ignoring any MCP_OAUTH_BIND_HOST override.
  • E.164 validation. Outbound phone-call tools (retell-ai) reject non-E.164 numbers before any upstream API call.

For per-connector security notes, see each connector's README.

To report a vulnerability, please see SECURITY.md.

The Mindstone open-source family

This repo is one of several open-source projects from Mindstone:

  • Rebel — the AI workspace desktop app that ships these connectors out of the box (source release in progress).
  • Super-MCP — a proxy MCP router that loads only the tools you actually need, saving your context window.
  • rebel-system — the public Rebel system: skills, prompts, operators, help docs, and templates.
  • meeting-note-recorder — meeting detection, recording, and live transcripts (the Rebel note-taker).

Licence

Each connector is licensed under FSL-1.1-MIT — see the LICENSE file in each connector directory for details.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

MS_CLIENT_ID*

Microsoft Entra (Azure AD) application client ID

MS_CONFIG_DIR*

Path to the per-user Microsoft config directory (credentials/, accounts.json)

MS_ACCOUNT_EMAIL

Account email when running in multi-account per-instance mode (falls back to the first account in accounts.json)

MS_MCP_PACKAGE_IDdefault: Microsoft365Teams

Logical package ID surfaced in error responses

MICROSOFT_REQUEST_TIMEOUT_MSdefault: 60000

Override the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)

Categories
Communication & Messaging
Registryactive
Package@mindstone/mcp-server-microsoft-teams
TransportSTDIO
AuthRequired
UpdatedMay 21, 2026
View on GitHub

Related Communication & Messaging MCP Servers

View all →
Outlook Email

com.mintmcp/outlook-email

A MCP server for Outlook email that lets you search, read, and draft emails and replies.
8
Resend Email MCP

helbertparanhos/resend-email-mcp

Complete Resend email MCP: full API coverage + debug layer (deliverability, DNS, bounces).
Email Mcp

marlinjai/email-mcp

Unified email MCP server for Gmail, Outlook, iCloud, and IMAP with batch operations
13
Email (IMAP/SMTP)

io.github.mindstone/mcp-server-email-imap

Email IMAP/SMTP MCP server: iCloud, Gmail, Yahoo, Outlook, and custom IMAP providers
8
HTML Email Playbook

io.github.osamahassouna/email-playbook-mcp

Teaches AI to write HTML email that renders in Outlook, Gmail, and Apple Mail. 19 rules, 6 comps.
Gmail

gongrzhe/gmail-mcp-server

Provides Gmail integration with auto authentication, enabling email send, read, search, label management, and batch operations via MCP.
1.1k