Model Context Protocol (MCP) server providing integrated tools for Microsoft Office and Microsoft Visual Studio Team Foundation Server automation. Features include Outlook Calendar meeting scheduling, TFS repository management with commit history tracking, and OpenWeatherMap-based weather information retrieval.
Project description
Swapnil MCP Server
A Model Context Protocol (MCP) server that provides automated utilities for Outlook Calendar scheduling, Microsoft Visual Studio Team Foundation Server repository management, and weather information retrieval.
Features
- Create and schedule meetings in Microsoft Outlook calendar with automated settings for reminders and status
- Retrieve project repositories from Microsoft Visual Studio Team Foundation Server
- Get current weather information for any city worldwide through OpenWeatherMap API
Installation
pip install swapnil-mcp-server
Requirements
- Python 3.9 or higher
- Windows OS (requires Microsoft Outlook and optionally Microsoft Teams)
pywin32packagemcppackage version 1.2.0 or higher
Usage
Starting the Server
# Run as a command
swapnil-mcp-server
# Or import in your Python code
from mcp_tools.server import mcp
mcp.run()
Using with MCP Clients
This package implements the Model Context Protocol (MCP), allowing AI assistants and other MCP-compatible clients to interact with your Outlook calendar.
Example of how an MCP client might use this tool:
from mcp.client import Client
client = Client()
result = await client.Set_Meeting(
subject="Team Meeting",
start_date="2023-10-01T10:00:00",
end_date="2023-10-01T11:00:00"
)
print(result) # Meeting with subject 'Team Meeting' set from 2023-10-01T10:00:00 to 2023-10-01T11:00:00.
API Reference
Set_Meeting
Creates and schedules a meeting in Microsoft Outlook with automated configuration for reminders, status, and sending.
Parameters:
subject(string, required): Meeting subjectstart_date(string, required): Start date and time in ISO format (e.g., "2023-10-01T10:00:00")end_date(string, required): End date and time in ISO format (e.g., "2023-10-01T11:00:00")
Features:
- Automatically sets a 15-minute reminder
- Sets busy status
- Configures as an all-day event
- Automatically sends the meeting invitation
Returns:
- A confirmation message with the meeting details
Get_Project_Repositories
Retrieves repositories from a specified Microsoft Visual Studio Team Foundation Server project.
Parameters:
project_name(string, required): Name of the Microsoft Visual Studio Team Foundation Server project
Returns:
- List of repository names in the specified project, or an error message if the operation fails
Get_Repository_Checkins
Retrieves commit history from a specified repository in Microsoft Visual Studio Team Foundation Server.
Parameters:
project_name(string, required): Name of the project in Microsoft Visual Studio Team Foundation Serverrepository_name(string, required): Name of the repository to checkuserupn(string, required): User UPN to filter commits by author
Features:
- Filters commits by specific user
- Returns detailed commit information including IDs, authors, dates, and messages
- Requires TFS_PAT environment variable for authentication
- Supports secure HTTPS connections
Returns:
- List of commit details or appropriate error message
get_weather
Retrieves current weather information for a specified city using OpenWeatherMap.
Parameters:
city(string, required): Name of the city (any global city)
Returns:
- Dictionary containing:
location: City name and countrytemperature: Current, feels like, min, and max temperatureshumidity: Current humidity percentagewind: Speed and directiondescription: Weather descriptiontimestamp: Time of the weather reading
Available Tools
| Tool | Description |
|---|---|
| Set_Meeting | Create and schedule meetings in Outlook with automated features including reminders, busy status, and all-day event settings |
| Get_Project_Repositories | Retrieve repositories from Microsoft Visual Studio Team Foundation Server using PAT authentication |
| Get_Repository_Checkins | Retrieve detailed commit history from TFS repositories with user filtering |
| get_weather | Get detailed weather information for any global city including temperature, humidity, and wind conditions |
Development
Project Structure
swapnil-mcp-server/
├── src/
│ └── mcp_tools/
│ ├── __init__.py
│ ├── __main__.py
│ └── server.py
├── LICENSE
├── README.md
└── pyproject.toml
Building and Publishing
python -m build
python -m twine upload dist/*
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
- Swapnil Dagade (swapnildagade@gmail.com)
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swapnil_mcp_server-6.2.8.tar.gz.
File metadata
- Download URL: swapnil_mcp_server-6.2.8.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb6036b53df90ac3e8cb56eb5865ed1879e3ed15cffad57d78947cea7b0e5181
|
|
| MD5 |
aab3d86c2cac1612e7558ab2b7b9b601
|
|
| BLAKE2b-256 |
2dc2b4bda79ab2ebe150f1fa0ca52b67c13a57981ba76cde83a8cdde3ed0ff03
|
File details
Details for the file swapnil_mcp_server-6.2.8-py3-none-any.whl.
File metadata
- Download URL: swapnil_mcp_server-6.2.8-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14cacbe8491b7e14140d04ab2b5599e14a0d500595fa80e41aa04f0c7c82dbdc
|
|
| MD5 |
455de0559183f4749ddbe1acb2370bfe
|
|
| BLAKE2b-256 |
9ca7d1f15f702d438697614ce7b35ec1aa54b48d4922e6404907ebcc49647ba7
|