onenote-mcp
Server Quality Checklist
Latest release: v2.0.0
- Disambiguation4/5
Most tools have distinct purposes, but listNotebooks and listSections overlap with getOutline. However, descriptions clearly differentiate them: listNotebooks returns only notebooks, listSections returns sections (including nested), and getOutline returns the full hierarchy in one call. The explicit guidance to prefer getOutline reduces ambiguity.
Naming Consistency5/5All tool names follow a consistent camelCase convention with a verb-first pattern (list, get, search, create, append, delete, authenticate, signOut). Even authStatus and getOutline are predictable as noun/verb combinations without mixing snake_case or other styles.
Tool Count5/5Thirteen tools is within the ideal range for a domain-specific server. The tools cover authentication, navigation, reading, searching, creation, and deletion, each earning its place without unnecessary bloat.
Completeness3/5The server covers core OneNote operations well: listing notebooks/sections/pages, reading pages, searching, creating pages/sections, and deleting pages. However, there are notable gaps: no update or replace page content (only append), no delete for notebooks/sections, and no create notebook. This prevents full CRUD coverage for the domain.
Average 4.4/5 across 13 of 13 tools scored. Lowest: 3.3/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description adds no extra behavioral context beyond what is already known. It does not mention potential side effects, prerequisites like notebook existence, or uniqueness constraints, providing no added value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded and contains no redundant information. It effectively communicates the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter creation tool, the description is adequate but lacks important context such as what happens if the notebook ID is invalid, whether displayName must be unique, or what the response format is. Given the annotations and schema, it is minimally viable but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. The description adds little beyond what the schema already provides, only reinforcing that notebookId refers to the parent notebook. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Create' with a clear resource 'a new section inside a notebook', which precisely states the tool's function and differentiates it from sibling tools like createPage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as createPage or appendToPage. The description simply states the action without context or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=true, so the description's job is lighter. It adds useful behavioral context: default sort order ('most recently modified first') and the scoping rule for section, which are not fully captured by annotations. It does not contradict the annotations and avoids describing destructive effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every phrase earns its place by communicating ordering and scoping behavior in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple list operation, the three optional parameters are well documented in the schema, and the description covers default ordering and scoping. However, it doesn't clarify the return shape or when to prefer searchPages, leaving a minor completeness gap in the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% parameter coverage, including descriptions for limit, orderBy, and section. The description adds a small clarification that omitting section lists across all sections, which is helpful but not a substantial addition beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'List pages,' a specific verb+resource, and adds 'most recently modified first' to convey default ordering. It also clearly states the section scoping behavior, distinguishing it from sibling tools like listNotebooks and listSections, though it doesn't explicitly contrast with searchPages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives conditional usage for the section parameter ('Pass a section NAME to scope...; omit it to list across all sections'), but it provides no guidance on when to choose listPages over searchPages, getPage, or other siblings. There are no exclusions or alternatives named, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive operation. The description adds meaningful context by specifying 'end (or start)' and 'without replacing it', which clarifies the exact behavioral semantics beyond the structured annotations. It does not disclose error handling or permissions, but given the simple scope, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action, scope, and non-destructive nature. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is straightforward, with schema covering most parameters and no output schema required. The description provides sufficient context for selection and invocation, though it does not explicitly mention the need for an existing pageId (implied by 'existing page'). Overall, complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 75% of parameters with descriptions (all except isHtml), so the baseline is near 3. The tool description itself does not add parameter-specific meaning beyond what the schema provides, and it does not compensate for the missing isHtml description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and specifies it targets an existing page without replacing it, distinguishing it from createPage (new pages) and deletePage. The phrase 'end (or start)' also preemptively covers the append/prepend functionality, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this to add content to an existing page, as opposed to creating a new page. However, it does not explicitly mention alternatives or exclude cases, so it lacks deeper guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds context about section resolution (by name, no lookup) and default section behavior, but doesn't disclose return values or error conditions. This adds some value beyond annotations without being rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and no redundant wording. Every sentence adds meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with annotations and full schema coverage, the description covers the essential behavioral details (section by name, default omission). It doesn't explain return values or failure modes, but those are not expected given the presence of annotations and a relatively simple input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters at 100%. The description adds value by specifying 'Pass the section by NAME' and that section can be omitted if a default is configured, clarifying the intended usage of the section parameter beyond the schema's 'name, path, or ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new page' with a specific verb and resource, distinguishing it from sibling tools like createSection and appendToPage. It also adds clarifying details about section handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides actionable guidance: pass section by NAME, no lookup needed, and omit if default exists. This tells the agent when and how to use the tool, though it doesn't explicitly contrast with appendToPage or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds the scope limitation 'only' (notebooks, not sections), which is useful context. However, it does not disclose return format, pagination behavior beyond what the schema states, or other behavioral traits. This is a reasonable score given the annotations cover the key aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose ('List notebooks only') and no filler. Every word contributes value, and the alternative recommendation is stated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple list tool with one optional parameter, a rich schema, and informative annotations. The description clearly conveys scope and usage context, and the schema already explains pagination. There is no missing information that would hinder an agent from using the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for its single 'limit' parameter, including a description of its behavior. The tool description adds no additional parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'notebooks', and the word 'only' explicitly distinguishes it from sibling tools like listSections and listPages. It also points to getOutline as an alternative, further clarifying purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Prefer getOutline' and gives a concrete reason ('returns notebooks AND their sections in the same single call'), which serves as clear when-not-to-use guidance. It tells the agent to prefer getOutline when both notebooks and sections are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description adds critical behavioral context: deletion is permanent and cannot be undone, and user confirmation is required before invocation. This goes beyond the structured hints and meaningfully informs the agent about the operation's irreversible nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences, front-loaded with the action and critical warning. Every sentence earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive operation with two well-documented parameters, the description plus schema fully covers purpose, safety, parameter provenance, and the failure condition (title mismatch). No output schema is needed for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with detailed descriptions (source of pageId, exact title matching for confirmTitle). The tool description does not add extra parameter information, and with 100% schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Permanently delete a page' with a specific verb and resource, and clearly distinguishes from sibling tools (no other delete tool exists). The permanence warning reinforces the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly signals when to use (when a page needs permanent deletion) and explicitly instructs to confirm the page title with the user before calling. It does not name alternatives, but none exist among siblings; this is clear context with no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and openWorldHint=true, and the description adds useful behavioral context without contradicting them. It discloses that the call returns everything in ONE request, includes nested sections, and provides readable paths. However, it could further mention whether results are live or cached, though this is not strictly necessary given the simple read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long and highly front-loaded with the 'START HERE' directive. Every sentence adds value: what it returns, the format of output, and why it should be preferred over alternatives. No filler or repetition of annotations or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description is complete. It explains the tool's scope, output format (IDs and readable paths), and relationship to siblings. The annotations and schema cover safety and parameter details, so the description fills the remaining gaps effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of the parameter (includePageCounts with a description), so the baseline is 3. The description itself does not mention this parameter, but since the schema is fully self-explanatory, no additional semantic enhancement is needed. The description's focus on the overall behavior rather than parameter details is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'START HERE for anything structural' and clearly states the tool returns every notebook, section group, and section in one call. It distinguishes itself from siblings such as listNotebooks and listSections by emphasizing it covers the full hierarchy in a single request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to use this tool: 'START HERE for anything structural' and 'Use this instead of chaining listNotebooks then listSections'. It explains the benefits (one request vs several, correctly includes nested sections), giving clear usage context without needing to consult alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description reinforces the read-only nature. It adds behavioral details like the default text output, HTML option, and maxLength truncation behavior, which are not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence that is front-loaded with the primary action, then efficiently explains optional parameters and their use cases. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple read operation with no output schema, the description covers the parameters, default behavior, and a key use case (modification). It could mention error cases or response format, but the core usage is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema covers all parameters, the description adds meaningful usage semantics: format values are explained, includeIds is tied to modification workflows, and maxLength has a stated default and truncation purpose. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read one page by ID') and distinguishes this tool from siblings like listPages and searchPages, which operate on collections. It also specifies the default and optional output formats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (reading a specific page by ID) and gives conditional guidance (e.g., use includeIds=true if modifying later). It does not explicitly name alternatives, but sibling names imply the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, so the description isn't burdened with that. It adds meaningful behavioral context by explaining that nested sections are included and that the result is a flat list rather than a hierarchical outline. It doesn't describe pagination details, but the schema already covers that via the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, with the most critical information front-loaded. It states the core function first and then provides an actionable preference. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with two optional parameters and no output schema, the description is complete. It explains the tool's scope, the nested behavior, and how to choose between this and the sibling getOutline. The readOnlyHint annotation covers safety, so no further behavioral disclosure is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description doesn't add any parameter-specific meaning beyond what's in the schema. The baseline of 3 is appropriate since the description provides no extra parametric insight yet doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List sections, including those nested inside section groups.' The verb 'List' and resource 'sections' are specific, and the nested-group detail adds precise scope. It also distinguishes from the sibling 'getOutline' by explicitly contrasting a flat list with an outline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'Prefer getOutline unless you specifically want a flat list.' This tells the agent when to use this tool versus the main alternative, which is exactly what a usage guideline should do.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnlyHint and openWorldHint annotations by explaining that OneNote has no server-side full-text search, so content search fetches candidate pages in parallel and stops early. It discloses the performance impact and the 'narrow by section' strategy, which are valuable behavioral insights not present in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and fast path. Every clause adds relevant information: speed, searchContent behavior, technical limitation, parallel fetching, early stop, and section narrowing. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description thoroughly covers input semantics, performance, and recommended usage. The only gap is the lack of detail about what the search results look like (e.g., page metadata), but overall it provides enough context for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 80% schema description coverage, the baseline is 3, but the description adds meaningful context: it explains why searchContent is slower, recommends section to narrow the search, and implies how scanLimit relates to early stopping. This adds value beyond the schema's raw parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds pages by title, with an optional content search. It uses a specific verb+resource construction ('Find pages by title') and differentiates from sibling tools like listPages and getPage by focusing on search behavior and performance trade-offs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on when to use the tool and how to configure it: title search is fast, content search is slower, and passing a section narrows the search dramatically. It does not explicitly name alternative tools for when not to use it, but the context is strong enough for an agent to decide appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnly and openWorld annotations by guaranteeing it never triggers a sign-in prompt and by specifying exactly what information is returned. This is valuable behavioral context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The first sentence states the purpose, the second provides safety guidance. Perfectly front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple read-only status check with no parameters and no output schema. The description fully covers what it does, its safety, and its return content, so no additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds meaning by explaining what the tool reports, but there are no parameter semantics to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Report' and clearly states the resource (authentication status) and the exact details reported: whether signed in, which account is cached, and token cache location. This is distinct from sibling tools like authenticate and signOut.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Safe to call at any time' and 'never triggers a sign-in prompt,' providing clear when-to-use and when-not-to-use guidance. However, it does not explicitly name alternative tools for signing in or out, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses what gets destroyed (cached Microsoft account and local token cache) and the post-condition (user must re-authenticate). This goes beyond the annotations (destructiveHint=true, idempotentHint=true) by specifying the exact side effects and consequences, adding valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and every word earns its place. It is efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description fully explains the tool's purpose, its effect on the system, and the required follow-up. Combined with the annotations, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. Per the baseline for 0-parameter tools, the description is adequate without needing to detail any arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Remove the cached Microsoft account and delete the local token cache file.' This is a specific verb-resource pair that unambiguously distinguishes signOut from sibling tools like authenticate, authStatus, and getOutline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by specifying what the tool does and the consequence ('The user must authenticate again afterwards'), making it obvious when to use it. It does not explicitly mention alternatives or exclusions, but the context is sufficient for correct selection among the listed siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, openWorldHint=true, and idempotentHint=true, but the description adds critical behavioral details: it returns immediately without waiting, opens a browser or shows a device code, and requires the agent to relay the URL/code verbatim. This exceeds annotation context and helps the agent manage user interaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by behavior and usage instruction. Every word earns its place; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple initiation tool with no output schema, the description fully covers what the agent needs: return behavior, asynchronous nature, and user action required. It also links appropriately to sibling authStatus for follow-up, making the tool's context complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100% (empty properties), so the description has no responsibility to document params. The baseline of 4 is appropriate since there is nothing to add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Begin sign-in to the Microsoft account that owns the OneNote notebooks.' It clearly distinguishes the tool's role from siblings like authStatus (which checks status) and signOut (which ends sessions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'poll authStatus afterwards to confirm' and instructs to 'Always show the user the returned URL and code verbatim,' providing clear usage guidance and implying that this tool is for initiation, not status checking. It also notes the tool returns immediately, so the agent knows not to wait.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/JonEricDelaCruz/onenote-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server