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.
Metadata
Release files for msevent-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| msevent_mcp-0.1.0.tar.gz | 11.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| msevent_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.9 kB
Release files / msevent_mcp-0.1.0.tar.gz
| Download URL | msevent_mcp-0.1.0.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1f3d9e0c3898a7cac89d0ee5b1ff9cff6633457a57681e78bc23681d3e39c31
|
|
BLAKE2b-256 checksum How to use checksums |
2d5b9f4398b66ecc618fbdfcc87e762c5465eaab8b87e75ac631c409fd85b9dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / msevent_mcp-0.1.0-py3-none-any.whl
| Download URL | msevent_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d3a90fc78a96533f4b3381a408bacee1c569f57a64be46a5eb16d0e0d0b5a175
|
|
BLAKE2b-256 checksum How to use checksums |
55744b84c409a689bbf4357c0413f92ddaf510ca99bdf2a5e8163ce4d2884ff5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|