OneNote-MCP-For-GeminiSpark
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 uv2. Clonar y configurar
git clone https://github.com/yourusername/onenote-mcp-server.git
cd onenote-mcp-server
# Create virtual environment and install dependencies
uv sync3. 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:
Ve al Portal de Azure (inicia sesión con tu cuenta de Microsoft)
Navega a Azure Active Directory → Registros de aplicaciones → Nuevo registro
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"
Haz clic en Registrar
Copia el ID de aplicación (cliente): ¡lo necesitarás!
4. Agregar permisos
Todavía en tu aplicación de Azure:
Ve a Permisos de API → Agregar un permiso
Selecciona Microsoft Graph → Permisos delegados
Agrega estos permisos:
Notes.Read- Leer cuadernos de OneNoteNotes.ReadWrite- Crear/modificar contenido de OneNote (opcional pero recomendado)User.Read- Leer el perfil del usuarioOffline.access- Permitir acceso al token de actualización
Haz clic en Conceder consentimiento de administrador (el botón de arriba)
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-unauthenticatedDespué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 rulesCaracterí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:
Haz un fork del repositorio
Crea una rama de funcionalidad
Agrega pruebas para la nueva funcionalidad
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!
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