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

✨ 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 DirectoryApp-RegistrierungenNeue 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-BerechtigungenBerechtigung hinzufügen

  2. Wählen Sie Microsoft GraphDelegierte 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!

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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