LogoMCP Store
icon of OneNote MCP Server

OneNote MCP Server

MCP server for browsing OneNote web app using browser automation, enabling AI assistants to interact with shared notebooks.

Introduction

OneNote MCP Server

An MCP (Model Context Protocol) server for browsing and interacting with OneNote web app using browser automation. This server enables AI assistants and other MCP-compatible clients to programmatically browse and interact with OneNote notebooks that are shared via web links.

Features
  • Navigate OneNote's hierarchical structure (notebooks, sections, pages)
  • Read page content from OneNote
  • Add new content to existing pages
  • Create new pages
  • Search within OneNote
  • Take screenshots of the current view
  • Maintain state across the session
Requirements
  • Python 3.10 or higher
  • browser-use 0.1.40 or higher
  • MCP SDK 1.2.0 or higher
  • Playwright
  • Internet connection
  • A shared OneNote notebook URL (must be accessible without authentication)
Installation
# Clone the repository or create the project structure
# Then navigate to the project directory
cd onenote-mcp
 
# Install the package and dependencies
pip install -e .
 
# Install Playwright browsers
playwright install
Usage
Standalone Mode

You can run the server directly with:

python -m onenote_mcp
Integration with Claude Desktop or other MCP hosts
  1. Configure your Claude Desktop to use the OneNote MCP server by editing the configuration file:
{
  "mcpServers": {
    "onenote": {
      "command": "python",
      "args": ["-m", "onenote_mcp"]
    }
  }
}
  1. Launch Claude Desktop, which will automatically start the OneNote MCP server
  2. Use the available tools in your chat with Claude:
Can you help me navigate my OneNote notebook at https://example.com/my-shared-notebook? 
First, please launch OneNote with this URL and tell me what notebooks are available.
Available Tools
  • launch_onenote(shared_url): Launch the OneNote web app with a shared notebook URL
  • get_all_notebooks(): List all available notebooks
  • get_all_sections(): List all sections in the current notebook
  • get_all_pages(): List all pages in the current section
  • navigate_to_notebook_by_name(notebook_name): Go to a specific notebook
  • navigate_to_section_by_name(section_name): Go to a specific section
  • navigate_to_page_by_name(page_name): Go to a specific page
  • get_current_page_content(): Get the content of the current page
  • add_content_to_page(content): Add content to the current page
  • create_new_page_with_name(page_name): Create a new page
  • search_in_onenote(search_term): Search OneNote for specific terms
  • take_screenshot(): Take a screenshot of the current view
  • get_onenote_state(): Get the current state information
  • close_onenote(): Close the OneNote session and clean up resources
How It Works

This MCP server uses browser-use, a browser automation framework, to interact with the OneNote web interface. It creates a bridge between MCP-compatible AI assistants and the OneNote web application, enabling programmatic control of OneNote functions.

Limitations
  • Only works with OneNote notebooks that are shared with a public link (no authentication)
  • The server may need adjustments if the OneNote web interface changes
  • Browser automation can be somewhat fragile and dependent on the UI structure
  • Performance may vary based on network conditions and OneNote's responsiveness
Troubleshooting
  • If the server fails to connect to OneNote, ensure the shared link is accessible without login
  • If selectors fail, the OneNote UI may have changed - check the server code
  • For other issues, check the server logs for error details
License

MIT

Information

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates