OneNote-MCP-For-GeminiSpark
OneNote-MCP-For-GeminiSpark
Ein robuster Model Context Protocol (MCP)-Server für die Microsoft OneNote-Integration mit Gemini Spark. Dieses Repository enthält Code, Konfiguration und Beispiele, um OneNote-Inhalte mit GeminiSpark-Workflows zu synchronisieren, OneNote-Notizen in GeminiSpark-fähige Formate zu exportieren und häufige Automatisierungsszenarien zu demonstrieren.
🎯 Was dieses Projekt tut
Verwandeln Sie Ihre OneNote-Notizbücher in eine KI-zugängliche Wissensbasis:
Alle Ihre Notizbücher, Abschnitte und Seiten auflisten
Seiteninhalte lesen für Analysen und Suche
Natürlichsprachliche Abfragen wie „Zeig mir meine DevOps-Notizen“ oder „Finde Seiten zur Projektplanung“
Sichere OAuth-Authentifizierung mit Microsoft Graph API
Ausfallsichere Fehlerbehandlung mit detailliertem Debugging
✨ Warum diese Implementierung
Im Gegensatz zu anderen OneNote-MCP-Servern bietet dieser:
✅ Funktioniert tatsächlich – umfassend mit echten OneNote-Daten getestet
✅ Vollständige Funktionalität – alle Kernoperationen von OneNote implementiert
✅ Robuste Authentifizierung – zweistufiger Geräteflow, der Randfälle behandelt
✅ Produktionsreif – ordnungsgemäße Fehlerbehandlung und Protokollierung
✅ Einfache Einrichtung – detaillierte Anweisungen für nicht-technische Benutzer
🚀 Schnellstart
Voraussetzungen
Python 3.10+
uv-Paketmanager (empfohlen) oder pip
Google Gemini-Konto
Microsoft Azure-Konto (kostenlos)
1. uv installieren (falls Sie es nicht haben)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# or with Homebrew
brew install uv2. Klonen und Einrichten
git clone https://github.com/yourusername/onenote-mcp-server.git
cd onenote-mcp-server
# Create virtual environment and install dependencies
uv sync3. Azure-App-Registrierung
Sie müssen eine Azure-App erstellen, um auf OneNote zuzugreifen. Keine Sorge, es ist kostenlos und dauert nur 5 Minuten:
Gehen Sie zum Azure-Portal (melden Sie sich mit Ihrem Microsoft-Konto an)
Navigieren Sie zu Azure Active Directory → App-Registrierungen → Neue Registrierung
Füllen Sie das Formular aus:
Name: „OneNote MCP Server“ (oder wie Sie möchten)
Unterstützte Kontotypen: „Konten in einem beliebigen Organisationsverzeichnis und persönliche Microsoft-Konten“
Klicken Sie auf Registrieren
Kopieren Sie die Anwendungs-ID (Client-ID) – Sie werden sie benötigen!
4. Berechtigungen hinzufügen
Noch in Ihrer Azure-App:
Gehen Sie zu API-Berechtigungen → Berechtigung hinzufügen
Wählen Sie Microsoft Graph → Delegierte Berechtigungen
Fügen Sie diese Berechtigungen hinzu:
Notes.Read– OneNote-Notizbücher lesenNotes.ReadWrite– OneNote-Inhalte erstellen/ändern (optional, aber empfohlen)User.Read– Benutzerprofil lesenOffline.access– Zugriff auf das Aktualisierungstoken (Refresh Token) erlauben
Klicken Sie auf Administratorzustimmung erteilen (die Schaltfläche oben)
Gehen Sie zu Manifest → Aktualisieren Sie signInAudience auf AzureADandPersonalMicrosoftAccount und requestedAccessTokenVersion auf 2, und speichern Sie.
5. Azure-Aktualisierungstoken generieren (einmalige Aktivität)
Aktualisieren Sie die Azure-Client-ID in refresh_token.py und führen Sie die Datei in der Eingabeaufforderung (cmd) aus.
Ein Browserfenster wird geöffnet. Melden Sie sich mit Ihrer Microsoft-ID an.
Nach erfolgreicher Anmeldung wird in der Eingabeaufforderung ein Token generiert.
6. MCP-Server in der Cloud/lokal bereitstellen
z. B. für die Google Cloud-Bereitstellung führen Sie den folgenden Befehl aus.
gcloud run deploy onenote-mcp-server --source . --region us-central1 --set-env-vars="AZURE_REFRESH_TOKEN=YOUR_AZURE_REFRESH_TOKEN,AZURE_CLIENT_ID=YOUR_ACTUAL_CLIENT_ID" --allow-unauthenticatedNach der Bereitstellung wird die MCP-Server-URL generiert.
7. Benutzerdefinierte Connected App in Gemini Spark einrichten
Klicken Sie auf Connected Apps
Füllen Sie die MCP-Server-URL/sse aus (vergessen Sie nicht, /sse am Ende der URL hinzuzufügen)
Gehen Sie zu den erweiterten Einstellungen → Azure-Client-ID ausfüllen
Klicken Sie auf „Redirect-URI kopieren“ und gehen Sie zum Azure-Portal --> Azure-Client-App --> Authentifizierung --> Redirect-URIs --> URI hinzufügen --> Web --> Fügen Sie den kopierten Link ein --> Entfernen Sie alle anderen Redirect-URIs
Klicken Sie im Dialogfeld „Connected App“ auf „Weiter“ und folgen Sie den Bildschirmanweisungen.
Der OneNote-MCP-Server wird im Bildschirm „Connected App“ erstellt.
Verwendung
Sobald die Connected App eingerichtet ist, versuchen Sie diese Aufgaben in Gemini Spark:
List my OneNote notebooks
Show me sections in my Work notebook
What pages are in my Ideas section?
Read the content of my "Project Plan" page🛠 Fehlerbehebung
„Keine Tools verfügbar“ im Bildschirm „Connected Apps“ in Gemini Spark
Stellen Sie sicher, dass Sie die Redirect-URI vom Bildschirm kopiert und in der Microsoft-Azure-App korrekt aktualisiert haben.
Überprüfen Sie, ob Ihre Cloud-Bereitstellung des MCP-Servers für nicht authentifizierten Zugriff aktiviert ist.
Stellen Sie sicher, dass uv installiert ist:
uv --version
Authentifizierungsprobleme
Safari-OAuth-Probleme: Safari verarbeitet die OAuth-Weiterleitung von Microsoft möglicherweise nicht richtig – verwenden Sie stattdessen Firefox oder Chrome.
„nativeclient“-Eingabeaufforderungen: Normales Microsoft-OAuth-Verhalten, aber wenn die Authentifizierung blockiert wird, versuchen Sie einen anderen Browser.
Empfohlene Browser: Firefox (nachweislich funktionsfähig), Chrome oder Edge für beste Kompatibilität.
Fehler „Befehl nicht gefunden“
Stellen Sie sicher, dass sich uv in Ihrem PATH befindet.
Alternative: Ersetzen Sie
"uv"durch"python"in der Konfiguration und verwenden Sie den vollständigen Pfad zu Ihrem Python-Interpreter.
Fehler „Zugriff verweigert“
Überprüfen Sie die Dateiberechtigungen in Ihrem Projektverzeichnis.
🏗 Entwicklung
Projektstruktur
onenote-mcp-server/
├── onenote_mcp_server.py # Main server implementation
├── pyproject.toml # Dependencies and metadata
├── refresh_token.py # Generate Refresh Token
├── README.md # This file
├── LICENSE # MIT License
└── .gitignore # Git ignore rulesHauptfunktionen
Vollständige Graph-API-Integration: Alle OneNote-Operationen werden unterstützt.
Robuste Fehlerbehandlung: Detaillierte Protokollierung und kontrollierte Fehlerzustände.
FastMCP-Framework: Saubere, wartbare Codestruktur.
Konfiguration über Umgebungsvariablen: Sichere Handhabung von Anmeldeinformationen.
Neue Funktionen hinzufügen
Der Server ist mit FastMCP aufgebaut, wodurch sich leicht neue Tools hinzufügen lassen:
if method == "tools/list":
await custom_send({"type": "http.response.start", "status": 200, "headers": [(b"content-type", b"application/json")]})
tools = [
# Your implementation here
return 🤝 Mitwirken
Beiträge sind willkommen! Bitte:
Forken Sie das Repository
Erstellen Sie einen Feature-Branch
Fügen Sie Tests für neue Funktionen hinzu
Reichen Sie einen Pull-Request ein
📄 Lizenz
MIT-Lizenz – siehe Datei LICENSE für Details.
🙏 Danksagungen
Erstellt mit dem FastMCP-Framework
Verwendet die Microsoft Graph API für den OneNote-Zugriff
Inspiriert von der großartigen Arbeit von purpleslurple
⚠️ Wichtige Hinweise
Dieser Server liest/schreibt nur Daten, auf die Sie bereits Zugriff haben.
Die Anmeldeinformationen Ihrer Azure-App bleiben auf Ihrem Rechner.
Die gesamte Authentifizierung erfolgt direkt zwischen Ihnen und Microsoft.
Es werden keine Daten an Dritte gesendet.
Mit ❤️ erstellt für die Gemini Spark + OneNote-Community
Verwandeln Sie Ihr OneNote in eine KI-zugängliche Wissensbasis!
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhivishwa2/OneNote-MCP-For-GeminiSpark'
If you have feedback or need assistance with the MCP directory API, please join our Discord server