Skip to main content
Glama
Microsoft Events MCP Server

Microsoft Events MCP Server

by trsdn

Microsoft Events MCP Server

Python 3.10+ MCP License: MIT Tests Coverage FastMCP PyPI

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.

→ Landing Page

msevent-mcp demo

Animated chat demo — also available as interactive SVG


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

Related MCP server: Microsoft Graph MCP Server

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

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     # 50 unit tests + 4 live API tests
requirements.txt       # Dependencies (fastmcp)
pyproject.toml         # Package config (uvx-installable)
pytest.ini             # Test configuration
docs/
  index.html           # GitHub Pages landing page
  demo.svg             # Animated SVG chat simulation
  demo.gif             # Animated GIF for README / social media

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.

Available Tools

4 tools
get_event_detailsA

Get details for a specific event by its ID.

Inputs: event_id (required), locale. Returns: result

get_event_statsA

Get statistics about events: counts by format, topic, product, region, etc.

Uses the API facets for fast, accurate counts (single API call). Use list_filters first to discover valid filter values.

Inputs: locale, filters. Returns: result

list_filtersA

List all available filter categories and their exact values with event counts.

Call this tool first before using search_events or get_event_stats with filters. It returns the exact category:value pairs that the API accepts.

Inputs: locale. Returns: result

search_eventsA

Search Microsoft Events with optional filters and free-text query.

IMPORTANT: Before searching, call list_filters first to discover the available filter categories and their exact values. Do not guess filter values — they must match exactly (e.g. "dynamics-365", not "dynamics").

Inputs: query, locale, filters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clear, distinct purpose: search_events finds events, get_event_details retrieves a single event, list_filters provides valid filter values, and get_event_stats returns aggregate counts. There is no overlap or ambiguity between them.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with lowercase and underscores: search_events, get_event_details, list_filters, get_event_stats. The naming is uniform and predictable.

    Tool Count5/5

    With 4 tools, the server is well-scoped for a read-only Microsoft Events API. Each tool serves a necessary function without bloat or redundancy, fitting comfortably within the ideal 3-15 range.

    Completeness5/5

    The tool set covers the essential read operations: searching with rich filters, retrieving event details, discovering valid filters, and obtaining statistics. For a read-only events server, there are no obvious gaps or dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers