ollimenzel/roadmap-mcp-server
If you are the rightful owner of roadmap-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Microsoft 365 Roadmap MCP Server is designed to fetch and provide Microsoft 365 Roadmap Items from the official Microsoft Release Communications API for Copilot Studio.
Microsoft 365 Roadmap MCP Server
Ein Model Context Protocol (MCP) Server, der Microsoft 365 Roadmap Items von der offiziellen Microsoft Release Communications API abruft und für Copilot Studio bereitstellt.
🚀 Features
- 8 MCP Tools zum Abrufen und Durchsuchen von Microsoft 365 Roadmap Items
- OData v2 API Support mit flexiblen Filtern
- REST API über HTTP/JSON
- Deployment-ready für Azure und GitHub
- Copilot Studio kompatibel
- MCP Best Practices konform
📋 Verfügbare Tools
1. get_roadmap_items
Ruft alle Microsoft 365 Roadmap Items ab mit optionalen OData Filtern.
Parameter:
limit(optional): Maximale Anzahl an Items (Standard: 100)offset(optional): Anzahl zu überspringender Items (Standard: 0)filter(optional): OData Filter String (z.B. "products/any(p:p eq 'Microsoft Teams')")
Beispiel:
{
"limit": 50,
"filter": "status eq 'Launched'"
}
2. search_roadmap
Durchsucht Roadmap Items nach Stichwörtern (client-seitig).
Parameter:
keyword: Suchbegriff für Titel und Beschreibunglimit(optional): Maximale Anzahl an Ergebnissen (Standard: 20)
Beispiel:
{
"keyword": "Copilot",
"limit": 10
}
3. get_roadmap_item
Ruft ein spezifisches Roadmap Item nach ID ab.
Parameter:
id: Die ID des Roadmap Items
Beispiel:
{
"id": "497417"
}
4. filter_by_product
Filtert Items nach Microsoft Produkt (verwendet OData Array-Filter).
Parameter:
product: Produktname (z.B. "Microsoft Copilot (Microsoft 365)", "Microsoft Teams", "SharePoint")limit(optional): Maximale Anzahl an Items (Standard: 100)
Beispiel:
{
"product": "Microsoft Copilot (Microsoft 365)",
"limit": 50
}
5. filter_by_release_phase
Filtert Items nach Release Ring/Phase.
Parameter:
phase: Release-Phase ("General Availability", "Public Preview", "In Development", "Rolling Out")limit(optional): Maximale Anzahl an Items (Standard: 100)
Beispiel:
{
"phase": "General Availability",
"limit": 20
}
6. filter_by_status
Filtert Items nach aktuellem Status.
Parameter:
status: Status ("In development", "Rolling out", "Launched")limit(optional): Maximale Anzahl an Items (Standard: 100)
Beispiel:
{
"status": "Rolling out"
}
7. filter_by_date
Filtert Items nach GA oder Preview Datum.
Parameter:
date: Datum im Format YYYY-MM (z.B. "2025-10" für Oktober 2025)dateType(optional): "generalAvailability" oder "preview" (Standard: "generalAvailability")limit(optional): Maximale Anzahl an Items (Standard: 100)
Beispiel:
{
"date": "2025-10",
"dateType": "generalAvailability"
}
8. filter_roadmap (Advanced)
Ermöglicht komplexe OData Filter Queries.
Parameter:
filter: OData Filter Expressionlimit(optional): Maximale Anzahl an Items (Standard: 100)
Beispiele:
{
"filter": "products/any(p:p eq 'Microsoft Copilot (Microsoft 365)') and generalAvailabilityDate eq '2025-10'"
}
{
"filter": "status eq 'Launched' and releaseRings/any(r:r eq 'General Availability')"
}
🔍 OData Filter Syntax
Die API unterstützt OData v2 Filter:
Array Filters (für products, platforms, releaseRings)
products/any(p:p eq 'Microsoft Teams')
platforms/any(p:p eq 'Web')
releaseRings/any(r:r eq 'General Availability')
Vergleichsoperatoren
status eq 'Launched'
generalAvailabilityDate eq '2025-10'
generalAvailabilityDate ge '2025-10' (greater or equal)
generalAvailabilityDate le '2025-12' (less or equal)
Logische Operatoren
status eq 'Launched' and generalAvailabilityDate eq '2025-10'
status eq 'Rolling out' or status eq 'Launched'
Beispiel-Queries
Copilot Items für Oktober 2025:
products/any(p:p eq 'Microsoft Copilot (Microsoft 365)') and generalAvailabilityDate eq '2025-10'
Teams Items in Public Preview:
products/any(p:p eq 'Microsoft Teams') and releaseRings/any(r:r eq 'Public Preview')
Alle Items ab Oktober 2025:
generalAvailabilityDate ge '2025-10'
🛠️ Installation & Lokale Entwicklung
Voraussetzungen
- Node.js 18.x oder höher
- npm oder yarn
Setup
# Repository klonen
git clone <repository-url>
cd "Roadmap MCP"
# Dependencies installieren
npm install
# Projekt bauen
npm run build
# Server starten
npm start
Der Server läuft dann auf http://localhost:3000/mcp
Entwicklungsmodus
npm run dev
🌐 Deployment
Azure Web App
- Azure Web App erstellen:
az webapp create \
--name m365-roadmap-mcp \
--resource-group <your-resource-group> \
--plan <your-app-service-plan> \
--runtime "NODE|20-lts"
-
GitHub Secrets einrichten:
- Gehe zu Repository Settings > Secrets
- Füge
AZURE_WEBAPP_PUBLISH_PROFILEhinzu - Hole das Publish Profile aus dem Azure Portal
-
Automatisches Deployment:
- Push zu
mainBranch triggert automatisches Deployment via GitHub Actions
- Push zu
Docker
# Build Docker Image
docker build -t m365-roadmap-mcp .
# Run Container
docker run -p 3000:3000 m365-roadmap-mcp
Azure Container Instances
# Build und Push zu Container Registry
docker build -t <registry-name>.azurecr.io/m365-roadmap-mcp:latest .
docker push <registry-name>.azurecr.io/m365-roadmap-mcp:latest
# Deploy zu Azure Container Instances
az container create \
--resource-group <resource-group> \
--name m365-roadmap-mcp \
--image <registry-name>.azurecr.io/m365-roadmap-mcp:latest \
--dns-name-label m365-roadmap-mcp \
--ports 3000
🔌 Copilot Studio Integration
1. MCP Server URL
Nach dem Deployment notiere die URL:
- Azure Web App:
https://m365-roadmap-mcp.azurewebsites.net/mcp - Azure Container:
https://<dns-name>.region.azurecontainer.io:3000/mcp
2. In Copilot Studio konfigurieren
- Öffne Copilot Studio
- Gehe zu Settings > MCP Servers
- Klicke auf Add Server
- Konfiguriere:
- Name: Microsoft 365 Roadmap
- Type: HTTP
- URL:
<your-deployment-url>/mcp
- Speichern
3. Tools verwenden
Die 8 Tools sind jetzt in Copilot Studio verfügbar:
get_roadmap_items- Alle Items mit optionalen Filternsearch_roadmap- Keyword-Sucheget_roadmap_item- Einzelnes Item nach IDfilter_by_product- Nach Produkt filtern (z.B. Copilot, Teams, SharePoint)filter_by_release_phase- Nach Release Ring filternfilter_by_status- Nach Status filternfilter_by_date- Nach Datum filternfilter_roadmap- Erweiterte OData Queries
4. Beispiel-Anfragen
Alle Copilot Items für Oktober 2025:
Tool: filter_roadmap
Filter: products/any(p:p eq 'Microsoft Copilot (Microsoft 365)') and generalAvailabilityDate eq '2025-10'
Teams Items im Rollout:
Tool: filter_by_product
Product: Microsoft Teams
+ filter_by_status
Status: Rolling out
🧪 Testing
Lokales Testen mit MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js
Health Check
curl http://localhost:3000/health
Tool Aufruf Beispiele
Get all roadmap items:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_roadmap_items",
"arguments": {
"limit": 10
}
},
"id": 1
}'
Search roadmap:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_roadmap",
"arguments": {
"keyword": "Teams",
"limit": 5
}
},
"id": 1
}'
Filter Copilot items for October 2025:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "filter_roadmap",
"arguments": {
"filter": "products/any(p:p eq '\''Microsoft Copilot (Microsoft 365)'\'') and generalAvailabilityDate eq '\''2025-10'\''",
"limit": 50
}
},
"id": 1
}'
Get specific roadmap item:
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_roadmap_item",
"arguments": {
"id": "497417"
}
},
"id": 1
}'
📚 API Referenz
Microsoft 365 Roadmap API
- Endpoint v2:
https://www.microsoft.com/releasecommunications/api/v2/m365 - Protocol: OData v2 with array filters
- Dokumentation: Microsoft 365 Roadmap
Verfügbare Filter Felder:
id(number): Roadmap Item IDtitle(string): Titel des Itemsdescription(string): Beschreibungstatus(string): "In development", "Rolling out", "Launched"products(array): Liste der betroffenen Produkteplatforms(array): Liste der Plattformen (Web, Desktop, Mobile, etc.)releaseRings(array): "General Availability", "Public Preview", etc.cloudInstances(array): Cloud-InstanzengeneralAvailabilityDate(string): GA Datum im Format YYYY-MMpreviewAvailabilityDate(string): Preview Datum im Format YYYY-MMcreated(datetime): Erstellungsdatummodified(datetime): Änderungsdatum
MCP Protocol
- Spezifikation: Model Context Protocol
- Version: 2025-06-18
🔧 Konfiguration
Umgebungsvariablen
PORT=3000 # Server Port (Standard: 3000)
NODE_ENV=production # Node Umgebung
📁 Projektstruktur
.
├── src/
│ └── index.ts # MCP Server Implementation
├── build/ # Kompilierte TypeScript Dateien
├── .github/
│ └── workflows/
│ ├── azure-deploy.yml # Azure Deployment
│ └── build.yml # Build & Test
├── .azure/
│ └── config.yml # Azure Konfiguration
├── Dockerfile # Docker Container Setup
├── package.json # Node.js Dependencies
├── tsconfig.json # TypeScript Konfiguration
└── README.md # Diese Datei
🤝 Beitragen
Contributions sind willkommen! Bitte:
- Fork das Repository
- Erstelle einen Feature Branch
- Committe deine Änderungen
- Push zum Branch
- Erstelle einen Pull Request
📝 Lizenz
MIT License - siehe LICENSE Datei für Details
🆘 Support
Bei Fragen oder Problemen:
- Erstelle ein
- Konsultiere die MCP Dokumentation
- Besuche die Microsoft 365 Roadmap