Microsoft-Teams-Meetings
Microsoft Teams MCP Server for scheduling, rescheduling, canceling, and managing Teams interviews & calendar events via Microsoft Graph API. Supports JSON-RPC tools, timezone-aware events, Docker & PyPI deployment, and OpenAI/LLM integration for automated meeting scheduling.
claude mcp add --transport stdio alivnavc-microsoft-teams-meetings-mcp-server python server.py \ --env MS_USER_ID="your_user_id" \ --env MS_CLIENT_ID="your_client_id" \ --env MS_TENANT_ID="your_tenant_id" \ --env MS_CLIENT_SECRET="your_client_secret"
How to use
This MCP server provides tools to manage Microsoft Teams meetings and calendar events via the Microsoft Graph API. It supports scheduling new Teams meetings with attendees, rescheduling existing meetings by updating start/end times, canceling meetings by event ID, listing team calendar events with timezone support, and retrieving a list of IANA timezones for scheduling and filtering. The server exposes a JSON-RPC API (tools/*) to perform these operations. To use it, run the server locally (e.g., python server.py or via uv) and send JSON-RPC requests to the /mcp/ endpoint. A typical workflow is to schedule a meeting, receive the event_id from the response, and store it for future rescheduling or cancellation. You can also list upcoming calendar events and filter them by timezone for accurate display in client applications.
How to install
Prerequisites: Python 3.8+, git, and pip. Optionally uv for running the server and ngrok for exposing HTTPS.
Using Repo Source Code:
-
Clone the repository and navigate into it: git clone https://github.com/your-username/teams-mcp-server.git cd teams-mcp-server
-
Create and activate a virtual environment:
- On Unix/Linux/MacOS: python -m venv venv source venv/bin/activate
- On Windows (Command Prompt): venv\Scripts\activate
- On Windows (PowerShell): .\venv\Scripts\Activate.ps1
-
Install dependencies: pip install -r requirements.txt
-
Configure environment variables:
- Create a .env file in the project root and add your Microsoft Graph credentials: MS_TENANT_ID=your_tenant_id MS_CLIENT_ID=your_client_id MS_CLIENT_SECRET=your_client_secret MS_USER_ID=your_user_id
-
Run the server: python server.py Or, if using uv: uv run server.py
-
Optional Docker deployment: docker pull alivnavc/microsoft-teams-mcp docker run -d -p 4200:4200 --name teams-mcp-server --env-file /path/to/.env alivnavc/microsoft-teams-mcp // Use --env-file to load environment variables from your .env file
Using Pip (alternative):
-
Install the package: pip install microsoft-teams-mcp==1.1.4
-
Run the server via Python: from microsoft_teams_mcp import server server.main({ "MS_TENANT_ID": "Tenant ID", "MS_CLIENT_ID": "Client ID", "MS_CLIENT_SECRET": "Client Secret", "MS_USER_ID": "User Id" }) Run the command: python filename.py
Additional notes
Notes and tips: The server requires configured Microsoft Graph API permissions (e.g., Calendars.ReadWrite, User.Read.All). Ensure you have granted admin consent in Azure AD. When scheduling a meeting, the response includes an event_id which you should store for future rescheduling or cancellation. If you plan to expose the local server to the internet for OpenAI integration, use ngrok to obtain an HTTPS URL and point your client to your-ngrok-subdomain.ngrok.io/mcp/. For production deployments, consider using a reverse proxy with HTTPS (e.g., Nginx) and securing credentials via environment variables. Timezone handling is supported for listing events; supply the desired IANA timezone as needed.
Related MCP Servers
mcp-vegalite
MCP server from isaacwasserman/mcp-vegalite-server
github-chat
A Model Context Protocol (MCP) for analyzing and querying GitHub repositories using the GitHub Chat API.
nautex
MCP server for guiding Coding Agents via end-to-end requirements to implementation plan pipeline
pagerduty
PagerDuty's official local MCP (Model Context Protocol) server which provides tools to interact with your PagerDuty account directly from your MCP-enabled client.
futu-stock
mcp server for futuniuniu stock
mcp -boilerplate
Boilerplate using one of the 'better' ways to build MCP Servers. Written using FastMCP