Skip to main content

Microsoft Events MCP Server

Python 3.10+ MCP License: MIT Tests Coverage FastMCP

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)

Source distribution for msevent-mcp 0.1.0
File Size Uploaded
msevent_mcp-0.1.0.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for msevent-mcp 0.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page