Microsoft Graph MCP Server
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools have distinct purposes, but there is potential confusion between browse and search tools for emails and events. While descriptions clarify workflows, an agent might misuse browse vs search, causing some ambiguity.
Naming Consistency5/5All tool names follow a consistent snake_case pattern with descriptive verb_noun or noun_verb combinations. The naming is predictable and intuitive across the entire set.
Tool Count5/515 tools is a well-scoped number for a server covering authentication, email, calendar, contacts, and settings. Each tool serves a clear function without being excessive or sparse.
Completeness4/5The tool set covers core email and calendar operations thoroughly, including search, browse, manage, and send. However, it lacks contact creation/update/delete and other Graph features (e.g., users, groups, files), which are minor gaps.
Average 4.3/5 across 15 of 15 tools scored. Lowest: 3.4/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
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?
No annotations exist, so the description bears full responsibility. It notes the return format and that invalid paths produce error messages, but lacks important behavioral details such as destructive warnings (e.g., delete is irreversible), permission requirements, side effects, or operation restrictions (e.g., cannot delete system folders).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence followed by a return format and a note. It is concise and front-loaded with the main purpose. However, structuring the operations as a bullet list could improve readability. Minimal waste, but not perfectly structured.
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?
Given the complexity (6 parameters, 6 actions, no output schema), the description covers operations and return format adequately. However, it omits important context like whether actions are synchronous, permissions needed, or restrictions on deleting system folders. The note on error messages is helpful.
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 baseline is 3. The description does not add additional context beyond what the schema already provides for each parameter. For example, it doesn't clarify how parent_folder interacts with folder_path for create operations.
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 manages mail folders and lists six specific operations (list, create, delete, rename, get_details, move). It distinguishes itself from sibling tools like manage_emails (which handles messages) and browse_email_cache (which deals with cached content).
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 implies usage for folder CRUD operations but does not explicitly state when to use this tool versus alternatives (e.g., search_emails or manage_emails). No explicit when-not-to-use or related tool references are provided.
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?
No annotations are provided, so the description must carry the full burden. It specifies the return structure ({success, message, moved_count, etc.}) and notes error behavior for invalid cache_number, but lacks disclosure of side effects (e.g., permanence of deletes, folder creation needs) or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately sized with a clear structure (actions list, return info, note), but it repeats the action list already present in the schema enums, making it slightly verbose.
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?
Given the tool's complexity (7 parameters, 11 actions) and no output schema, the description provides return structure and an error note, but lacks context on prerequisites (e.g., dependency on browse_email_cache for cache numbers), batch operation implications, or side effects of actions like deletion.
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% with detailed parameter descriptions, so baseline is 3. The description adds the return structure and a note about invalid cache_number errors, but does not augment parameter meaning 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 starts with 'Manage emails with multiple actions' and explicitly lists all supported actions (move, delete, archive, flag, categorize), clearly distinguishing the tool from siblings like send_email or search_emails which serve different purposes.
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 does not explicitly state when to use this tool versus alternatives like search_emails or browse_email_cache; usage is implied by the listed actions but no guidance on exclusions or prerequisites is provided.
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that emails are sent immediately without drafts, explains batching for BCC CSV (up to 500 per batch), and describes the return object. It does not cover rate limits, authentication needs, or error handling, but the disclosed behaviors are clear and useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes some redundancy (e.g., repeating 'send immediately - no drafts' in multiple places). It uses bold for emphasis and is structured logically, but could be more concise by eliminating repetition and unnecessary phrasing.
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 absence of an output schema, the description compensates by listing return fields (success, message, sent_count, etc.). It covers all 9 parameters, explains batching, and addresses all three actions. It lacks discussion of error scenarios or prerequisites, but overall it is sufficiently complete for the tool's complexity.
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?
The input schema has 100% coverage, but the description adds substantial extra meaning: it explains how parameters behave differently per action (e.g., 'to' optional for forward with BCC CSV), provides HTML formatting rules, and recommends BCC CSV over the 'bcc' array. This goes significantly beyond the schema to guide correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sends emails directly without creating drafts, and lists three specific actions (send_new, reply, forward) with brief explanations. It effectively communicates the core verb-resource pairing but does not explicitly distinguish itself from sibling tools like manage_emails, which may also send emails.
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 provides some context, such as recommending BCC CSV for large BCC lists and noting optional 'to' for forward actions. However, it lacks explicit when-to-use or when-not-to-use guidance and does not compare this tool to alternative siblings for similar tasks.
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?
No annotations are provided, so the description carries full burden. It discloses exact substring matching for subject, fuzzy matching for organizer, timezone handling, time_range override, and return format. This gives sufficient behavioral transparency, though rate limits or idempotency are not mentioned.
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 5-6 sentences, front-loaded with purpose, then behavior, return format, and a note. Every sentence adds value; no fluff or repetition.
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 complexity (5 parameters, no output schema), the description comprehensively covers behavior, search modes, time handling, and return fields. It is complete enough for an agent to use the tool 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?
Schema coverage is 100%, baseline 3. The description adds context: time_range overrides start/end date, search_type defaults to subject, and provides specifics on matching behavior. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'search or list calendar events by keywords' and explains the difference with and without a query. It differentiates between subject and organizer searches, but does not explicitly distinguish from sibling tools like browse_events.
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 provides context for when to use search vs list (with/without query) and mentions timezone and time_range. However, it does not tell when not to use this tool or suggest alternatives like get_event_detail for detailed info.
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?
No annotations exist, so description carries full burden. Discloses caching behavior, state management, and return structure. Does not hide side effects like disk cache persistence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with primary action, then details and workflow. Every sentence is informative. Slightly long but no 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?
Given no output schema, description provides return object structure. Covers workflow, mode, and state management. Adequate for a tool with 2 simple parameters.
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 has 100% coverage, but description adds significant value beyond schema for 'mode' parameter, explaining when to use each enum option. Page_number description mirrors schema, no extra value needed.
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 'Browse calendar events in the cache with pagination', providing specific verb and resource. It distinguishes from sibling 'search_events' which loads events, indicating this tool is for navigation after loading.
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?
Explicitly instructs 'Use search_events to load events into the cache first', establishing a clear workflow. Explains when to use 'llm' vs 'user' mode. Lacks explicit exclusions of other siblings like get_event_detail, but provides strong context.
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?
With no annotations, the description carries full burden. It discloses that cancel sends cancellation notifications, email_attendees sends emails to attendees, and forward adds optional attendees. It also mentions potential conflict errors when updating times. However, it does not detail authorization requirements or rate limits, which are minor omissions for a complex tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured: first sentence defines purpose, then lists actions and workflow, followed by return value and a note on conflicts. It is front-loaded with essential information and avoids redundancy, though some parameter details are repeated from schema.
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 18 parameters, no output schema, complex nested objects (recurrence), and no annotations, the description is quite complete. It covers actions, workflow, return value, and parameter usage. It lacks explicit explanation of the return object's full structure, but since there is no output schema, stating it returns an event object with key fields is sufficient.
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 coverage is 100%, baseline 3. The description adds significant value beyond schema: examples for timezone, important notes for body HTML formatting, explanation of email_subject default, and workflow for cache_number. This enhances parameter understanding beyond the schema's 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 manages calendar events where the user is organizer, listing five specific actions (create, update, cancel, forward, email_attendees). It distinguishes from sibling tools like manage_event_as_attendee and browse_events by focusing on organizer-only actions and referencing a cache number from browse_events.
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 a workflow: for certain actions, use cache number from browse_events or creation. It implies use when user is organizer, but does not explicitly exclude use cases for non-organizer events or specify when not to use. However, the context from sibling names and the description itself provides clear guidance.
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?
No annotations provided, so description carries full burden. It discloses automatic inclusion of organizer, automatic time range calculation based on working hours, and support limit of 20 attendees. Return format and availability codes are explained. Lacks details on authentication or side effects, but adequate for a read-like tool.
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?
Description is concise: 5-6 well-organized sentences. First sentence states purpose, then workflow, automatic behaviors, return format with codes, and a final note on limits. Every sentence adds value with no 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?
Despite no output schema, description details return fields including availability view codes. Covers all 7 parameters and key behaviors. For a 2-required-param tool with good description, it is complete enough for an agent to use 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?
Schema coverage is 100% (all 7 parameters described). Description adds meaning beyond schema: 'time range will be automatically calculated' for date, 'Used to find continuous free time slots' for meeting_duration, and explains top_slots and availability_view_interval purpose.
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?
Description starts with a clear verb+resource: 'Check availability of attendees for a given date.' It distinguishes from siblings by specifying the workflow: 'Typically use before calling manage_my_event with create action to find optimal meeting times.'
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 explicit context: 'Typically use before calling manage_my_event with create action to find optimal meeting times.' It also notes automatic behaviors (includes organizer, auto-calculates time range). No explicit alternatives or when-not-to-use, but clear enough.
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?
With no annotations, the description fully discloses behavioral traits: automatic handling for events without response requests, specific effects for each action (e.g., 'updates the event to showAs='busy''), and error behavior for already responded events. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with sections, bullet points, and important notes. It front-loads purpose and action list. Every sentence adds value, though slight conciseness improvements could be made without losing clarity.
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 complexity (10 parameters, multiple actions, no output schema), the description covers workflow, action effects, parameter usage, error conditions, and return value information. It is comprehensive for an AI agent to correctly invoke the tool.
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 baseline is 3. The description adds value by explaining workflow (e.g., cache_number usage) and clarifying propose_new_time behavior, but does not significantly exceed schema-level detail.
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 it manages calendar events where the user is an attendee. It lists specific actions and distinguishes from 'manage_event_as_organizer' sibling. The phrase 'events organized by others' makes 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 workflow instructions (use cache_number from browse_events or search_events) and explains when to use each action, including specific warnings like 'do NOT use delete_cancelled to decline invitations'. It lacks explicit alternative tool guidance but the context of 'as an attendee' implies differentiation.
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?
With no annotations, the description fully discloses return format, error behavior for invalid cache numbers, attachment download mechanics, and image handling requirements. It does not mention side effects but is transparent about read operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for attachments and images, and the main purpose is front-loaded. While detailed, each part adds value, though some notes could be more concise.
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 no output schema, the description fully defines the return object structure. It covers all five parameters with usage scenarios, error handling, and special cases like image attachments, making it complete for agent invocation.
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?
Despite 100% schema coverage, the description adds substantial context beyond the schema, including the relationship to browse_email_cache, download mechanics, image handling, and default paths. This significantly aids parameter understanding.
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 retrieves full email content using a cache number from browse_email_cache. It distinguishes itself by specifying it returns complete email details (body, attachments, etc.) unlike the sibling browse_email_cache.
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 explicitly instructs to use cache numbers from browse_email_cache and provides guidance on downloading attachments and image analysis. It lacks explicit when-not-to-use statements but gives sufficient context for typical 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?
Discloses default limit of 10, rate limit handling with retry_after, and return format. No annotations present, so description carries full burden; covers key aspects but could mention pagination or error cases.
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?
Extremely concise with front-loaded emphasis. Two sentences plus a note and return format; no wasted language.
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?
With no output schema, description provides full return structure. Single parameter is well-documented. 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?
Schema provides 100% coverage for the single parameter with description. Description does not add additional semantic detail beyond restating purpose.
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?
Clearly states the tool is for finding people/contacts by name or email. Explicitly distinguishes from searching email messages, avoiding confusion.
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?
Provides explicit when-to-use context (finding people) and when-not-to-use (searching email messages). Directly names alternative tool 'search_emails'.
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?
Discloses token auto-refresh, 90-day refresh token validity, and return formats for each action. No annotations provided, so description carries full burden; slightly missing error state details.
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?
Well-structured with bullet points, sections, and front-loaded summary. Every sentence adds value despite length.
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?
No output schema, but description provides explicit return formats for each action. Covers entire workflow and authentication lifecycle.
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 coverage is 100%, and description adds workflow context for each enum value. Baseline 3 plus extra value from detailed action 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 'Manage authentication with Microsoft Graph' and enumerates four actions. This distinguishes it from sibling tools dealing with emails, events, etc.
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?
Provides explicit guidance: 'Always try check_status first', then start if needed, with a clear step-by-step workflow. No ambiguity about when to use each action.
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?
With no annotations, the description covers return type ('Event object with id, subject, start, end...') and error handling. It implies a read operation with no side effects, but could mention permissions or rate limits.
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?
Three focused sentences: purpose, workflow, return details. No filler, front-loaded with essential information.
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 one-parameter tool, the description covers purpose, workflow, return fields, and error behavior. Fully sufficient for correct usage.
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 description covers the parameter with examples. The tool description adds workflow context (e.g., where cache_number comes from), which is valuable 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 clearly states the tool's purpose: 'Get detailed information for a specific calendar event by its cache number.' It specifies the resource and action, and distinguishes from sibling tools like browse_events and search_events.
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 outlines the workflow: 'First call browse_events or search_events to get event list, then use this tool with cache number from results.' Also notes error behavior for invalid input.
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?
With no annotations, the description fully handles transparency. It reveals the tool returns paginated summary info, manages browsing state with disk cache, and includes attachment details. It also specifies that image attachments require get_email_content for retrieval and multimodal analysis. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but well-structured: primary function, workflow, attachment handling, return format. Each part serves a purpose without undue repetition. Minor verbosity, but overall efficient and front-loaded.
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 tool's complexity (2 parameters, no output schema), the description is remarkably complete. It provides the return structure, explains caching, attachment inclusion, and multimodal workflow. Sibling tools are appropriately referenced (search_emails, get_email_content). No gaps.
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 coverage is 100% with descriptions for both parameters. The description adds significant value beyond schema: explains mode enum behavior in detail (defaults, page sizes, usage contexts) and the role of page_number in navigation. The parameter semantics are well-enriched.
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 browses cached emails with pagination. It distinguishes from sibling tools like search_emails (loads cache) and get_email_content (retrieves images), making the specific function unambiguous.
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?
Explicit workflow is provided: use search_emails first. The mode parameter is explained with detailed guidance on when to use 'llm' vs 'user'. Also instructs to use get_email_content for image attachments, covering when-not-to-use and alternatives.
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?
With no annotations, the description fully covers behavioral aspects: default focused inbox, rate limit error handling, folder path errors, timezone handling, and parameter precedence. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, bold emphasis, and clear warnings. Slightly long but each sentence is necessary; no fluff.
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 8 parameters, no output schema, and no annotations, the description covers return format, error handling, edge cases (old emails, focused inbox), and usage constraints. Fully adequate.
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 coverage is 100%, but description adds extra context like the 90-day limit tip, focused inbox default, and parameter precedence. This goes beyond what schema provides, justifying above baseline.
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?
Clear verb ('search'), specific resource ('email messages'), and explicit differentiation from sibling tool 'search_contacts'. The description states purpose upfront and in bold.
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 warns against using for contacts, gives parameter precedence, explains when to use start_date/end_date vs days for old emails, and provides examples. Covers when to use and when not to use.
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?
No annotations are provided, so the description must disclose all behavioral traits. It does so comprehensively: explains that 'init' may attempt Graph API but works without login, 'update' is local and requires no auth, and includes a multimodal detection directive. No contradictions.
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 well-structured with clear sections and no redundant sentences. It efficiently covers purpose, usage, parameter context, and behavioral notes without being verbose.
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 tool's complexity (two actions, multiple parameters, auth context, no output schema), the description fully equips an agent to select and invoke correctly. It covers all necessary details: action selection, parameter applicability, authentication nuances, and a multimodal detection note.
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 coverage is 100%, so baseline is 3. The description adds significant context by grouping parameters under actions and explaining the multimodal_supported parameter's role for LLMs, which goes beyond schema descriptions. However, it does not elaborate on parameter formats beyond what the schema provides, so not a 5.
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 manages user settings with two distinct actions: 'init' for initialization and 'update' for modifications. It uniquely identifies each action's purpose and resource, and no sibling tool overlaps, ensuring clarity.
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?
Explicit guidance on when to use each action: 'init' when configuration is missing or corrupted, 'update' for partial updates. It also clarifies authentication requirements and the multimodal_supported parameter, leaving no ambiguity.
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/marlonluo2018/microsoft_graph_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server