Skip to main content
Glama
OneNote MCP server

OneNote MCP server

by MoshCGV

Search OneNote pages

onenote_search_pages
Read-only

Find OneNote pages whose title or text contains all query words. Narrow results by section or notebook and scan recent pages when full-text search is unavailable.

Instructions

Finds pages whose title or text contains all the query words. Title matches are searched server-side; text matches scan the most recently modified pages in scope (Microsoft Graph has no full-text OneNote search). Narrow with section_id or notebook_id for thorough results. Text inside screenshots is only matched via alt text; open pages with onenote_get_page to read screenshots.

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYesWords to find (all must appear, case-insensitive).
section_idNo
notebook_idNo
search_contentNoAlso search page text, not just titles.
max_pages_to_scanNoHow many recent pages to scan for text matches.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnlyHint/openWorldHint annotations by disclosing the key limitation that text matching only scans the most recently modified pages in scope because Graph has no full-text OneNote search. It also discloses that screenshot text is matched only via alt text, which materially affects result expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with the matching rule, then the scoping caveat, then the workaround pointer. No filler, and each sentence carries information an agent needs to interpret results.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter read-only search tool with no output schema, the description covers matching semantics, coverage limits, and fallback routing. The only gap is that the shape of returned results (which fields, whether match snippets are included) is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, and the description compensates by explaining the semantics of section_id/notebook_id as narrowing filters and the scan-window behavior behind max_pages_to_scan. It does not clarify the limit parameter's effect on result count or whether truncation is signalled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Finds pages') plus the exact matching semantics (all query words, title or text). This clearly distinguishes it from sibling list/read tools such as onenote_list_pages and onenote_get_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives actionable guidance: narrow with section_id or notebook_id for thorough results, and use onenote_get_page to read screenshot content. It does not explicitly say when to prefer onenote_list_pages or onenote_collect_pages instead, but the search-vs-list distinction is implied clearly enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.