You start authentication, complete it in a browser, then come back and tell the server you are done — skipping that second call is the usual reason nothing works on the first attempt. Token caching is on by default so this is a once-every-few-weeks event, and turning it off is offered for machines where you would rather sign in every session.
A Python MCP server that connects Claude Desktop to Microsoft OneNote through the Graph API, using a device-code sign-in that you complete in a browser. It turns your notebooks into something an assistant can search and read.
- Your notebooks, the sections inside them, and the pages inside those
- The content of a page, read back for analysis or summarising
- Plain-language queries such as asking what is in a named section, rather than clicking through the notebook tree
- A two-step authentication flow with an explicit status check and a way to clear the cached tokens
Python 3.10+, uv, and a free Azure app registration. The app needs the Graph delegated permissions Notes.Read, User.Read, and Notes.ReadWrite if you want to write. Put the application id in your client config as `AZURE_CLIENT_ID`; `ONENOTE_CACHE_TOKENS` controls whether tokens persist between sessions. Complete the sign-in in Firefox, Chrome or Edge — Safari is reported not to handle the Microsoft redirect properly.
One command plus a key — uv sync, then supply credentials
