Skip to main content
Glama
abhivishwa2
by abhivishwa2

OneNote-MCP-For-GeminiSpark

Un servidor robusto de Model Context Protocol (MCP) para la integración de Microsoft OneNote con Gemini Spark. Este repositorio contiene código, configuración y ejemplos para sincronizar contenido de OneNote con flujos de trabajo de GeminiSpark, exportar notas de OneNote a formatos listos para GeminiSpark y demostrar escenarios comunes de automatización.

🎯 Lo que hace

Transforma tus cuadernos de OneNote en una base de conocimientos accesible para IA:

  • Enumera todos tus cuadernos, secciones y páginas

  • Lee el contenido de las páginas para análisis y búsqueda

  • Consultas en lenguaje natural como "Muéstrame mis notas de DevOps" o "Encuentra páginas sobre planificación de proyectos"

  • Autenticación OAuth segura con Microsoft Graph API

  • Manejo de errores robusto con depuración detallada

Related MCP server: OneNote MCP Server

✨ Por qué esta implementación

A diferencia de otros servidores MCP de OneNote, este:

  • ✅ Realmente funciona: probado exhaustivamente con datos reales de OneNote

  • ✅ Funcionalidad completa: todas las operaciones principales de OneNote implementadas

  • ✅ Autenticación robusta: flujo de dispositivo en dos pasos que maneja casos extremos

  • ✅ Listo para producción: manejo de errores y registro de eventos adecuados

  • ✅ Configuración fácil: instrucciones detalladas para usuarios no técnicos

🚀 Inicio rápido

Requisitos previos

  • Python 3.10+

  • uv package manager (recomendado) o pip

  • Cuenta de Google Gemini

  • Cuenta de Microsoft Azure (gratuita)

1. Instalar uv (si no lo tienes)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# or with Homebrew
brew install uv

2. Clonar y configurar

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

# Create virtual environment and install dependencies
uv sync

3. Registro de la aplicación Azure

Necesitas crear una aplicación de Azure para acceder a OneNote. No te preocupes, es gratis y solo toma 5 minutos:

  1. Ve al Portal de Azure (inicia sesión con tu cuenta de Microsoft)

  2. Navega a Azure Active Directory → Registros de aplicaciones → Nuevo registro

  3. Completa el formulario:

    • Nombre: "OneNote MCP Server" (o lo que quieras)

    • Tipos de cuenta admitidos: "Cuentas en cualquier directorio organizativo y cuentas personales de Microsoft"

  4. Haz clic en Registrar

  5. Copia el ID de aplicación (cliente): ¡lo necesitarás!

4. Agregar permisos

Todavía en tu aplicación de Azure:

  1. Ve a Permisos de API → Agregar un permiso

  2. Selecciona Microsoft Graph → Permisos delegados

  3. Agrega estos permisos:

    • Notes.Read - Leer cuadernos de OneNote

    • Notes.ReadWrite - Crear/modificar contenido de OneNote (opcional pero recomendado)

    • User.Read - Leer el perfil del usuario

    • Offline.access - Permitir acceso al token de actualización

  4. Haz clic en Conceder consentimiento de administrador (el botón de arriba)

  5. Ve a Manifiesto -> Actualiza signInAudience a AzureADandPersonalMicrosoftAccount y requestedAccessTokenVersion a 2 y Guarda.

5. Generar el token de actualización de Azure (actividad única)

  • Actualiza el ID de cliente de Azure en el archivo refresh_token.py y ejecútalo en cmd.

  • Se abrirá una ventana del navegador. Inicia sesión con tu ID de Microsoft.

  • Después de iniciar sesión correctamente, se generará el token en cmd.

6. Implementar el servidor MCP en la nube/localmente

  • Por ejemplo, para la implementación en Google Cloud, ejecuta el siguiente comando.

    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
    
  • Después de la implementación, se generará la URL del servidor MCP.

7. Configurar la aplicación conectada personalizada en Gemini Spark

  • Haz clic en Aplicaciones conectadas

  • Rellena la URL del servidor MCP/sse (no olvides agregar /sse al final de la URL)

  • En Configuración avanzada -> Rellena el ID de cliente de Azure

  • Haz clic en Copiar URI de redirección y ve a Azure Portal --> Aplicación cliente de Azure --> Autenticación --> URI de redirección --> Agregar URI --> Web --> Pega el enlace copiado --> Elimina cualquier otra URI de redirección

  • En el cuadro de diálogo de la aplicación conectada -> Haz clic en Siguiente y sigue las pantallas.

  • El servidor Onenote Mcp se creará en la pantalla de Aplicaciones conectadas

Uso

Una vez que la aplicación conectada esté configurada, prueba estas tareas en 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

🛠 Solución de problemas

"No hay herramientas disponibles" en la pantalla de Aplicaciones conectadas de Gemini Spark

  • Asegúrate de que copiaste la URI de redirección de la pantalla y la actualizaste correctamente en la aplicación de Microsoft Azure.

  • Comprueba si tu implementación en la nube del servidor MCP está habilitada para acceso no autenticado.

  • Verifica que uv está instalado: uv --version

Problemas de autenticación

  • Problemas de OAuth en Safari: Es posible que Safari no maneje correctamente la redirección de OAuth de Microsoft; usa Firefox o Chrome en su lugar

  • Avisos de "nativeclient": Comportamiento normal de OAuth de Microsoft, pero si bloquea la autenticación, prueba con otro navegador

  • Navegadores recomendados: Firefox (funciona confirmado), Chrome o Edge para una mejor compatibilidad

Errores de "comando no encontrado"

  • Asegúrate de que uv esté en tu PATH

  • Alternativa: reemplaza "uv" por "python" en la configuración y usa la ruta completa a tu intérprete de Python

Errores de permiso denegado

  • Comprueba los permisos de archivo en el directorio de tu proyecto

🏗 Desarrollo

Estructura del proyecto

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

Características principales

  • Integración completa con Graph API: Todas las operaciones de OneNote admitidas

  • Manejo robusto de errores: Registro detallado y fallos controlados

  • Framework FastMCP: Estructura de código limpia y mantenible

  • Configuración mediante variables de entorno: Manejo seguro de credenciales

Agregar nuevas funciones

El servidor está construido con FastMCP, lo que facilita agregar nuevas herramientas:

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 

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio

  2. Crea una rama de funcionalidad

  3. Agrega pruebas para la nueva funcionalidad

  4. Envía un pull request

📄 Licencia

Licencia MIT: consulta el archivo LICENSE para obtener más detalles.

🙏 Agradecimientos

  • Construido con el framework FastMCP

  • Utiliza Microsoft Graph API para el acceso a OneNote

  • Inspirado por el increíble trabajo de purpleslurple

⚠️ Notas importantes

  • Este servidor solo lee/escribe datos a los que ya tienes acceso

  • Las credenciales de tu aplicación de Azure permanecen en tu máquina

  • Toda la autenticación ocurre directamente entre tú y Microsoft

  • No se envían datos a terceros


Construido con ❤️ para la comunidad de Gemini Spark + OneNote

¡Convierte tu OneNote en una base de conocimientos accesible para IA!

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
    B
    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