Skip to main content
Glama
w21180239

mcp-outlook-lite

by w21180239

mcp-outlook-lite

The lightest way to connect AI agents to Microsoft Outlook. No client secret. No complex OAuth. Just a Client ID and you're done.

License: MIT Tests Coverage TypeScript Node

Tired of getting stuck on Outlook MCP auth? Most Outlook MCP servers require client secrets, complex permission grants, and multi-step OAuth configurations that break silently. This one uses PKCE — the browser handles login, no secrets stored anywhere. If you can create an Azure app registration, you can use this.


Why this one?

mcp-outlook-lite

Other Outlook MCPs

Auth setup

Client ID only, zero secrets

Client ID + Client Secret + certificates

Auth flow

PKCE (browser popup) + device code (headless)

Complex OAuth requiring manual token management

First-time experience

Register app > paste ID > done

Register app > create secret > configure redirect > manage tokens > debug errors

Token management

Auto-refresh, encrypted at rest, zero maintenance

Often manual refresh or re-auth required

Token efficiency

Focused tool schemas, minimal response payloads

Verbose responses eating your context window

Headless support

Auto-detects SSH/containers, prints device code

Browser-only or manual token injection

The auth problem is real. If you've tried other Outlook MCPs and got stuck after creating the Azure app — authorization failures, redirect URI mismatches, token exchange errors — that's because they use flows designed for server apps. PKCE is designed for exactly this use case: local tools that can't store secrets.


Related MCP server: m365-mcp-server

3-step setup

Step 1: Register an Azure app (5 min, one-time)

  1. Azure Portal > App registrations > New registration

  2. Name: anything (e.g. Outlook MCP). Account type:

    • Work/school: "Accounts in this organizational directory only"

    • Personal: "Accounts in any org directory and personal Microsoft accounts"

  3. Redirect URI: Web > http://localhost/callback

  4. Authentication > enable Allow public client flows > Save

  5. API permissions > Add Microsoft Graph delegated permissions:

    Mail.Read  Mail.ReadWrite  Mail.Send  Calendars.Read  Calendars.ReadWrite
    User.Read  MailboxSettings.Read  Files.Read.All  Sites.Read.All  offline_access
  6. Copy Application (client) ID from the Overview page

  7. Determine your Tenant ID:

    • Personal account (outlook.com / hotmail.com / live.com): use consumers

    • Work/school account: use the Directory (tenant) ID from the Overview page

    • Both: use common

That's it. No client secret. No certificates. No admin consent (for personal accounts).

⚠️ Personal account users: You must set AZURE_TENANT_ID=consumers. Using the Directory (tenant) ID from Azure Portal will authenticate successfully but Graph API calls will return 401 because your mailbox lives in the consumer identity system, not in that Azure AD tenant.

Step 2: Install

npx mcp-outlook-lite

Or add to your MCP client config:

# Personal account (outlook.com / hotmail.com / live.com)
claude mcp add outlook \
  -e AZURE_CLIENT_ID=your-client-id \
  -e AZURE_TENANT_ID=consumers \
  -- npx mcp-outlook-lite

# Work/school account
claude mcp add outlook \
  -e AZURE_CLIENT_ID=your-client-id \
  -e AZURE_TENANT_ID=your-directory-tenant-id \
  -- npx mcp-outlook-lite
{
  "mcpServers": {
    "outlook": {
      "command": "npx",
      "args": ["mcp-outlook-lite"],
      "env": {
        "AZURE_CLIENT_ID": "your-client-id",
        "AZURE_TENANT_ID": "consumers"
      }
    }
  }
}

Replace consumers with your Directory (tenant) ID for work/school accounts.

{
  "mcpServers": {
    "outlook": {
      "command": "npx",
      "args": ["mcp-outlook-lite"],
      "env": {
        "AZURE_CLIENT_ID": "your-client-id",
        "AZURE_TENANT_ID": "consumers"
      }
    }
  }
}

Replace consumers with your Directory (tenant) ID for work/school accounts.

Step 3: Use it

The first tool call triggers auth automatically:

  • Desktop: browser opens for Microsoft login

  • SSH / container: device code printed to stderr — follow the link

After that, tokens refresh silently. No re-login between sessions.


46 tools, 6 categories

Category

Count

Highlights

Email

15

List, search, send, reply, forward, draft, move, flag, categorize, batch

Calendar

17

Events, recurring meetings, availability, online meetings, timezone handling

Attachments

4

List, download with auto-parsing (PDF/Word/Excel/PPT), upload, scan

Folders

4

List, create, rename, stats

SharePoint

3

Access files via sharing links or direct IDs

Rules

3

List, create, delete server-side inbox rules

Example prompts

"Show me unread emails from this week"
"Find all emails from Alice about the budget"
"Reply to that email thanking her for the update"
"What meetings do I have tomorrow?"
"Schedule a 30-min call with Bob next Tuesday at 2pm"
"Download and summarize the PDF from the latest Finance email"

How PKCE auth works

Agent calls a tool
       |
       v
  Token cached?  ---yes--->  Use it
       | no
  Refresh works? ---yes--->  Silent refresh (no browser)
       | no
  PKCE flow:
    1. Generate code_verifier + code_challenge
    2. Browser opens -> Microsoft login
    3. Redirect to localhost with auth code
    4. Exchange code + verifier for tokens
    5. Encrypt and store tokens locally

No client secret anywhere in this flow. The PKCE challenge/verifier pair cryptographically proves the caller's identity. Tokens are encrypted at rest using the OS keychain or AES-256 with a random key.


Configuration

Variable

Required

Description

AZURE_CLIENT_ID

Yes

Application (client) ID from Azure

AZURE_TENANT_ID

Yes

consumers for personal accounts, Directory (tenant) ID for work/school, or common for both

MCP_OUTLOOK_DEVICE_CODE

No

Set to 1 to force device code flow

MCP_OUTLOOK_WORK_DIR

No

Directory for large file downloads

DEBUG

No

Enable debug logging on stderr


Development

TypeScript with noImplicitAny. 769 tests, 81% coverage.

npm test              # Run tests
npm run typecheck     # Type check
npm run build         # Compile to dist/
npm run dev           # Dev mode with tsx
server/
  index.ts              # MCP server entry
  types.ts              # Shared interfaces
  auth/                 # PKCE + device code auth
  graph/                # Microsoft Graph client with rate limiting
  tools/                # 46 tool handlers
  schemas/              # MCP tool schemas
  utils/                # Validation, caching, error handling
  tests/                # 769 tests

Security

  • Tokens encrypted at rest (OS keychain or AES-256)

  • All Graph API calls scoped to /me/ (your mailbox only)

  • No sensitive data in tool responses

  • Recipient validation before sending emails

Report vulnerabilities via GitHub private reporting. See SECURITY.md.


See Also

outlook-cli-skill — Lightweight alternative by the same author. No MCP server needed — a thin CLI handles OAuth, and AI agents call Microsoft Graph API directly via skill files. Works with any AI agent (Claude Code, Cursor, Codex, Gemini), not just MCP clients.

mcp-outlook-lite

outlook-cli-skill

Approach

MCP server (46 tools)

CLI + skill files (26 ops)

Scope

Full Outlook (email, calendar, SharePoint, attachments)

Email-focused

Best for

MCP clients needing calendar + document parsing

Any AI agent, minimal overhead

Runtime

Long-running server process

No server, on-demand CLI calls

Attachment parsing

Auto-parse PDF/Word/Excel/PPT

Raw download


License

MIT

Available Tools

46 tools
outlook_add_attachmentB

Add an attachment to an email draft

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the attachment file
messageIdYesThe ID of the email (draft) to add attachment to
contentTypeYesMIME type of the attachment
contentBytesYesBase64-encoded content of the attachment

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Add an attachment' but does not mention whether it appends, overwrites, or any side effects. The mutation is implied but lacks detail like required draft state.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no waste. It conveys the core purpose efficiently.

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

Completeness2/5

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

Despite having 4 required parameters and no output schema, the description offers no context about return values, error conditions, or post-invocation behavior. It is too minimal for a state-modifying tool.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions, so the description adds no additional meaning. Baseline of 3 is appropriate as the schema handles parameter semantics.

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

Purpose5/5

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

The description clearly states the verb 'add', the resource 'attachment', and the target context 'email draft'. It immediately distinguishes from sibling tools like outlook_download_attachment and outlook_list_attachments.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., adding attachments during draft creation). It only states the action without context or prerequisites.

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

outlook_archive_emailA

Archive an email (move to Archive folder)

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email to archive

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It states the tool moves the email to the Archive folder, indicating a non-destructive action. However, it lacks details on edge cases like archiving already archived emails or permission requirements.

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

Conciseness5/5

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

The description is a single concise sentence that effectively communicates the tool's purpose without unnecessary words.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description adequately conveys the core functionality. It could be slightly more complete by mentioning reversibility or error handling, but it meets basic needs.

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

Parameters3/5

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

The input schema covers the single parameter with a description ('The ID of the email to archive'). The tool description adds no further semantic meaning beyond what the schema provides, yielding a baseline score.

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

Purpose5/5

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

The description clearly states the action 'Archive an email' and specifies it moves to the Archive folder, distinguishing it from sibling tools like delete or move.

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

Usage Guidelines2/5

Does 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 like delete, move, or categorize. The description does not clarify the distinction between archiving and other email operations.

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

outlook_batch_process_emailsC

Perform bulk operations on multiple emails

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYesThe operation to perform on all emails
messageIdsYesArray of email IDs to process
operationDataNoAdditional data for the operation (e.g., destinationFolderId for move)

TDQS

C2.9/5.0
Behavior2/5

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

The description lacks any behavioral details beyond being a bulk operation. It does not disclose error handling (e.g., partial failures), rate limits, or whether operations are atomic. With no annotations, this is a significant gap for a potentially destructive 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/5

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

The description is a single, concise sentence with no extraneous information. It is well-structured but arguably too brief, sacrificing context for brevity.

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

Completeness2/5

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

Given the absence of an output schema and annotations, the description is incomplete. It does not explain the return value, error behavior, or limitations (e.g., maximum number of emails). More details are needed for a safe and effective tool.

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

Parameters3/5

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

The input schema provides complete descriptions for all three parameters, including nested properties for operationData. The description adds no extra meaning beyond the schema, but the schema itself is clear, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Perform bulk operations on multiple emails' clearly indicates this tool is for batch processing, distinguishing it from sibling tools that handle single emails. However, it does not explicitly list the supported operations, though the schema provides an enum.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this batch tool versus individual tools like delete_email or mark_as_read. There is no mention of trade-offs, such as efficiency or atomicity, leaving the agent to infer usage from context.

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

outlook_build_recurrence_patternC

Build a recurrence pattern object

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoIndex for relative patterns (e.g., "first")
intervalNoInterval between occurrences
rangeTypeYesType of recurrence range
dayOfMonthNoDay of the month
daysOfWeekNoDays of the week for the pattern
monthOfYearNoMonth of the year
patternTypeYesType of recurrence pattern
rangeEndDateNoEnd date of the range
rangeStartDateNoStart date of the range
numberOfOccurrencesNoNumber of occurrences

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only states it builds a pattern object, but does not disclose side effects, permissions, or whether it returns the object for later use.

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

Conciseness4/5

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

Single sentence, no redundancy. Efficient but could be more informative without losing conciseness.

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

Completeness2/5

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

With 10 parameters and no output schema, the description is too sparse. It does not explain how parameters combine to form the recurrence object or what the output looks like.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions, so baseline is 3. The description adds no additional meaning beyond the schema, but does not contradict it either.

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

Purpose3/5

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

The description 'Build a recurrence pattern object' specifies the action and resource but is vague. Among siblings like 'outlook_create_recurrence_helper' and 'outlook_create_recurring_event', it doesn't differentiate itself.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'outlook_create_recurrence_helper'. No context on prerequisites or preferred scenarios.

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

outlook_categorize_emailC

Apply categories to an email

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email to categorize
categoriesNoList of category names to apply

TDQS

C2.6/5.0
Behavior1/5

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

With no annotations and a minimal description, the tool fails to disclose any behavioral traits. It doesn't indicate whether categories are added, replaced, or if they need to exist beforehand. No mention of permissions, side effects, or response details. This is a severe gap for an AI agent.

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

Conciseness3/5

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

The description is a single short sentence, which is concise. However, conciseness should not come at the expense of useful information; the sentence is too brief to fully inform the agent. It could be restructured to include key details without being verbose.

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

Completeness2/5

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

For a simple tool with two parameters and no output schema, the description is notably incomplete. It lacks context on behavioral aspects like merging behavior, error conditions, and required permissions. This leaves the agent with insufficient information to use the tool correctly.

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

Parameters3/5

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

The input schema covers both parameters with descriptions (messageId and categories). The description adds no extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'Apply categories to an email' clearly states the action and resource. It is specific enough to understand the tool's function and distinguishes it from sibling tools like 'outlook_flag_email' which applies a flag rather than categories. However, it could be more explicit about what categories are (e.g., tags/labels) and that it modifies the email's existing categories.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'outlook_flag_email' or 'outlook_archive_email'. It does not specify prerequisites or context, leaving the agent without decision-making support.

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

outlook_check_availabilityC

Check availability for users

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeYesEnd of the time range
schedulesYesList of email addresses to check
startTimeYesStart of the time range
availabilityViewIntervalNoInterval in minutes for availability view

TDQS

C2.8/5.0
Behavior2/5

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

The description does not disclose behavioral traits like read-only nature, side effects, or any restrictions. With no annotations provided, the description carries full burden but fails to convey any behavioral context beyond the basic action.

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

Conciseness3/5

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

The description is extremely concise (4 words), but it sacrifices necessary detail. While brevity is valued, it should front-load essential information; here it is too sparse to be maximally helpful.

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

Completeness2/5

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

Given the complexity (4 parameters, no output schema, no annotations), the description lacks completeness. It does not explain return values, behavior, or how to interpret results, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter has a description in the schema. The tool description adds no additional meaning beyond what the schema already provides, resulting in a baseline score of 3.

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

Purpose4/5

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

The description 'Check availability for users' clearly states the action (check) and resource (availability for users). It is specific and distinguishable from sibling tools like outlook_check_calendar_permissions and outlook_find_meeting_times, though a bit vague on the context.

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

Usage Guidelines2/5

Does 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 outlook_get_busy_times or outlook_find_meeting_times. There is no mention of prerequisites, exclusions, or contextual cues.

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

outlook_check_calendar_permissionsB

Check permissions for a calendar

ParametersJSON Schema
NameRequiredDescriptionDefault
calendarIdNoID of the calendar to check

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, and the description provides no behavioral details such as error handling, authorization requirements, or return format. The description is minimal and fails to add value beyond the action.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded and contains no unnecessary words. It efficiently conveys the core purpose.

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

Completeness2/5

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

The tool has no output schema and no annotations. The description does not clarify what the output looks like (e.g., list of permissions, boolean) or what constitutes a 'permission check'. This is insufficient for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

The sole parameter 'calendarId' is described in the schema as 'ID of the calendar to check'. The description does not add any additional meaning beyond the schema, and coverage is 100%, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Check') and the resource ('permissions for a calendar'). It is distinct from sibling tools like outlook_check_availability or outlook_get_calendar_view.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The purpose is implied by the name, but no exclusions or context are provided.

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

outlook_create_draftA

Create an email draft without sending. When replyToMessageId is provided, creates a reply draft that preserves the thread/conversation context (to and subject are auto-populated from the original email). Use outlook_add_attachment afterward to attach files to the draft.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients
toNoRecipient email addresses. Required when not replying (replyToMessageId not set).
bccNoBCC recipients
bodyNoEmail body content
subjectNoEmail subject. Required when not replying (replyToMessageId not set).
bodyTypeNoBody content typetext
importanceNoEmail importance levelnormal
replyToMessageIdNoIf set, creates a reply draft to this message ID preserving thread context. When provided, to and subject are optional (auto-populated from the original email).
preserveUserStylingNoApply user's default Outlook styling, font preferences, and signature

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden; it does disclose the key trait that no send occurs and that reply mode auto-populates to/subject. But it omits where the draft lands (Drafts folder), permission requirements, and error behavior, leaving meaningful gaps for a mutation 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/5

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

Three tight sentences, front-loaded with the core action and the send-suppression constraint, followed by conditional reply behavior and the chaining hint. No wasted words.

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

Completeness4/5

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

Since there is no output schema, the description should ideally mention the returned draft identifier needed to chain into outlook_add_attachment, which it only implies. Otherwise it covers creation, reply mode, and the attachment handoff adequately for a 9-param optional-everything tool.

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

Parameters3/5

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

Schema coverage is 100%, so all nine parameters are already documented in the schema. The description reinforces replyToMessageId semantics and auto-population but adds little beyond what the schema descriptions state, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Create an email draft') and immediately scopes it against the send path ('without sending'), which distinguishes it from outlook_send_email. The reply-draft variant is also differentiated from plain reply tools by noting thread preservation.

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

Usage Guidelines4/5

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

Clearly signals the create-without-send context and gives explicit follow-up guidance ('Use outlook_add_attachment afterward'). However, it never explicitly names outlook_send_email or outlook_reply_to_email as the alternatives or states when to prefer creating a draft over sending directly.

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

outlook_create_eventC

Create a new calendar event in Outlook with optional Teams meeting integration

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEvent end date and time configuration
bodyNoEvent description
startYesEvent start date and time configuration
subjectYesEvent subject/title
locationNoEvent location
attendeesNoAttendee email addresses
recurrenceNoRecurrence pattern for recurring meetings
isOnlineMeetingNoWhether to create this as a Teams meeting (default: false)
onlineMeetingProviderNoOnline meeting provider (default: "teamsForBusiness")

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It mentions 'optional Teams meeting integration' but does not detail side effects like sending invites, permissions required, or response format. Key behavioral traits for a write operation are missing.

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

Conciseness5/5

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

Single sentence that is front-loaded with the core purpose. No unnecessary words or redundancy. Efficiently communicates the primary function.

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

Completeness2/5

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

Given the complexity (9 parameters, nested objects, no output schema, no annotations), the description is insufficient. It does not explain return values, success behavior, or provide context for handling recurrence. The tool requires more comprehensive guidance to be fully useful.

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

Parameters3/5

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

Input schema coverage is 100% with detailed descriptions for each parameter. The description adds minimal value beyond the schema, only noting optional Teams meetings. Baseline score of 3 is appropriate as the schema already provides semantic meaning.

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

Purpose4/5

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

Description clearly states 'Create a new calendar event in Outlook' with a specific verb and resource. It also mentions optional Teams meeting integration, which adds specificity. However, it does not explicitly differentiate from siblings like outlook_create_recurring_event, which is a closely related tool for recurring events.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. For instance, when to use this vs outlook_create_recurring_event or outlook_update_event is not addressed. The description simply states the action without context or exclusions.

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

outlook_create_folderC

Create a new email folder

ParametersJSON Schema
NameRequiredDescriptionDefault
displayNameYesName of the new folder
parentFolderIdNoID of parent folder (optional, creates at root level if not specified)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic creation action, omitting critical details like error handling for duplicate folder names, permission requirements, or confirmation of success. The description adds no value beyond the obvious.

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

Conciseness4/5

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

A single sentence is concise and front-loaded. It could be slightly improved by mentioning the optional parent folder, but it remains efficient without unnecessary detail.

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

Completeness3/5

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

For a simple create operation with well-documented parameters, the description is minimally complete. However, it lacks information on the return value or success confirmation, and no output schema is provided, leaving some gaps for the agent.

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

Parameters3/5

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

Schema coverage is 100%: both parameters have clear descriptions in the input schema. The description adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline expectation.

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

Purpose4/5

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

The description 'Create a new email folder' clearly states the verb and resource, distinguishing it from sibling tools like outlook_rename_folder or outlook_list_folders. However, it does not specify that it can create subfolders via the optional parentFolderId parameter, which is a minor oversight.

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

Usage Guidelines2/5

Does 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 vs alternatives, such as when to create a folder at root level vs as a subfolder. There are no prerequisites or exclusions mentioned, leaving the agent to infer usage from the name alone.

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

outlook_create_recurrence_helperC

Helper to create a recurring event with simplified inputs

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoEnd date
endAfterNoWhen to end the recurrence (date or occurrences)
eventTitleYesTitle of the event
endDateTimeYesEnd date and time
occurrencesNoNumber of occurrences
startDateTimeYesStart date and time
recurrenceTypeYesType of recurrence (daily, weekly, etc.)

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states 'helper' without explaining what that entails (e.g., if it is an internal helper not intended for direct use). No mention of side effects, permissions, or limitations.

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

Conciseness3/5

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

The description is a single sentence, concise but lacking structure. It front-loads the purpose but provides no additional detail.

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

Completeness2/5

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

Given 7 parameters, no output schema, and sibling tools, the description is too brief. It does not explain 'simplified inputs' or how this helper relates to other tools, leaving the agent with insufficient context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents parameters. The description adds no extra meaning beyond the parameter names. Baseline score of 3 is appropriate.

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

Purpose4/5

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

Description states 'create a recurring event' with a specific verb and resource. The term 'helper' and 'simplified inputs' provide some differentiation from sibling tools like outlook_create_recurring_event.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not clarify the difference from outlook_create_recurring_event or indicate when 'simplified inputs' is appropriate.

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

outlook_create_recurring_eventC

Create a recurring calendar event

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd time
bodyNoEvent body content
startYesStart time
subjectYesEvent subject
locationNoEvent location
attendeesNoList of attendees
isOnlineMeetingNoWhether to make this an online meeting
recurrencePatternYesRecurrence pattern object

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are present, and the description gives no behavioral context: permissions required, side effects (e.g., sending invites), recurrence pattern constraints, or return value. The description is too sparse to inform an agent about the tool's effects.

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

Conciseness3/5

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

The description is a single sentence, which is concise but under-specified. It could benefit from a few more sentences to clarify recurrence scope or required fields without becoming verbose.

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

Completeness2/5

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

For a complex tool with 8 parameters, nested objects (start, end, recurrencePattern), and no output schema, the description is insufficient. It does not explain what is returned, how recurring series are handled, or how to set the recurrence pattern correctly.

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

Parameters3/5

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

Schema coverage is 100% with basic descriptions for all 8 parameters. The tool description adds no extra semantic meaning beyond the schema, such as dateTime format expectations or recurrence pattern structure. Baseline score of 3 applies because schema handles parameter documentation without additional elaboration.

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

Purpose4/5

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

The description 'Create a recurring calendar event' clearly states the action (create) and the resource (recurring calendar event), distinguishing it from non-recurring event creation (e.g., outlook_create_event). However, it lacks specificity about the target calendar (user's default) or whether it creates a series.

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

Usage Guidelines2/5

Does 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 like outlook_create_event or outlook_schedule_online_meeting. The description does not mention prerequisites, scenarios, or exclusions.

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

outlook_create_ruleC

Create an inbox message rule to automatically move emails matching sender criteria to a specified folder

ParametersJSON Schema
NameRequiredDescriptionDefault
sequenceNoOrder in which rule is applied (default: 1)
isEnabledNoWhether the rule is enabled (default: true)
displayNameYesName of the rule
moveToFolderYesID of the destination folder
senderContainsYesList of strings to match against sender email address (e.g. ["bizreach"])

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys the rule's effect but says nothing about whether new rules apply retroactively to existing inbox mail, whether the destination folder must pre-exist, what permissions are required, or how the default sequence/isEnabled settings interact. For a mutation tool with zero annotation coverage this is a significant gap.

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

Conciseness5/5

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

A single front-loaded sentence with the action, trigger (sender criteria), and outcome (move to folder) — no filler or redundancy.

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

Completeness2/5

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

For a 5-parameter mutation tool with no annotations and no output schema, the description covers only the happy path effect. Missing are the ordering/enablement semantics of the rule, folder prerequisites, and any indication of what happens to already-received messages.

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

Parameters3/5

Does 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 echoes the senderContains and moveToFolder semantics but adds no detail beyond the schema, and it says nothing about the displayName, sequence, or isEnabled parameters.

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

Purpose4/5

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

The description states a specific verb (create) and resource (inbox message rule) and describes the resulting automation (move emails matching sender criteria to a folder), which maps directly to the required parameters. It is easy to distinguish from siblings like outlook_list_rules or outlook_delete_rule, though it does not name them explicitly.

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

Usage Guidelines2/5

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

The word 'automatically' hints at the persistent-rule use case, but there is no explicit guidance on when to create a rule versus using outlook_move_email for a one-off move, nor any prerequisites such as the destination folder needing to exist. The agent must infer the selection context entirely.

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

outlook_delete_emailA

Delete an email (move to Deleted Items or permanently delete)

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email to delete
permanentDeleteNoWhether to permanently delete (true) or move to Deleted Items (false)

TDQS

A3.5/5.0
Behavior3/5

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

Discloses the behavioral choice between move to Deleted Items and permanent deletion via the permanentDelete parameter. However, no annotation provided and description lacks details on irreversibility, permissions, or side 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/5

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

Single sentence efficiently conveys the action and two modes. No unnecessary words, front-loaded with the verb and resource.

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

Completeness3/5

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

Minimal for a simple delete tool with 2 parameters and no output schema. Lacks details on return value, confirmation, or effect on attachments, but sufficient for straightforward use.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline 3 is appropriate. The description adds no additional insight beyond what the schema already explains for messageId and permanentDelete.

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

Purpose5/5

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

The description clearly states the tool deletes an email, with explicit options to move to Deleted Items or permanently delete. It distinguishes from sibling tools like archive or move.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as archive or move. Does not mention scenarios where use is inappropriate.

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

outlook_delete_eventB

Delete a calendar event

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesThe ID of the event to delete

TDQS

B3.3/5.0
Behavior2/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 merely states 'Delete a calendar event' without revealing whether deletion is permanent, affects attendees, or requires special permissions. The description adds no behavioral context beyond the obvious.

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

Conciseness5/5

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

The description is a single concise sentence that immediately conveys the purpose. It is front-loaded and contains no extraneous information.

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

Completeness3/5

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

For a simple deletion tool with one parameter and no output schema, the description is somewhat complete but lacks critical context: whether it deletes recurring events (single occurrence vs. series), reversibility, and error conditions. It does not compensate for the missing annotations.

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

Parameters3/5

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

The single parameter 'eventId' has a schema description that clearly explains its purpose. Schema coverage is 100%, meeting the baseline. The tool description does not add further meaning, such as how to obtain the event ID, but the schema alone is adequate for a simple parameter.

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

Purpose5/5

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

The description 'Delete a calendar event' is a specific verb+resource pair that clearly states the action and object. It effectively distinguishes from sibling tools like outlook_delete_email (deletes email) and outlook_update_event (modifies event).

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

Usage Guidelines2/5

Does 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 like outlook_update_event or outlook_respond_to_invite. There is no mention of prerequisites (e.g., event existence), consequences (e.g., permanence), or 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.

outlook_delete_ruleB

Delete an inbox message rule by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleIdYesID of the rule to delete

TDQS

B3.1/5.0
Behavior2/5

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

With annotations absent, the description carries the full burden. It implies a destructive mutation but says nothing about irreversibility, required permissions, whether the rule can be recovered, or what happens if the ruleId does not exist. Only the mutation itself is conveyed.

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

Conciseness5/5

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

A single seven-word sentence with the action front-loaded and zero filler. Nothing could be removed without losing meaning.

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

Completeness3/5

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

The operation is intrinsically simple (one required ID, no output schema, no nested data), so the definition is minimally sufficient. However, for a destructive operation with zero annotation coverage it omits irreversibility and failure behavior, leaving real gaps.

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

Parameters3/5

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

Schema description coverage is 100% and the single ruleId parameter is fully documented in the schema as "ID of the rule to delete." The description adds no syntax, format, or sourcing detail beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb ("Delete") and resource ("inbox message rule"), and the qualifier "by ID" signals the lookup key. The resource 'rule' is unique among siblings (delete_email, delete_event), so an agent can route correctly without opening the schema, though it never explicitly contrasts those siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this versus outlook_list_rules (to find the ID) or outlook_create_rule, and no prerequisites such as needing the ruleId from a prior list call. The agent must infer the workflow entirely.

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

outlook_download_attachmentC

Download a specific email attachment

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email containing the attachment
attachmentIdYesThe ID of the attachment to download
decodeContentNoWhether to decode Base64 content to readable format (text files) or provide summary (binary files)
includeContentNoWhether to include the file content

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'download', implying a read operation but not explicitly confirming non-destructiveness or side effects. It fails to disclose what happens to the attachment (e.g., stored in memory, returned as binary), leaving behavioral ambiguity.

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

Conciseness4/5

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

The description is a single concise sentence that communicates the core action efficiently. It is well-structured and front-loaded, though it could benefit from a brief elaboration on usage without losing conciseness.

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

Completeness2/5

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

Given the lack of an output schema and 4 parameters, the description is incomplete. It does not explain what the tool returns (e.g., file content, URL) or how to interpret the response, leaving the agent without critical output context for a download operation.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so the description does not need to add much. However, it adds no extra meaning beyond the schema, such as clarifying the role of 'includeContent' or 'decodeContent' defaults, resulting in adequate but not enhanced semantics.

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

Purpose4/5

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

The description uses the verb 'Download' and the resource 'email attachment', clearly indicating the action and object. It distinguishes from sibling tools like 'outlook_add_attachment' (add) and 'outlook_list_attachments' (list), but does not explicitly differentiate from other download-like tools.

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

Usage Guidelines2/5

Does 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 'outlook_list_attachments' to get attachment IDs first. There are no prerequisites or conditions mentioned, leaving the agent without context for appropriate invocation.

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

outlook_find_meeting_timesC

Find optimal meeting times for attendees

ParametersJSON Schema
NameRequiredDescriptionDefault
attendeesYesList of attendees to check availability for
maxCandidatesNoMaximum number of time slots to return
timeConstraintNoTime range to search within
meetingDurationNoDuration of the meeting (ISO 8601 duration)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It does not state whether the tool is read-only, if it requires specific permissions, or what side effects (if any) occur. The agent is left to infer that it only retrieves suggested times.

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

Conciseness4/5

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

The description is a single concise sentence, front-loading the key action. It is efficiently brief, though it could expand slightly without losing conciseness.

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

Completeness2/5

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

The description lacks information about the return value (no output schema), and nested objects like timeConstraint are not explained beyond schema. For a tool with 4 parameters and nested objects, more context is needed to fully guide the agent.

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

Parameters3/5

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

The input schema has 100% description coverage, so all parameters are documented. The description adds no extra meaning beyond the schema, thus baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'find' and the resource 'optimal meeting times for attendees', making the purpose immediately understandable. However, it does not differentiate from sibling tools like outlook_check_availability or outlook_get_busy_times, which also deal with attendee availability.

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

Usage Guidelines2/5

Does 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 (e.g., outlook_get_busy_times or outlook_schedule_online_meeting). It also fails to mention prerequisites or context for usage.

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

outlook_flag_emailA

Flag or unflag an email for follow-up

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email to flag
flagStatusNoThe flag status to setflagged

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, and description only says 'flag or unflag', lacking details on side effects, reversibility, or concurrency. Acceptable for a simple toggle but lacks depth.

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

Conciseness5/5

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

Single sentence, no fluff. Front-loaded with action and resource.

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

Completeness4/5

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

For a simple flag action with good schema coverage, the description is sufficient. Could mention default flagStatus behavior.

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

Parameters3/5

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

Schema covers both parameters with descriptions; description adds no extra meaning. Baseline 3 due to high schema coverage.

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

Purpose5/5

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

Clearly states the action (flag/unflag) and resource (email for follow-up), distinguishing it from siblings like mark_as_read or categorize_email.

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

Usage Guidelines3/5

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

Implies usage for toggling flag status, but provides no explicit guidance on when to use vs alternatives like categorize_email or mark_as_read, nor any prerequisites.

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

outlook_forward_emailB

Forward an existing email to new recipients

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email addresses for forwarding
bodyNoAdditional message body for the forward
commentNoOptional comment for the forward
bodyTypeNoBody content typetext
messageIdYesThe ID of the email to forward

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action but fails to mention whether the forward is sent immediately or saved as draft, if it modifies the original email, or if special permissions are needed. This is insufficient for a write operation tool.

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

Conciseness3/5

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

The description is a single sentence, which is concise but somewhat terse. It could be restructured to include more information without being verbose, such as mentioning the action's outcome.

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

Completeness2/5

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

For a tool with five parameters and no output schema, the description should provide more context about the forwarding process (e.g., does it create a draft or send? Are there constraints on recipients?). The minimal description leaves gaps, especially given the complexity of email forwarding.

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

Parameters3/5

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

All five parameters have descriptions in the input schema (100% coverage), so the description does not need to add much. However, the description adds no extra semantics beyond what the schema provides, such as how 'body' interacts with the original email content. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the verb 'Forward' and the resources 'existing email' and 'new recipients'. It effectively distinguishes this tool from siblings like outlook_reply_to_email (which replies to original sender) and outlook_send_email (which composes a new email).

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

Usage Guidelines3/5

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

The description implies basic usage (forwarding an email) but does not provide any explicit guidance on when to use this tool versus alternatives like reply or reply-all. There is no mention of limitations or prerequisites.

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

outlook_get_busy_timesC

Get busy times for users

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeYesEnd of the time range
schedulesYesList of email addresses to check
startTimeYesStart of the time range
availabilityViewIntervalNoInterval in minutes for availability view

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It does not disclose any behavioral traits such as read-only status, required permissions, or side effects. The word 'Get' implies read-only, but this is implicit.

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

Conciseness3/5

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

The description is very short (4 words), but it is appropriately sized for a minimal definition. However, it could be expanded without becoming verbose to improve clarity.

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

Completeness2/5

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

Given no output schema, the description should explain return values or behavior. It does not, leaving the agent without crucial context about what the tool returns or how to interpret the busy times.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all four parameters. The description adds no extra meaning beyond what the schema already provides, meeting the baseline.

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

Purpose3/5

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

The description states 'Get busy times for users', which identifies the action and resource. However, it lacks specificity (e.g., what 'busy times' entails) and does not distinguish from the similar sibling tool 'outlook_check_availability'.

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

Usage Guidelines2/5

Does 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 like 'outlook_check_availability'. No context or exclusions are mentioned.

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

outlook_get_calendar_viewC

Get a view of a calendar for a specific time range

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoNumber of events to return
calendarIdNoID of the calendar to view
endDateTimeYesEnd of the time range
startDateTimeYesStart of the time range

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits like what the view contains (events?), pagination (the 'top' parameter hints at it), and whether recurring events are expanded. It only states 'get a view', which is vague.

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

Conciseness4/5

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

The description is a single, straightforward sentence with no unnecessary words. It is appropriately concise, though it could benefit from additional details without being verbose.

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

Completeness2/5

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

While the schema covers parameters, the description fails to explain what the tool returns (events? with what details?), lacks information on output or behavior, and doesn't differentiate from sibling tools. It is too minimal given the complexity and sibling set.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description mentions 'specific time range' which aligns with startDateTime and endDateTime, but adds no new meaning beyond the schema. No additional parameter context is provided.

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

Purpose4/5

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

The description clearly states the tool retrieves a view of a calendar for a time range. However, it does not distinguish this tool from 'outlook_list_events', which likely also retrieves events from a calendar, creating potential confusion.

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

Usage Guidelines2/5

Does 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 vs alternatives like 'outlook_get_event' or 'outlook_list_events'. The description lacks context for decision-making.

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

outlook_get_emailC

Get detailed information about a specific email

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat of the body content (default: text)text
truncateNoTruncate long email bodies (default: true)
maxLengthNoMaximum length for truncated body (default: 1000)
messageIdYesThe ID of the email message to retrieve

TDQS

C2.7/5.0
Behavior2/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 only says 'Get detailed information' but does not explain what 'detailed' includes (e.g., headers, body, attachments), whether it marks the email as read, or any side effects. The description is too sparse to inform safe invocation.

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

Conciseness2/5

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

The description is a single sentence, which is concise but under-informative for a tool with 4 parameters. It lacks any structure (e.g., bullet points or examples) and does not front-load critical details like which parameter is required. Every sentence should add value, but this does not earn its place for a parameterized tool.

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

Completeness2/5

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

Given no output schema and no annotations, the description should explain return format or content. It only says 'detailed information'—vague. The agent needs to know if the response includes body, attachments, or headers. Also, truncation parameters are not contextualized. The description is incomplete for safe and effective use.

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

Parameters3/5

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

The input schema has 100% coverage—each parameter has a description. The description adds no additional meaning beyond the schema. It does not clarify defaults (truncate=true, maxLength=1000) or suggest when to adjust them. Baseline 3 is appropriate since schema does the heavy lifting.

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

Purpose4/5

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

The description 'Get detailed information about a specific email' clearly states the verb (get) and resource (detailed email info). However, it does not differentiate from siblings like outlook_get_event or outlook_get_folder_stats, which also fetch details. The tool retrieves a single email, which is distinct from list/search, but not explicitly noted.

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

Usage Guidelines2/5

Does 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 siblings such as outlook_list_emails or outlook_search_emails. There is no mention of prerequisites (e.g., needing a messageId) or when not to use it (e.g., for bulk operations). The description leaves the agent to infer usage from the name alone.

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

outlook_get_eventC

Get a specific calendar event

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesThe ID of the event to retrieve

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states 'Get' with no mention of read-only nature, error handling for missing events, or required permissions. The description adds minimal value beyond the name.

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

Conciseness3/5

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

The description is a single sentence, which is concise but arguably under-specified. It is front-loaded but does not earn its place by providing sufficient context.

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

Completeness2/5

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

Given the simple operation with one required parameter and no output schema, the description lacks information about the return value (the event object) and does not clarify that this is a read operation unlike the mutation siblings.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add extra meaning to the eventId parameter beyond what the schema provides ('The ID of the event to retrieve').

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

Purpose4/5

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

The description clearly states 'Get a specific calendar event', which is a specific verb-resource pair. However, it does not explicitly differentiate from siblings like outlook_get_calendar_view or outlook_list_events, which also retrieve events.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. It does not mention that the event ID must be obtained from a prior list/search, nor does it indicate that this tool is for single event retrieval by ID.

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

outlook_get_folder_statsC

Get statistics for a specific folder

ParametersJSON Schema
NameRequiredDescriptionDefault
folderIdYesID of the folder to get stats for
includeSubfoldersNoInclude statistics for subfolders

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'get statistics', not explaining that it is a read-only operation, what statistics are included, or any side effects. Incomplete for agent decision-making.

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

Conciseness3/5

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

Very concise single sentence, but it sacrifices helpful detail. While front-loaded, it is borderline under-specified.

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

Completeness2/5

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

No output schema and no annotations. The description does not explain return values or format, leaving the agent with insufficient context to use the results. Lack of statistics type (counts, sizes, etc.) is a major gap.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters are already described in the schema. The description adds no new parameter information beyond the schema. Baseline score of 3 is appropriate.

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

Purpose4/5

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

Description clearly states verb and resource: 'Get statistics for a specific folder'. It is unambiguous and differentiates from most sibling tools, though lacking specificity on what statistics.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like outlook_list_folders. No hints on prerequisites or context.

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

outlook_get_sharepoint_fileA

Fetch a SharePoint file using the same authenticated session as Outlook. Handles sharing links from emails. Either sharePointUrl OR fileId must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdNoDirect file ID if known. Required if sharePointUrl is not provided.
driveIdNoDrive ID for direct file access (defaults to user's OneDrive)
sharePointUrlNoSharePoint sharing URL from email (e.g., https://company.sharepoint.com/:w:/s/sitename/...). Required if fileId is not provided.
downloadContentNoWhether to download and include file content as base64 (max 50MB)

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool uses the same authenticated session as Outlook and handles sharing links, but lacks details on read-only nature, potential side effects, rate limits, or file size limits. The mention of 'fetch' implies reading but does not confirm safety.

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

Conciseness5/5

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

Two sentences, no wasted words. The verb 'Fetch' is front-loaded, and the essential information (session reuse, sharing links, parameter condition) is conveyed efficiently.

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

Completeness3/5

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

Given no output schema, the description should clarify what is returned (metadata vs content). The downloadContent parameter implies content is optional, but the description does not mention the return format. For a tool with multiple identification methods and a download option, this leaves gaps.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. The description adds meaningful context: the mutual exclusivity of sharePointUrl and fileId is implied ('Either ... OR'), and it explains that sharePointUrl comes from emails. This goes beyond the schema's required-if-not-provided phrasing.

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

Purpose5/5

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

The description clearly states it fetches a SharePoint file using the Outlook session and handles sharing links from emails. It specifies two mutually exclusive identifiers (sharePointUrl or fileId), distinguishing it from sibling tools like outlook_list_sharepoint_files and outlook_download_attachment.

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

Usage Guidelines4/5

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

The description indicates when to use the tool (to fetch a SharePoint file from an email link) and provides a condition (either sharePointUrl or fileId must be provided). However, it does not explicitly mention when not to use it or direct to alternatives among siblings.

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

outlook_list_attachmentsC

List all attachments for a specific email

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email to list attachments for

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'list attachments' without mentioning if it returns metadata or content, authorization requirements, or any side effects.

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

Conciseness3/5

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

The description is concise (one sentence) but lacks structure and important details. It is not excessively long, but conciseness should not come at the cost of completeness.

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

Completeness2/5

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

For a simple tool with one parameter and no output schema, the description should at least hint at what the list output contains (e.g., names, sizes). It does not, making it incomplete.

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

Parameters3/5

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

Schema coverage is 100% as the single parameter 'messageId' is already described in the schema. The description adds no extra meaning beyond the schema, which is adequate for a simple parameter.

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

Purpose4/5

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

The description clearly states the tool lists attachments for a specific email. It identifies verb ('list') and resource ('attachments'), but does not distinguish from sibling tools like outlook_scan_attachments, which may also list attachments.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., outlook_scan_attachments). No prerequisites or context provided, such as the need for a valid messageId.

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

outlook_list_calendarsC

List available calendars

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoNumber of calendars to return
includeSharedCalendarsNoWhether to include shared calendars

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It only says 'List available calendars' without mentioning side effects, authentication needs, or what 'available' means (e.g., own vs shared).

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words, making it extremely concise.

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

Completeness2/5

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

The tool is simple but lacks output schema, so the agent does not know the return format. The description omits what information each calendar entry contains (ID, name, etc.), leading to incompleteness.

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

Parameters3/5

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

The schema already fully describes both parameters (includeSharedCalendars and top) with 100% coverage. The description adds no additional meaning beyond the schema.

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

Purpose4/5

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

The description clearly states 'List available calendars' which is a specific verb and resource. However, it does not distinguish from sibling tools like 'outlook_list_events' or 'outlook_get_calendar_view', which list different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives or any context for its usage.

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

outlook_list_emailsB

List emails from Outlook inbox or specified folder

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of emails to return
filterNoOData filter query for emails
folderNoFolder to list emails from (default: inbox)inbox

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits but lacks details on pagination, sorting, read-only nature, or output format. The brevity leaves significant ambiguity.

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

Conciseness5/5

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

Single sentence, no redundant information. Perfectly concise for the functional requirement.

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

Completeness2/5

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

Given no output schema, 3 parameters, and no annotations, the description is too minimal. It omits return format, pagination behavior, and typical use context, leaving agents underinformed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents parameters. The description reinforces the folder parameter's default but adds no new meaning beyond schema, not covering filter format (OData).

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

Purpose5/5

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

The description clearly states the verb 'list' and resource 'emails' with a specific location ('Outlook inbox or specified folder'), effectively distinguishing it from sibling tools like outlook_search_emails or outlook_get_email.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., outlook_search_emails for advanced filtering). It fails to specify any exclusions or prerequisites.

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

outlook_list_eventsC

List calendar events from Outlook

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return
calendarNoCalendar ID (default: primary calendar)
endDateTimeNoEnd date/time in ISO 8601 format
startDateTimeNoStart date/time in ISO 8601 format

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only says 'list', implying read-only, but omits details like ordering, pagination, or whether it returns full event objects. The schema indicates a date range, but the description does not disclose behavioral traits.

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

Conciseness4/5

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

The description is a single concise sentence with no redundant information. It is efficient but lacks structure or front-loading of key details.

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

Completeness2/5

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

With 4 parameters and no output schema, the description should explain the return format or behavior. It lacks completeness, e.g., not mentioning if results are paginated or what event details are included.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The description adds no extra meaning beyond the schema, meeting the baseline. For example, startDateTime is already described in the schema as ISO 8601 format.

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

Purpose4/5

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

The description clearly states 'List calendar events from Outlook', specifying the verb and resource. However, it does not differentiate from sibling tools like outlook_get_calendar_view or outlook_get_event, which also retrieve calendar data.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. There are many sibling calendar tools (e.g., outlook_get_event, outlook_find_meeting_times), but the description provides no context for choosing this one.

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

outlook_list_foldersC

List all email folders

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoMaximum number of folders to return
includeHiddenNoInclude hidden folders
includeChildFoldersNoInclude nested child folders

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, and the description only states 'List all email folders,' lacking details on filtering (hidden/child), limits, or side effects.

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

Conciseness4/5

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

Extremely concise (one short sentence), but at the cost of missing necessary context; no fluff.

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

Completeness2/5

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

Given three parameters and no output schema, the description should explain filtering options and output format; it only says 'List all email folders,' which is inadequate.

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

Parameters3/5

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

Schema descriptions cover 100% of parameters, so baseline is 3; the tool description adds no extra meaning beyond what the schema already provides.

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

Purpose4/5

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

The description 'List all email folders' clearly states the verb (list) and resource (email folders), but it does not differentiate from sibling tools like outlook_create_folder or outlook_get_folder_stats.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives; no mention of context or preconditions for using the parameters.

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

outlook_list_rulesB

List all inbox message rules

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'List', missing details such as permissions required, whether it's read-only (though implied), or what the output contains. For a tool with zero parameters, more context could be provided.

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

Conciseness4/5

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

The description is a single short sentence, which is concise and front-loaded. It could be slightly more informative, but it doesn't waste words.

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

Completeness3/5

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

Given the complexity (simple list operation, no parameters, no output schema) and no annotations, the description is adequate but minimal. It doesn't explain what the rules contain or the return format, though an output schema is absent. For a zero-parameter tool, it's borderline complete but lacks helpful context.

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

Parameters4/5

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

There are no parameters (0 count), so the baseline is 4. The description doesn't need to explain parameters, and it doesn't add any misleading information.

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

Purpose4/5

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

The description states a specific verb ('List') and resource ('all inbox message rules'), which is clear. It doesn't explicitly distinguish from siblings like outlook_delete_rule or outlook_create_rule, but the list vs. mutate distinction is obvious.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites or contexts, leaving usage entirely to inference from the name.

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

outlook_list_sharepoint_filesB

List files in SharePoint sites or OneDrive folders using the same authenticated session

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of files to return
siteIdNoSharePoint site ID (optional)
driveIdNoDrive ID (defaults to user's OneDrive if not specified)
orderByNoField to order results byname
folderIdNoSpecific folder ID to list contents of

TDQS

B3.1/5.0
Behavior2/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 merely states a list operation but fails to mention read-only nature, default behavior (e.g., defaults to OneDrive), pagination, error handling, or rate limits. Significant gaps.

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

Conciseness4/5

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

The description is a single concise sentence with no fluff. However, it could be slightly more informative without sacrificing brevity (e.g., mentioning that siteId/driveId default to OneDrive).

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

Completeness2/5

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

For a tool with 5 optional parameters and no output schema, the description is insufficient. It does not explain how to target SharePoint vs OneDrive, what the output format is, or how the parameters interact. Additional context is needed for effective use.

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

Parameters3/5

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

Schema coverage is 100% meaning all parameters have descriptions in the schema. The description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the action ('List files'), the resource ('SharePoint sites or OneDrive folders'), and the authentication context ('using the same authenticated session'). It distinguishes the tool from siblings like 'outlook_get_sharepoint_file' which likely targets a single file.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., 'outlook_get_sharepoint_file' for a single file). The description only mentions the authentication context but does not state prerequisites or exclusion criteria.

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

outlook_mark_as_readA

Mark an email as read or unread

ParametersJSON Schema
NameRequiredDescriptionDefault
isReadNoWhether to mark as read (true) or unread (false)
messageIdYesThe ID of the email to mark

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral details. It states the basic action but does not disclose side effects (e.g., whether it triggers notifications), prerequisites (e.g., message must exist), or return behavior. Adequate for a simple toggle but minimal.

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

Conciseness5/5

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

A single, front-loaded sentence with zero wasted words. Every element is necessary and clear.

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

Completeness4/5

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

For a simple tool with 2 parameters, no output schema, and no nested objects, the description adequately conveys the core function. It could mention the response (e.g., success status) but is otherwise complete.

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

Parameters3/5

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

Both parameters (messageId, isRead) have descriptions in the schema with 100% coverage. The tool description adds little new meaning beyond 'mark as read or unread', which mirrors the isRead description. Baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Mark an email as read or unread' clearly states the action (mark) and the resource (email) with a specific range of states (read/unread). This distinguishes it from sibling tools like move_email or flag_email, which have 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 Guidelines2/5

Does 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 vs. alternatives, such as using outlook_get_email to check status first or which scenarios require marking as unread. The description lacks context for decision-making.

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

outlook_move_emailB

Move an email to a different folder

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesThe ID of the email to move
destinationFolderIdYesThe ID of the destination folder

TDQS

B3.3/5.0
Behavior2/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 of behavioral disclosure. It only states the action 'move' but does not detail side effects (e.g., permission requirements, whether the email is removed from the source folder, or rate limits). This is insufficient for a mutation 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/5

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

The description is a single, front-loaded sentence with no wasted words. It conveys the core function efficiently.

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

Completeness3/5

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

While the tool is simple with two required parameters and no output schema, the description lacks behavioral context (e.g., what happens to the original folder after move). Basic completeness is achieved, but more details would improve agent understanding.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate since the schema already explains the parameters adequately.

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

Purpose5/5

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

The description clearly states the action ('Move') and the resource ('an email to a different folder'). It distinguishes itself from sibling tools like 'outlook_archive_email' and 'outlook_delete_email' by specifying the move operation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., archive, copy, delete) or when not to use it. Given the large number of sibling tools, explicit usage context would be valuable.

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

outlook_rename_folderB

Rename an existing email folder

ParametersJSON Schema
NameRequiredDescriptionDefault
folderIdYesID of the folder to rename
newDisplayNameYesNew name for the folder

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description should disclose side effects, permissions, or limitations. It only states the action, omitting details like allowed name length or impact on folder structure.

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

Conciseness4/5

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

Single sentence, no wasted words. However, for a simple action, it is efficient and front-loaded.

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

Completeness3/5

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

Covers the basic purpose but lacks behavioral context (e.g., success indicator, error conditions). No output schema, so return info is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds no extra meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Rename') and resource ('existing email folder'), distinguishing it from sibling tools like create_folder or move_email.

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

Usage Guidelines2/5

Does 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, prerequisites (e.g., folder existence), or when not to use it. Alternatives are not mentioned.

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

outlook_reply_allB

Reply to all recipients of an existing email

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoReply message body
commentNoOptional comment for the reply
bodyTypeNoBody content typetext
messageIdYesThe ID of the email to reply all to

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description lacks behavioral details such as whether the reply is sent immediately, permission requirements, or effects on the original email. The description is too brief to compensate for missing annotations.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the core purpose. It is concise but could be slightly expanded for context without being verbose.

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

Completeness2/5

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

Given no output schema and no annotations, the description lacks completeness. It does not explain return values, threading behavior, or when the action takes effect, leaving gaps for an AI agent.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no additional meaning beyond the schema. Baseline of 3 is appropriate as the schema adequately describes each parameter.

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

Purpose5/5

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

The description clearly states the action and resource: 'Reply to all recipients of an existing email'. This distinguishes it from the sibling outlook_reply_to_email which replies only to the sender.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like outlook_reply_to_email. The description relies on the name for differentiation, which may be insufficient for an AI agent.

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

outlook_reply_to_emailB

Reply to an existing email

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoReply message body
commentNoOptional comment for the reply
bodyTypeNoBody content typetext
messageIdYesThe ID of the email to reply to

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic action with no disclosure of side effects, required permissions, threading behavior, or whether the reply is sent immediately. This is insufficient for a write operation.

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

Conciseness4/5

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

The description is a single concise sentence with no redundant words. However, it could be slightly expanded to include essential context without adding waste.

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

Completeness2/5

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

Given the tool has 4 parameters and no output schema, the description is too minimal. It lacks information on how the reply is composed, whether attachments are supported, and the behavior of the comment parameter. The agent would need to infer details from the schema alone.

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

Parameters3/5

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

Schema coverage is 100% with all parameters having descriptions. The description does not add meaning beyond the schema. Baseline 3 is appropriate as the schema handles parameter semantics adequately.

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

Purpose5/5

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

The description 'Reply to an existing email' clearly states the action (reply) and the resource (existing email). It is specific enough to distinguish from siblings like outlook_reply_all and outlook_forward_email, which are different actions.

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

Usage Guidelines2/5

Does 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 outlook_reply_all or outlook_forward_email. The description does not mention the context or exclusions, leaving the agent without decision support.

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

outlook_respond_to_inviteB

Respond to a meeting invitation

ParametersJSON Schema
NameRequiredDescriptionDefault
commentNoOptional comment
eventIdYesThe ID of the event to respond to
responseYesResponse type
sendResponseNoWhether to send a response email (default: true)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only says 'Respond to a meeting invitation'. It fails to disclose side effects (e.g., sending a response email), default behavior (sendResponse defaults to true), or required permissions. The tool's mutation effect is implied but not explicitly stated.

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

Conciseness4/5

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

The description is a single concise sentence that communicates the core action without unnecessary words. However, it is so brief that it omits important context; one could argue it is under-specified rather than efficiently concise.

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

Completeness2/5

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

Given the tool has 4 parameters, no annotations, and no output schema, the description is too sparse. It does not explain that the eventId must belong to an invitation, that response sends a reply, or what happens after a response. More detail is needed for complete understanding.

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

Parameters3/5

Does 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 adds no extra meaning beyond what the schema already provides for each parameter. The enum values for 'response' are clear from the schema, and the comment parameter is self-explanatory.

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

Purpose5/5

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

The description 'Respond to a meeting invitation' clearly states the verb (respond) and resource (meeting invitation), distinguishing it from sibling tools like outlook_create_event or outlook_update_event. It identifies a specific action not covered by other tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as outlook_update_event or outlook_create_event. It does not specify that this is for invitations received from others, nor does it mention prerequisites like needing an invitation event ID.

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

outlook_scan_attachmentsC

Scan emails for large or suspicious attachments

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of emails to scan
folderNoFolder to scan (default: inbox)inbox
daysBackNoHow many days back to scan
maxSizeMBNoMaximum attachment size in MB to flag as large
suspiciousTypesNoFile extensions to flag as suspicious

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention whether the tool is read-only, has side effects, requires authentication, or has rate limits, leaving critical behavioral traits unknown.

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

Conciseness4/5

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

The description is a single sentence, concise and to the point. While it could include more detail, it avoids verbosity and is efficiently front-loaded.

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

Completeness2/5

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

The description does not explain the return format or what 'scan' produces (e.g., list of emails, actions taken). With no output schema, the agent lacks a complete picture of the tool's behavior.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already documents all parameters. The description adds no additional meaning beyond what the schema provides, matching the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the tool scans emails for large or suspicious attachments, which distinguishes it from listing or downloading attachments. However, it does not explicitly differentiate from sibling tools like 'outlook_list_attachments'.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor does it specify prerequisites or contraindications. The agent receives no context for decision-making.

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

outlook_schedule_online_meetingC

Schedule an online meeting (Teams/Skype)

ParametersJSON Schema
NameRequiredDescriptionDefault
endTimeYesEnd time
subjectYesMeeting subject
attendeesNoList of attendees
startTimeYesStart time
meetingProviderNoOnline meeting provider

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states the purpose but omits important details: permissions required, whether invitations are sent, what happens if no provider is selected, or side effects of scheduling.

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

Conciseness4/5

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

The description is a single sentence that is front-loaded with the key action and resource. It is concise without being wasteful, though slightly more detail could be added without losing conciseness.

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

Completeness2/5

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

Given the 5 parameters, no output schema, and no annotations, the description lacks completeness. It does not explain parameter formats, provider options, or return value, leaving gaps for an 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/5

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

Schema coverage is 100%, so each parameter is already described. The description adds no additional meaning beyond parameter names and schema comments. Baseline score of 3 is appropriate as no extra value is provided.

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

Purpose4/5

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

The description 'Schedule an online meeting (Teams/Skype)' clearly identifies the tool's action (schedule) and resource (online meeting). It distinguishes from siblings like outlook_create_event by specifying online meeting and provider, though it doesn't explicitly differentiate from other scheduling tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like outlook_create_event. There is no mention of prerequisites, when-not scenarios, or which meeting provider to choose.

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

outlook_search_emailsB

Search emails across all folders with advanced filters for analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoFilter emails from specific sender
limitNoMaximum number of emails to return. Default: 25. NOTE: If includeBody is true, this is strictly capped at 5 to prevent context overflow.
queryNoFree-text search query across email content
formatNoFormat of the body content (default: text)text
endDateNoEnd date for email search (ISO 8601 format)
foldersNoSpecific folders to search in
orderByNoSort order (e.g., "receivedDateTime desc")receivedDateTime desc
subjectNoSearch emails with specific subject text
truncateNoTruncate long email bodies (default: true)
maxLengthNoMaximum length for truncated body (default: 1000)
startDateNoStart date for email search (ISO 8601 format)
includeBodyNoInclude full email body content for analysis. WARNING: Setting this to true restricts the result limit to 5.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits, but it only states the basic purpose. It does not mention side effects, performance, or behavior with large results. The schema contains useful notes (e.g., limit capping with includeBody), but these are not in the description.

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

Conciseness4/5

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

The description is a single, concise sentence that conveys the core purpose without redundancy. It is appropriately front-loaded and avoids unnecessary detail, making it easy to parse.

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

Completeness2/5

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

Given the tool has 12 parameters and no output schema, the description is too brief. It does not explain the return format, pagination, or how 'advanced filters' are applied. The schema covers details, but the description alone is insufficient for full understanding.

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

Parameters3/5

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

Since schema description coverage is 100%, the baseline is 3. The description does not add any extra meaning beyond the schema's parameter descriptions. It does not compensate for the lack of enums or nested objects, but it also does not mislead.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Search emails across all folders with advanced filters for analysis'. It specifies the verb (search) and resource (emails), and implies differentiation from simpler list tools like 'outlook_list_emails' by mentioning 'advanced filters'.

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

Usage Guidelines3/5

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

The description lacks explicit guidance on when to use this tool vs alternatives. It hints at advanced use ('advanced filters') but does not define scenarios, exclusions, or mention siblings like 'outlook_list_emails' or 'outlook_get_email'.

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

outlook_send_emailB

Send an email through Outlook

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients
toYesRecipient email addresses
bccNoBCC recipients
bodyYesEmail body content
subjectYesEmail subject
bodyTypeNoBody content typetext
preserveUserStylingNoApply user's default Outlook styling, font preferences, and signature

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description should disclose behavior. It only says 'Send an email' without mentioning side effects (e.g., immediate sending), required permissions, or error responses. Minimal transparency.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure or additional detail. It is not verbose, but could be more informative within the same length.

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

Completeness2/5

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

No output schema exists, so description should explain return values or confirmation. It does not mention success/failure indications, rate limits, or what happens after sending. Incomplete for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100% (all parameters described). The tool description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description 'Send an email through Outlook' is clear and specific. It distinguishes from sibling tools like 'outlook_create_draft' or 'outlook_forward_email' by indicating direct sending.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. For example, it doesn't mention when to use this instead of 'outlook_create_draft' or 'outlook_reply_to_email'.

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

outlook_update_eventB

Update an existing calendar event

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoNew end time
bodyNoNew body content
startNoNew start time
eventIdYesThe ID of the event to update
subjectNoNew subject
locationNoNew location
attendeesNoNew list of attendees

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description does not disclose behavioral traits such as effect on existing data, error handling, or whether partial updates are supported. The description only restates the function name.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is concise and front-loaded with the core action, though it could be slightly more informative without sacrificing brevity.

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

Completeness2/5

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

Given the complexity of 7 parameters (including nested objects) and no output schema, the description is far too minimal. It does not explain how parameters interact, expected formats, or what the function returns.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so baseline is 3. The tool description adds no additional semantic context beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the action ('Update') and the resource ('existing calendar event'), making the tool's purpose unambiguous. It is specific and distinguishes from sibling tools like 'create_event'.

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

Usage Guidelines2/5

Does 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 (e.g., creating vs. updating events). There is no mention of prerequisites or scenarios where this tool is not appropriate.

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

outlook_validate_event_datetimesC

Validate event start and end times

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd time to validate
startYesStart time to validate

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states 'validate,' implying a read-only check, but does not confirm side effects, error handling, or return behavior. This lack of detail fails to inform the agent about consequences or output.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. However, it is somewhat under-specified, but conciseness is still a strength given the minimal text.

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

Completeness2/5

Given 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 should explain what the validation returns (e.g., boolean, errors). It does not. With many sibling tools, the context of when to validate is unclear. The description is incomplete for understanding the tool's full behavior.

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

Parameters3/5

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

The input schema covers all parameters with basic descriptions (e.g., 'Start time to validate'). Since schema description coverage is 100%, the description adds no extra meaning beyond what the schema already provides. The description does not clarify format requirements or constraints for dateTime or timeZone.

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

Purpose3/5

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

The description states 'Validate event start and end times,' which identifies the action and resource. However, it does not specify what validation entails (e.g., format, logical consistency), making it somewhat vague. Without distinguishing from siblings like outlook_check_availability or outlook_find_meeting_times, the purpose is only partially clear.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as before creating or updating an event. No exclusions or context are provided, leaving the agent without clear direction on appropriate usage.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 46 tool updatesv2.0.0
    • First observedoutlook_add_attachment
    • First observedoutlook_archive_email
    • First observedoutlook_batch_process_emails
    • First observedoutlook_build_recurrence_pattern
    • First observedoutlook_categorize_email
    • First observedoutlook_check_availability
    • First observedoutlook_check_calendar_permissions
    • First observedoutlook_create_draft
    • First observedoutlook_create_event
    • First observedoutlook_create_folder
    • First observedoutlook_create_recurrence_helper
    • First observedoutlook_create_recurring_event
    • First observedoutlook_create_rule
    • First observedoutlook_delete_email
    • First observedoutlook_delete_event
    • First observedoutlook_delete_rule
    • First observedoutlook_download_attachment
    • First observedoutlook_find_meeting_times
    • First observedoutlook_flag_email
    • First observedoutlook_forward_email
    • First observedoutlook_get_busy_times
    • First observedoutlook_get_calendar_view
    • First observedoutlook_get_email
    • First observedoutlook_get_event
    • First observedoutlook_get_folder_stats
    • First observedoutlook_get_sharepoint_file
    • First observedoutlook_list_attachments
    • First observedoutlook_list_calendars
    • First observedoutlook_list_emails
    • First observedoutlook_list_events
    • First observedoutlook_list_folders
    • First observedoutlook_list_rules
    • First observedoutlook_list_sharepoint_files
    • First observedoutlook_mark_as_read
    • First observedoutlook_move_email
    • First observedoutlook_rename_folder
    • First observedoutlook_reply_all
    • First observedoutlook_reply_to_email
    • First observedoutlook_resolve_sharepoint_link
    • First observedoutlook_respond_to_invite
    • First observedoutlook_scan_attachments
    • First observedoutlook_schedule_online_meeting
    • First observedoutlook_search_emails
    • First observedoutlook_send_email
    • First observedoutlook_update_event
    • First observedoutlook_validate_event_datetimes

TDQS

B3.2/5.0

Scored across 46 tools

Disambiguation4/5

Tool purposes are mostly distinct, but several recurring-event and scheduling tools overlap: outlook_create_recurring_event, outlook_create_recurrence_helper, and outlook_build_recurrence_pattern have unclear boundaries about which to use. Similarly outlook_check_availability, outlook_get_busy_times, and outlook_find_meeting_times all address scheduling availability with subtle distinctions.

Naming Consistency5/5

All 46 tools follow a consistent outlook_verb_noun snake_case pattern with no deviations. The prefix makes tool origins clear and names are uniformly readable.

Tool Count2/5

With 46 tools, this is well beyond the typical 3-15 well-scoped range and suggests feature sprawl. While email plus calendar plus SharePoint integration is broad, several tools appear redundant (three recurrence builders, multiple availability tools), indicating over-proliferation for the stated scope.

Completeness4/5

The surface covers email CRUD, folders, rules, attachments, calendar events, scheduling, and SharePoint file access comprehensively with few obvious gaps. Minor omissions like calendar delete/permission-management tools are workable around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A powerful MCP server that enables AI assistants to interact with Microsoft Graph API for managing Outlook emails, Calendar events, OneDrive files, and Contacts through natural language commands.
    35
    56
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    A production-ready MCP server that provides secure, delegated access to Microsoft 365 services including Email, SharePoint, OneDrive, and Calendar. It enables AI models to search messages, browse files, manage calendar events, and parse document contents using OAuth 2.1 authentication.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    A lightweight MCP server for personal Microsoft Outlook/Hotmail accounts, enabling email search, reading, attachment management, and folder operations via Microsoft Graph API with OAuth device-code flow.
    6
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Python-based MCP server for Microsoft 365 Outlook email operations using OAuth 2.0 Client Credentials Flow, enabling automated email management for autonomous agents.
    MIT