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

✨ 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 DirectoryRegistros de aplicacionesNuevo 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 APIAgregar un permiso

  2. Selecciona Microsoft GraphPermisos 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!

-
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