OneNote MCP Server

OneNote MCP Server

An MCP server that enables AI assistants to programmatically browse and interact with OneNote notebooks shared via web links through browser automation.

hwillGIT

Browser Automation
Visit Server

README

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Playwright MCP Server

Playwright MCP Server

Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.

Featured
Local
TypeScript
@kazuph/mcp-fetch

@kazuph/mcp-fetch

Model Context Protocol server for fetching web content and processing images. This allows Claude Desktop (or any MCP client) to fetch web content and handle images appropriately.

Featured
Local
JavaScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.

Featured
Python
YouTube Transcript MCP Server

YouTube Transcript MCP Server

This server retrieves transcripts for given YouTube video URLs, enabling integration with Goose CLI or Goose Desktop for transcript extraction and processing.

Featured
Python
serper-search-scrape-mcp-server

serper-search-scrape-mcp-server

This Serper MCP Server supports search and webpage scraping, and all the most recent parameters introduced by the Serper API, like location.

Featured
TypeScript
The Verge News MCP Server

The Verge News MCP Server

Provides tools to fetch and search news from The Verge's RSS feed, allowing users to get today's news, retrieve random articles from the past week, and search for specific keywords in recent Verge content.

Featured
TypeScript
Tavily MCP Server

Tavily MCP Server

Provides AI-powered web search capabilities using Tavily's search API, enabling LLMs to perform sophisticated web searches, get direct answers to questions, and search recent news articles.

Featured
Python
mcp-pinterest

mcp-pinterest

A Pinterest Model Context Protocol (MCP) server for image search and information retrieval

Featured
TypeScript
Crawlab MCP Server

Crawlab MCP Server

Official
Python