Skip to main content
Glama
abhivishwa2
by abhivishwa2

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

Related MCP server: OneNote MCP Server

✨ 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 uv

2. Klonen und Einrichten

git clone https://github.com/yourusername/onenote-mcp-server.git
cd onenote-mcp-server

# Create virtual environment and install dependencies
uv sync

3. Azure-App-Registrierung

Sie müssen eine Azure-App erstellen, um auf OneNote zuzugreifen. Keine Sorge, es ist kostenlos und dauert nur 5 Minuten:

  1. Gehen Sie zum Azure-Portal (melden Sie sich mit Ihrem Microsoft-Konto an)

  2. Navigieren Sie zu Azure Active Directory → App-Registrierungen → Neue Registrierung

  3. 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“

  4. Klicken Sie auf Registrieren

  5. Kopieren Sie die Anwendungs-ID (Client-ID) – Sie werden sie benötigen!

4. Berechtigungen hinzufügen

Noch in Ihrer Azure-App:

  1. Gehen Sie zu API-Berechtigungen → Berechtigung hinzufügen

  2. Wählen Sie Microsoft Graph → Delegierte Berechtigungen

  3. Fügen Sie diese Berechtigungen hinzu:

    • Notes.Read – OneNote-Notizbücher lesen

    • Notes.ReadWrite – OneNote-Inhalte erstellen/ändern (optional, aber empfohlen)

    • User.Read – Benutzerprofil lesen

    • Offline.access – Zugriff auf das Aktualisierungstoken (Refresh Token) erlauben

  4. Klicken Sie auf Administratorzustimmung erteilen (die Schaltfläche oben)

  5. 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-unauthenticated
    
  • Nach 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 rules

Hauptfunktionen

  • 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:

  1. Forken Sie das Repository

  2. Erstellen Sie einen Feature-Branch

  3. Fügen Sie Tests für neue Funktionen hinzu

  4. 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!

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A pure-local Microsoft OneNote MCP server for Windows that controls the OneNote desktop app through the local OneNote COM API without needing Azure, Microsoft Graph, API keys, or OAuth.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A secure MCP server for Microsoft OneNote via the Graph API, enabling listing/reading notebooks, sections, and pages, with optional gated write tools. Read-only by default and deployable to Azure Container Apps.
    9 npm
    MIT