MCP server for the Microsoft Events API
Project description
Microsoft Events MCP Server
An MCP server that exposes the Microsoft Events API as tools for AI assistants. Search, filter, and analyze Microsoft events (conferences, workshops, webinars) directly from Claude, Cursor, or any MCP-compatible client.
Features
- Search Events — Full-text search with filters by topic, product, region, format, and audience
- Event Details — Retrieve complete event information by ID
- Filter Discovery — List all available filter categories and values with event counts
- Event Statistics — Aggregated stats by country, city, format, topic, and more
- Multi-Locale — Supports
de-de,en-us, and other Microsoft API locales - In-Memory Cache — Events are indexed on first fetch for fast subsequent lookups
MCP Tools
| Tool | Description |
|---|---|
search_events |
Search events with optional filters and free-text query |
get_event_details |
Get full details for a specific event by ID |
list_filters |
List all available filter categories with counts |
get_event_stats |
Get aggregated statistics about events |
Quick Start
Install via uvx (recommended)
No cloning or pip needed — just add this to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"microsoft-events": {
"command": "uvx",
"args": ["msevent-mcp"]
}
}
}
Or add it to Claude Code:
claude mcp add microsoft-events uvx msevent-mcp
uvx is included with uv. It runs the server in an isolated environment and keeps it up to date automatically.
Install from source (development)
git clone https://github.com/trsdn/msevent-mcp.git
cd msevent-mcp
pip install -r requirements.txt
python mcp_server.py
For source installs, use the full path in your MCP config:
{
"mcpServers": {
"microsoft-events": {
"command": "python3",
"args": ["/path/to/msevent-mcp/mcp_server.py"]
}
}
}
Usage Examples
Search for AI events in Germany
search_events(filters="topic:ai,region:europe", locale="de-de")
Get all available filters
list_filters(locale="en-us")
Get event statistics
get_event_stats(filters="format:digital")
Tests
Run the unit tests (no network required):
pip install pytest pytest-cov
python3 -m pytest test_mcp_server.py -v -m "not live"
Run with coverage report:
python3 -m pytest test_mcp_server.py -m "not live" --cov=mcp_server --cov-report=term-missing
Run live API tests (requires network):
python3 -m pytest test_mcp_server.py -v -m "live"
Test Coverage
Name Stmts Miss Cover
---------------------------------------------
mcp_server.py 95 1 99%
Architecture
mcp_server.py # MCP server with 4 tools
test_mcp_server.py # 43 unit tests + 4 live API tests
requirements.txt # Dependencies (fastmcp)
pytest.ini # Test configuration
The server uses urllib.request for HTTP calls (no additional dependencies beyond FastMCP) and maintains an in-memory event cache for the lifetime of the process.
API Reference
The server communicates with the Microsoft Events API via POST requests. No API key is required.
Filter Categories
| Category | Example Values |
|---|---|
topic |
ai, security, cloud, data |
product |
azure, m365, dynamics |
region |
europe, north-america, asia |
format |
digital, in-person, hybrid |
audience |
developer, it-pro, business |
Built with FastMCP and the Model Context Protocol.
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 msevent_mcp-0.1.0.tar.gz.
File metadata
- Download URL: msevent_mcp-0.1.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1f3d9e0c3898a7cac89d0ee5b1ff9cff6633457a57681e78bc23681d3e39c31
|
|
| MD5 |
d2d5741eb6cd200faaf5d3ca58fbf2b6
|
|
| BLAKE2b-256 |
2d5b9f4398b66ecc618fbdfcc87e762c5465eaab8b87e75ac631c409fd85b9dd
|
File details
Details for the file msevent_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: msevent_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3a90fc78a96533f4b3381a408bacee1c569f57a64be46a5eb16d0e0d0b5a175
|
|
| MD5 |
1fb71087e8b7ff4307fd571cd811ee00
|
|
| BLAKE2b-256 |
55744b84c409a689bbf4357c0413f92ddaf510ca99bdf2a5e8163ce4d2884ff5
|