Skip to main content
Glama
ftaricano

mcp-onedrive-sharepoint

by ftaricano

MCP OneDrive/SharePoint Server

License: MIT Node.js MCP TypeScript

MCP server and CLI for Microsoft Graph focused on OneDrive, SharePoint and related document workflows. It uses 1Password-provisioned client credentials only, starts with a safe 10-tool core profile, and can opt into advanced tools for trusted automation.

Onboarding commands on a clean clone:

  • npm run build

  • npm run lint

  • npm test

  • npm run ci

Tool profiles

The server defaults to MCP_TOOL_PROFILE=core, a smaller public surface intended for day-to-day document workflows:

  • health_check, list_drives

  • discover_sites, resolve_site

  • list_files, search_files, get_file_metadata

  • download_file, upload_file, create_folder

Set MCP_TOOL_PROFILE=full to expose advanced and destructive tools for trusted environments:

  • Files: list_files, download_file, upload_file, create_folder, move_item, delete_item, search_files, get_file_metadata, share_item, copy_item

  • SharePoint: discover_sites, resolve_site, list_site_lists, get_list_schema, list_items, get_list_item, create_list_item, update_list_item, delete_list_item

  • Utilities: health_check, get_user_profile, list_drives, global_search

  • Advanced: advanced_share, manage_permissions, check_user_access, sync_folder, batch_file_operations, storage_analytics, version_management, excel_operations, excel_analysis

batch_operations is intentionally not part of either profile by default because it is a raw Microsoft Graph escape hatch. Enable it only for admin/debug workflows with MCP_ENABLE_EXPERIMENTAL_GRAPH_BATCH=true.

You can also remove individual tools with MCP_DISABLED_TOOLS=delete_item,manage_permissions.

Related MCP server: OneDrive/SharePoint MCP Server

Why this repo

  • one MCP server for both OneDrive and SharePoint document libraries

  • matching ods CLI for shell scripting and one-shot automation

  • 1Password-only client credentials for interactive and unattended use

  • site aliases loaded from a local registry so tenant IDs stay out of git

  • pagination/resource helpers for driveId, siteId, itemId and path targeting

Requirements

  • Node.js 18+

  • A Microsoft Entra ID / Azure AD confidential app registration with Application permissions (Files.ReadWrite.All, Sites.ReadWrite.All) and admin consent. The 1Password owner must provision cpz::SP_CLIENT_ID, cpz::SP_CLIENT_SECRET, and cpz::SP_TENANT_ID; the tenant must be a specific UUID, not common.

Installation

git clone https://github.com/ftaricano/mcp-onedrive-sharepoint.git
cd mcp-onedrive-sharepoint
npm install

Operational wrappers

Important operational rule:

  • use this MCP on demand

  • do not keep it permanently bound/loaded in Hermes or Claude Code when not needed

  • prefer one-shot spcall / mcporter --stdio execution so the process exits right after the call and does not accumulate zombie or idle MCP processes

  • the spcall wrapper includes post-call cleanup for stray repo-local MCP child processes

This repo includes lightweight wrappers for local operational use:

  • ./scripts/run-stdio.sh: start the MCP stdio server after resolving required values from 1Password

  • ./scripts/spcall.sh: run ad-hoc mcporter calls against the local MCP server

  • npm run stdio: same as ./scripts/run-stdio.sh

  • npm run spcall -- <tool> ...: same as ./scripts/spcall.sh <tool> ...

Quick examples:

npm run build
./scripts/spcall.sh health_check
./scripts/spcall.sh list_drives
./scripts/spcall.sh list_files driveId=b!abc123 path=/Shared%20Documents

Tenant-specific site aliases and drive ids are loaded from a local file — see Site registry below.

CLI (ods)

Every MCP tool is also exposed as a plain subcommand through the ods CLI. It shares the same auth, config and handlers as the MCP server, so anything the MCP does is one-shot runnable from a terminal or a shell script.

npm run build
# `npm install` does NOT put `ods` on your PATH. Link it once, e.g.:
#   npm link            # or: ln -s "$PWD/scripts/ods.sh" ~/bin/ods
ods list                                  # list all tools with descriptions
ods schema list_files                     # print JSON schema for a tool
ods auth                                  # exits: delegated token persistence is intentionally disabled
ods <tool> --key=value [--key value]      # invoke a tool with CLI flags
ods <tool> --json '{"k":"v"}'             # pass the full payload as JSON

During development, rebuild before npm run cli -- <tool> ...; the command uses the same packaged 1Password launcher as the installed ods bin.

Examples

ods health_check
ods list_files --site=primary --path=/
ods list_files --driveId=b!abc --path=/Shared%20Documents --limit=50
ods upload_file --json '{"driveId":"b!abc","path":"/x.txt","content":"hello"}'

Rules for flags

  • --key=value and --key value are both accepted.

  • true / false / null and numeric strings are coerced automatically; anything else stays a string.

  • Bare flags (no value, or followed by another flag) become true.

  • --json '<payload>' takes a JSON object; individual --key=value flags layered on top override fields from the payload. Use this for tools with nested objects/arrays (e.g. advanced Excel tools).

  • Output is the raw tool payload (usually pretty-printed JSON). If the handler returns an error envelope, the process exits with code 2.

Configuration

The server reads the following environment variables:

# These values are injected only by scripts/with-onepassword-graph-env.sh:
# MICROSOFT_GRAPH_CLIENT_ID
# MICROSOFT_GRAPH_TENANT_ID (specific UUID)
# MICROSOFT_GRAPH_CLIENT_SECRET
MICROSOFT_GRAPH_SCOPES=Files.ReadWrite.All,Sites.ReadWrite.All,Directory.Read.All,User.Read,offline_access
MICROSOFT_GRAPH_BASE_URL=https://graph.microsoft.com/v1.0
MICROSOFT_GRAPH_TIMEOUT=30000
MICROSOFT_GRAPH_MAX_RETRIES=3
MICROSOFT_GRAPH_CACHE_ENABLED=true
MICROSOFT_GRAPH_CACHE_TTL=3600
MCP_TOOL_PROFILE=core
MCP_DISABLED_TOOLS=
MCP_ENABLE_EXPERIMENTAL_GRAPH_BATCH=false

Notes:

  • Graph credentials are resolved from 1Password for every supported npm command and packaged bin

  • process-local credential variables are reserved for the launcher and tests; .env is never loaded

  • set MCP_LOCAL_FILE_ROOT to constrain local upload/download/sync file access; if unset, local paths are constrained to the process working directory

Authentication modes

1Password client credentials

Every supported launcher resolves cpz::SP_CLIENT_ID, cpz::SP_CLIENT_SECRET, and cpz::SP_TENANT_ID through the canonical 1Password helper and injects the values only into its child process. There is no .env, Keychain, file cache, or delegated token fallback. npm run setup-auth and ods auth fail intentionally because the service account cannot persist delegated tokens; request owner-mediated provisioning instead.

Development commands

npm run build
npm run lint
npm test
npm run ci
npm start
npm run stdio
npm run spcall -- health_check

npm run ci is the local verification entrypoint and is also what GitHub Actions runs on every PR/push.

MCP behavior notes

Root site inclusion

discover_sites.includePersonalSite=true currently attempts to append the tenant root SharePoint site (/sites/root) when it is available to the authenticated user. It does not discover or synthesize a personal OneDrive site.

Pagination

The following tools now expose consistent pagination metadata in their JSON payloads:

  • list_files

  • search_files

  • discover_sites

  • list_site_lists

  • list_items

When Microsoft Graph returns @odata.nextLink, the response includes:

  • pagination.returned

  • pagination.limit

  • pagination.totalCount when available

  • pagination.nextPageToken

  • pagination.hasMore

Pass pageToken back to the same tool to continue paging.

Drive/site targeting

Core file listing/search/download flows now accept:

  • siteId for a SharePoint site's default drive

  • driveId for a specific document library or drive

  • path-based addressing where supported

This is the current foundation for moving beyond a /me/drive-only model.

Site registry

The resolver can target named SharePoint sites by alias (e.g. site=primary). The registry is loaded from an external JSON file so no tenant-specific ids are committed:

  • Copy config/sites.example.json to config/sites.local.json (gitignored) and fill in your values.

  • Or set MCP_SITES_CONFIG_PATH to point at a different JSON file.

  • If the file is missing, the registry stays empty and the tools only accept explicit siteId, siteUrl, or driveId.

Each site entry looks like:

{
  "key": "primary",
  "name": "Primary",
  "siteId": "yourtenant.sharepoint.com,<guid>,<guid>",
  "siteUrl": "https://yourtenant.sharepoint.com/sites/Primary",
  "driveId": "b!<drive-id>",
  "aliases": ["primary", "/sites/Primary"]
}

MCP stdio snippet

Use the wrapper as the MCP command so Graph credentials are resolved from 1Password:

{
  "mcpServers": {
    "sharepoint": {
      "command": "/absolute/path/to/mcp-onedrive-sharepoint/scripts/run-stdio.sh"
    }
  }
}

Example tool inputs

List files from a specific drive

{
  "driveId": "b!abc123",
  "path": "/Shared Documents",
  "limit": 50
}

Continue a paginated file listing

{
  "driveId": "b!abc123",
  "pageToken": "https://graph.microsoft.com/v1.0/drives/b!abc123/root/children?$skiptoken=..."
}

Search files in a site drive

{
  "siteId": "contoso.sharepoint.com,123,456",
  "query": "quarterly report",
  "limit": 25
}

List SharePoint list items with pagination

{
  "siteId": "contoso.sharepoint.com,123,456",
  "listId": "9c6b8b70-0000-0000-0000-111111111111",
  "orderBy": "Created desc",
  "limit": 100
}

Troubleshooting

  • 403 Forbidden on SharePoint lists/drives: the app registration lacks permission to the target site. Check application permissions and admin consent with the owner.

  • 404 on a driveId or siteId: the identifier is stale or the resource was deleted. Use list_drives / discover_sites to re-discover.

  • Build fails on a clean clone: make sure Node.js is 18+ and run npm install before npm run build.

  • AADSTS700016 or 401: ensure the 1Password owner has provisioned a specific tenant UUID (not common) and Application permissions have admin consent in Azure AD.

  • AADSTS7000215 (invalid client secret): rotate the secret in the app registration and have the 1Password owner update cpz::SP_CLIENT_SECRET.

Security

This server handles Microsoft Graph client credentials and access to corporate file storage. Treat it accordingly:

  • .env, tokens.json, credentials.json, and secret-store exports are never committed — see .gitignore.

  • tenant-specific siteId, driveId, SharePoint URLs and internal operational paths should stay in local/private docs, not in this public repo.

  • Report security issues privately via GitHub security advisories — do not open a public issue.

  • If a client secret leaks, revoke it in Azure AD and ask the 1Password owner to rotate cpz::SP_CLIENT_SECRET.

Contributing

Issues and PRs welcome. Before opening a PR:

  • npm run ci passes (build + lint + tests)

  • one focused change per PR

  • no credentials, tenant-specific ids, or internal paths in commits or README

License

MIT © Fernando Taricano

Current limitations

  • client credentials require Application permissions, admin consent, and owner-mediated provisioning in 1Password

  • advanced/destructive tools require MCP_TOOL_PROFILE=full

  • raw Graph batch calls require MCP_ENABLE_EXPERIMENTAL_GRAPH_BATCH=true

Available Tools

33 tools
advanced_shareC

Create advanced sharing links with custom permissions and email notifications

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID to share
itemPathNoAlternative: item path to share
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
recipientsYesEmail addresses of recipients
permissionNoPermission levelread
requireSignInNoRequire sign-in to access
sendInvitationNoSend email invitation
messageNoCustom message for invitation email
expirationDateTimeNoLink expiration (ISO 8601 format)
retainInheritedPermissionsNoKeep existing inherited permissions

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 must disclose behavioral traits. It mentions creating links with permissions and notifications but omits side effects, authorization requirements, or effects on existing permissions beyond the parameter hint.

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, concise sentence with no wasted words. It is front-loaded and directly states the tool's 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?

With 13 parameters, 1 required, and no output schema, the description is too minimal. It fails to explain return values, error handling, or provide sufficient context for an agent to use the tool effectively.

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 some context ('custom permissions', 'email notifications') but does not significantly enhance parameter understanding 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 the verb 'Create' and the resource 'sharing links' with custom permissions and notifications. It distinguishes from the sibling tool 'share_item' by implying additional capabilities, but it does not explicitly differentiate.

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 over alternatives, nor any conditions or prerequisites. It only states the function, leaving the agent to infer usage context.

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

batch_file_operationsC

Perform multiple file operations in a single batch

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesArray of operations to perform
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
stopOnErrorNoStop processing if an operation fails
parallelNoExecute operations in parallel (faster but may hit rate limits)

TDQS

C2.8/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 disclosing behavioral traits. It does not explain execution order, atomicity, error handling beyond what 'stopOnError' suggests, or potential rate limiting effects, leaving significant gaps for a batch 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 lacks structure. It could include brief sections for behavior, use cases, or important notes without adding 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?

Given the complexity of batch operations with sub-operations and numerous parameters, the description is too brief. It does not explain how the batch is processed (sequential vs parallel), partial failure handling, or output behavior, leaving the agent without critical 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 coverage is 100% so each parameter is already documented in the schema. The description adds no extra meaning beyond what is in the schema, meeting 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 clearly states the tool performs multiple file operations in a single batch. It is specific about the verb 'perform' and resource 'file operations', but does not distinguish from the sibling tool 'batch_operations' which may have overlapping functionality.

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 individual operation tools like upload_file, download_file, or move_item. The description lacks context for when batching is appropriate or beneficial.

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

batch_operationsB

Execute multiple Graph API operations in a single batch request

ParametersJSON Schema
NameRequiredDescriptionDefault
requestsYesArray of requests to execute in batch
continueOnErrorNoContinue processing other requests if one fails

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, yet the description does not disclose behavioral traits such as error handling (beyond the continueOnError parameter), rate limits, authentication requirements, or response structure. The description only restates the tool's basic function.

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 waste. However, it lacks structured formatting (e.g., bullet points) that could improve readability for an agent.

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 batch operations (array of requests, error continuation), the description omits critical context: how responses are returned, request size limits, dependency behavior, and output structure. Without output schema or annotations, the description is 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%, so the input schema already describes all parameters and their purposes. The description adds no additional semantic information beyond what is in the schema.

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: 'Execute multiple Graph API operations in a single batch request'. The verb 'execute' and resource 'multiple Graph API operations' are specific and distinctive from siblings like batch_file_operations.

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 individual API calls or other sibling tools. No alternatives, prerequisites, 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.

check_user_accessB

Check what access a specific user has to a file or folder

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID to check
itemPathNoAlternative: item path
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
userEmailYesEmail address of the user to check
includeInheritedNoInclude inherited permissions

TDQS

B3.2/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 fully disclose behavioral traits. It states only the purpose and does not reveal that the tool is read-only, what permissions are returned, or any side effects. The agent lacks critical behavioral context.

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

Conciseness5/5

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

The description is a single sentence starting with the verb 'Check'. It is extremely concise and contains no redundant information, making it efficient for an AI agent 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 8 parameters and no output schema, the description is incomplete. It fails to explain how to use the various location identifiers (itemId, itemPath, siteId, etc.) or what the return value looks like, leaving significant gaps for tool usage.

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 described. The tool description adds no extra semantic detail beyond the schema, meeting the baseline for high-coverage cases but not exceeding it.

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 action: 'Check what access a specific user has to a file or folder'. The verb 'Check' and resource 'access' are specific, and the tool is well-distinguished from siblings like 'manage_permissions' (which modifies) and 'share_item' (which shares).

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 like 'manage_permissions' or 'share_item'. It does not mention that this is a read-only operation or any exclusions, 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.

copy_itemC

Copy a file or folder in OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID to copy
itemPathNoAlternative: item path to copy
destinationFolderIdNoDestination folder ID
destinationFolderPathNoAlternative: destination folder path
newNameNoNew name for the copied item (optional)
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
destinationSiteIdNoDestination SharePoint site ID (optional)

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 the basic operation. It does not disclose permissions needed, whether the operation is async, overwrite behavior, or any side effects. For a copy operation, more transparency is expected.

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 is concise with no fluff. However, it lacks structure (e.g., bullet points) and could be expanded slightly for clarity 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, no output schema, and no annotations, the description is insufficient. It does not explain return values, error handling, or usage patterns, making it incomplete for an AI agent to use 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 descriptions cover 100% of parameters, so the description adds no additional meaning. Baseline score is 3. However, the description does not clarify parameter relationships or precedence (e.g., itemPath vs itemId), which could be improved.

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 'Copy a file or folder in OneDrive or SharePoint', clearly specifying the action (copy) and resource (file/folder) with platform context. However, it does not differentiate from sibling 'move_item', but the purpose is still 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 like 'move_item' or other file operations. The description lacks context for prerequisites, such as required parameters or scenarios.

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

create_folderB

Create a new folder in OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFolder name
parentPathNoParent folder path (e.g., "/Documents" or "" for root)
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)

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 must disclose behavioral traits. It does not explain idempotency, error behavior on existing folders, authorization needs, or side effects, which are critical for a creation 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, but it could be expanded with minimal additional length to add value about parameter usage or behavior.

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 6 parameters and no output schema or annotations, the description is insufficient. It lacks details on how to specify location (parentPath, driveId), service differentiation, and return values, making it incomplete for effective tool 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?

All parameters have descriptions in the input schema (100% coverage), so the description adds no extra meaning beyond the schema. A score of 3 is appropriate as the schema already does the heavy lifting.

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 creates a new folder in OneDrive or SharePoint, with a specific verb and resource, distinguishing it from sibling tools that handle files, lists, etc.

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, no prerequisites, and no distinction between OneDrive and SharePoint usage contexts.

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

create_list_itemB

Create a new item in a SharePoint list

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
listIdYesSharePoint list ID
fieldsYesField values for the new item (key-value pairs)
contentTypeNoContent type ID (optional)

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 implies a write operation but does not mention side effects, error conditions, authorization needs, or output behavior. Incomplete 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?

Single sentence with no redundancy. Efficiently communicates the core purpose without wasted words.

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 (6 params, nested object, no output schema, no annotations), the description is insufficient. It lacks context about return values, error handling, required permissions, and parameter relationships.

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 adds no additional meaning beyond the schema's parameter descriptions, which already exist. Does not explain how fields interact or how site identifiers are resolved.

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 'Create a new item in a SharePoint list' clearly states the action (create) and the resource (item in a SharePoint list), distinguishing it from siblings like update_list_item, delete_list_item, etc.

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 (e.g., copy_item, upload_file) or prerequisites (e.g., need listId already known, user permissions). The description is silent on context.

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

delete_itemB

Delete a file or folder from OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID to delete
itemPathNoAlternative: item path to delete
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
permanentNoPermanently delete (bypass recycle bin)

TDQS

B3.2/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 omits important behaviors like default recycle bin behavior, permission requirements, or cascading effects. The 'permanent' parameter hints at bypassing recycle bin but is not explained in description.

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, concise and front-loaded with essential information. No unnecessary words.

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 high schema coverage, description lacks completeness for a tool with 7 parameters and no output schema. Does not explain how to choose between itemId and itemPath, or how site context is resolved. Missing guidance on required fields (none listed, but likely needed).

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 100% of parameters with descriptions. Description adds no additional meaning beyond what the schema provides. 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?

Description clearly states verb (Delete), resource (file or folder), and location (OneDrive or SharePoint). Effectively distinguishes from sibling tools like copy_item or move_item.

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. Siblings include delete_list_item and batch_operations, but no context is provided for selection. No prerequisites or exclusions mentioned.

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

delete_list_itemC

Delete an item from a SharePoint list

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
listIdYesSharePoint list ID
itemIdYesList item ID to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility. 'Delete an item' implies an irreversible action, but no further behavioral traits are disclosed (e.g., permanence, error handling, cascading 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?

The description is a single sentence with no fluff, achieving high conciseness. However, it may be too minimal at the cost of missing valuable information.

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 no output schema and 5 parameters (only 2 required), the description fails to explain how to use optional parameters or what the return values are. It lacks completeness for a delete 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?

Schema description coverage is 100%, so each parameter is described in the input schema. The description adds no additional meaning beyond the schema, meeting the baseline 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 clearly states the verb 'delete' and the resource 'item from a SharePoint list'. It distinguishes from sibling tools like create, update, get, copy, and move. However, it does not clarify the difference from 'delete_item', which is also a sibling.

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 'delete_item'. No prerequisites or context (e.g., permissions) are mentioned. The description provides no usage context.

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

discover_sitesC

Discover SharePoint sites accessible by the user

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoSearch term to filter sites by name or description
limitNoMaximum number of sites to return
includePersonalSiteNoAlso include the tenant root SharePoint site (`/sites/root`) when available
pageTokenNoOpaque pagination token from a previous response (Graph nextLink)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. Only states purpose; no disclosure of read-only nature, pagination handling, rate limits, or other behavioral traits beyond paraphrasing the tool 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?

Single sentence, front-loaded. Efficient but very sparse; 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?

With 4 optional parameters and no output schema, description should explain return value (likely list of sites) and parameter interactions. Currently too brief for a tool with filtering, pagination, and a special include flag.

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. Description adds no parameter-level detail beyond schema; for example, does not clarify how search filters or how limit affects results.

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?

Clear verb-resource pairing: 'Discover SharePoint sites accessible by the user.' Distinguishes from siblings like resolve_site (specific site) and global_search (broader). Could be more explicit about listing all accessible sites.

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 siblings. Implied context from purpose (listing accessible sites) but lacks when-not-to-use or alternative suggestions.

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

download_fileB

Download a file from OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdNoFile item ID
filePathNoAlternative: file path (e.g., "/Documents/report.xlsx")
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
outputPathNoLocal path to save the file (optional)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so description must disclose behavior. It fails to mention important details like file size limits, permissions, output format, or error handling. Merely states the action without behavioral context.

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

Conciseness4/5

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

Description is a single 8-word sentence, highly concise. However, it could be restructured to include key details without losing 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?

With 7 parameters and no required fields, the description is insufficient. It does not explain which combinations are valid or default behavior. No output schema, yet description omits return value.

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 100% of parameters with descriptions. The tool description adds no extra meaning beyond the schema, meeting the baseline expectation of 3.

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?

Description clearly states 'Download a file from OneDrive or SharePoint', specifying verb and resource. It distinguishes from sibling tools like upload_file and get_file_metadata.

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 get_file_metadata for metadata-only needs. No prerequisites or context provided.

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

excel_analysisB

Analyze data in Excel workbooks (statistics, pivot tables, data validation)

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoExcel file item ID
itemPathNoAlternative: Excel file path
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
analysisTypeYesType of analysis to perform
worksheetNoWorksheet nameSheet1
rangeNoCell range to analyze (optional, uses used range if not specified)

TDQS

B3.2/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 burden. It does not disclose whether the tool is read-only, modifies the workbook, requires specific permissions, or any side effects. The description is overly simplistic for a mutation-capable 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?

Single sentence, front-loaded with verb and resource, no wasted words. Efficiently communicates 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?

With 9 parameters, multiple analysis types, and no output schema, the description is too minimal. It lacks prerequisites, expected results, or guidance on interpreting analysis outcomes. Incomplete for a complex 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%, so the baseline is 3. The description adds a high-level summary but does not provide additional meaning beyond what the schema already describes. No extra context for parameters like siteId or analysisType.

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 'Analyze' and resource 'Excel workbooks', lists specific analysis types (statistics, pivot tables, data validation), and distinguishes from sibling tool 'excel_operations' which likely handles other Excel operations.

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, no exclusions or context for selecting specific analysis types. The listing of analysis types implies usage but lacks explicit direction.

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

excel_operationsC

Perform operations on Excel workbooks (read, write, formulas)

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoExcel file item ID
itemPathNoAlternative: Excel file path
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
operationYesOperation to perform
worksheetNoWorksheet nameSheet1
rangeNoCell range (e.g., "A1:C10")
valuesNoValues to write (2D array of cell values)
formulasNoFormulas to set (2D array of formula strings)
tableNameNoName for new table
hasHeadersNoWhether table has headers
chartTypeNoChart type to create
useSessionNoUse persistent session for better performance

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 must carry the full burden. It fails to disclose behavioral traits such as whether operations are destructive, authentication needs, rate limits, or session behavior beyond mentioning 'useSession'. The description lacks essential transparency.

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, front-loaded with key operations, no fluff. However, for a multi-operation tool, more structured listing would improve usability.

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 15 parameters and 8 enum operations, the one-sentence description is insufficient. No output schema or return behavior details. Much more context is needed for correct invocation.

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 detailed parameter descriptions. The tool description adds no extra meaning per parameter beyond the schema, so baseline 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 the tool performs operations on Excel workbooks, listing read, write, and formulas. It is specific about the resource (Excel workbooks) and verbs (perform operations), but does not differentiate from sibling 'excel_analysis'.

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 'excel_analysis' or when not to use it. No exclusions or context provided.

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

get_file_metadataC

Get detailed metadata for a file or folder

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID
itemPathNoAlternative: item path
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
includeVersionsNoInclude version history

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 'get metadata', implying a read-only operation, but provides no detail about permissions, potential errors, output size, or behavior when multiple parameters are supplied. The description is insufficient.

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 concise (one sentence) but lacks critical details such as parameter combinations or output. While it is front-loaded, it sacrifices completeness for brevity, making it only moderately effective.

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 7 parameters and no output schema or annotations, the description is too minimal. It does not explain how to use the parameters (e.g., required identification), what the metadata includes, or any ordering constraints. Important context is missing, making the tool harder to use 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 description coverage is 100% with clear parameter descriptions (e.g., 'Item ID', 'Alternative: item path'). The tool description adds no extra semantic information, but the schema already explains the parameters adequately. Baseline 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 'Get' and the resource 'detailed metadata for a file or folder', which is specific enough to distinguish it from sibling tools like delete_item or upload_file. However, it does not explicitly mention the SharePoint/OneDrive context that the parameters imply, slightly reducing clarity.

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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives like list_files or get_list_item, nor does it mention prerequisites or parameter selection rules.

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

get_list_itemB

Get a specific item from a SharePoint list

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
listIdYesSharePoint list ID
itemIdYesList item ID
expandNoComma-separated list of lookup fields to expand

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description bears the full burden for behavioral disclosure. It only states 'Get...' without confirming it is a read-only operation, whether it requires specific permissions, how errors are handled, or what happens if the item does not exist. 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.

Conciseness5/5

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

The description is a single, concise sentence with no extraneous words. It is front-loaded with the action and resource. Every word earns its place.

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 get operation with a well-documented schema and no output schema, the description is minimally complete. However, it lacks context on how it differs from similar tools (e.g., 'get_file_metadata') and does not indicate return format or potential errors, which a slightly more thorough description could address.

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 already has a clear description. The tool description adds no additional meaning beyond what the schema provides. The baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('a specific item from a SharePoint list'), clearly distinguishing it from sibling tools like 'list_items' (which lists multiple items) or 'create_list_item' (which creates). No ambiguity.

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 usage guidelines are provided; the description does not specify when to use this tool (e.g., for single-item retrieval) nor when to avoid it in favor of alternatives like 'list_items' or 'get_file_metadata'. The context is implied but not explicit.

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

get_list_schemaB

Get detailed schema information for a SharePoint list

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
listIdYesSharePoint list ID
includeContentTypesNoInclude content type information

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 must disclose behavioral traits. However, it only states what the tool does without mentioning side effects, permissions, or return behavior. It does not contradict annotations (none exist), but is insufficient.

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, very concise and front-loaded. However, it may be too brief, sacrificing completeness for brevity. Still, it is well-structured with no wasted words.

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 annotations and no output schema, the description should compensate by explaining what 'detailed schema information' includes and any caveats. It does not, making it incomplete for an agent to fully understand the tool's usage.

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 adds no additional meaning beyond the schema; it does not elaborate on parameter usage or constraints.

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 'Get detailed schema information for a SharePoint list', specifying the action (get), resource (schema information), and target (SharePoint list). It distinguishes from sibling tools like get_list_item or list_site_lists.

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. The description does not mention context or exclusions, 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.

get_user_profileA

Get detailed information about the authenticated user

ParametersJSON Schema
NameRequiredDescriptionDefault
includeManagerNoInclude manager information
includePhotoNoInclude profile photo metadata

TDQS

A3.7/5.0
Behavior3/5

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

The description does not disclose any behavioral traits beyond the fact that it retrieves data. Since no annotations are provided, the description should explicitly state that it is a read-only operation and mention any authentication requirements, but it does not.

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 with no unnecessary words or 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?

Given the lack of an output schema, the description should at least hint at the kind of information returned (e.g., name, email). 'Detailed information' is vague but minimally acceptable for a simple profile 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 already documents both parameters with descriptions (100% coverage). The description adds no additional meaning beyond what is in the schema.

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 retrieves detailed information about the authenticated user, using a specific verb and resource. It is distinct from sibling tools like get_file_metadata or get_list_item.

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 usage guidelines are provided; the description implies it is for the authenticated user's profile but does not specify when to use it versus alternatives or any prerequisites.

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

health_checkB

Check the health status and authentication of the MCP server

ParametersJSON Schema
NameRequiredDescriptionDefault
includeUserInfoNoInclude user profile information
includeDriveInfoNoInclude default drive information

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description should fully disclose behavior. It only states 'health status and authentication' without explaining what exactly is checked, side effects, or response format.

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 that is concise and front-loaded, but could be slightly more informative without adding much length.

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 health check tool with no output schema, the description suffices but lacks details on what 'authentication' entails or possible return values.

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. The tool description does not add additional meaning beyond the schema, 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.

Purpose5/5

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

The description clearly states the tool checks health status and authentication, using a specific verb and resource. It distinguishes from sibling tools focused on file operations.

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 use for checking server health before other operations but does not provide explicit when-to-use or when-not-to-use guidance or mention alternatives.

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

list_drivesA

List all accessible drives (OneDrive + SharePoint document libraries)

ParametersJSON Schema
NameRequiredDescriptionDefault
includeQuotaNoInclude quota information for each drive
siteIdNoOptional SharePoint site ID to retrieve the default drive for a specific site
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
driveTypeNoFilter by drive typeall
limitNoMaximum number of drives to return

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description must carry the full burden. It only says 'list all accessible drives' without disclosing pagination, rate limits, or whether it fetches only default drives. Minimal transparency beyond function.

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 with no wasted words, clearly stating purpose and scope. Perfectly efficient for the tool's simplicity.

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 list tool with well-documented schema, the description is adequate but could mention that results can be filtered or that multiple drive types are returned. No output schema is provided, but the description does not specify response format, which is a minor 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 description coverage is 100%, so each parameter is documented. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline.

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 lists all accessible drives, explicitly mentioning OneDrive and SharePoint document libraries. This distinguishes it from sibling tools like discover_sites or list_files.

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 like discover_sites. Usage is implied as a general drive enumeration tool, but lacks when-not-to-use or prerequisite info.

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

list_filesC

List files and folders in OneDrive or SharePoint drive

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFolder path (e.g., "/Documents" or "" for root)
siteIdNoSharePoint site ID (optional, if not provided uses personal OneDrive)
siteNoKnown SharePoint site alias or canonical URL (e.g., "financeiro", "socios2")
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific OneDrive or SharePoint document library
filterNoOData filter (e.g., "file ne null" for files only)
orderByNoSort order (e.g., "name", "lastModifiedDateTime desc")name
limitNoMaximum number of items to return
pageTokenNoOpaque pagination token from a previous response (Graph nextLink)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden for behavioral disclosure. It only states the basic function without revealing key traits like pagination, filtering, ordering, permissions, or side effects. This is insufficient for safe and effective invocation.

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 that front-loads the core purpose. It is concise but lacks any structuring like bullet points or sections, which could improve readability.

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 9 parameters and no output schema, the description is very incomplete. It does not explain return values, pagination, or authentication. Given the complexity and number of sibling tools, more detail is needed for confident usage.

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 adds no parameter-specific information beyond the schema, meaning it does not compensate or enhance understanding of parameters like 'path', 'siteId', or 'filter'.

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 files and folders in OneDrive or SharePoint drive', using a specific verb and identifying the resource and context. However, it does not explicitly distinguish this tool from siblings like 'list_items' or 'search_files', which could cause 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 usage guidance is provided—no mention of when to use this tool versus alternatives, nor any prerequisites or exclusions. The agent receives no hints about tool selection among many sibling file operations.

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

list_itemsB

List items from a SharePoint list with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
listIdYesSharePoint list ID
filterNoOData filter expression (e.g., "Title eq 'Example'")
orderByNoSort order (e.g., "Title", "Created desc")Created desc
selectNoComma-separated list of fields to return (e.g., "Title,Author,Created")
expandNoComma-separated list of lookup fields to expand
limitNoMaximum number of items to return
pageTokenNoOpaque pagination token from a previous response (Graph nextLink)

TDQS

B3.2/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 full burden. It only mentions 'listing' with filtering/pagination, but does not disclose behavioral traits like read-only guarantee, permission requirements, throttling, or pagination mechanics. The agent cannot infer safety 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, front-loaded with key action and features. No filler or unnecessary words. Efficiently conveys the essential 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?

With 10 parameters, no output schema, and no annotations, the description is too brief. It does not explain interaction between parameters (e.g., siteId vs site vs siteUrl), pagination token usage, or expand behavior. The agent lacks sufficient context to use the tool correctly without deep schema inspection.

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 10 parameters having descriptions. The description adds no additional meaning beyond summarizing 'filtering and pagination'. 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.

Purpose5/5

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

Description clearly states 'List items from a SharePoint list with filtering and pagination', using a specific verb and resource. This distinguishes it from sibling tools like create_list_item or get_list_item, which operate on single items or have 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 on when to use this tool versus alternatives such as get_list_item (single item) or discover_sites (site discovery). The description lacks explicit context, exclusions, or references to sibling tools.

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

list_site_listsB

List all SharePoint lists in a specific site

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
includeHiddenNoInclude hidden lists
includeSystemListsNoInclude system lists (like Workflow Tasks)
limitNoMaximum number of lists to return
pageTokenNoOpaque pagination token from a previous response (Graph nextLink)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the burden of behavioral disclosure, but it only provides a high-level purpose. It does not mention that the operation is read-only, how pagination works, or any constraints. For a tool with 7 optional parameters, this is insufficient.

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 clear sentence, no unnecessary words.

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 7 parameters, no output schema, and no annotations. The description does not cover return value, pagination, or filtering behavior, leaving the agent to infer from parameter names 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%, so the schema already documents all parameters. 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.

Purpose5/5

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

The description clearly states the action (list) and resource (SharePoint lists in a specific site), distinguishing it from sibling tools like list_files or list_drives.

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 provides a clear purpose but does not guide when to use this tool over alternatives, such as list_items (for items within lists) or other listing tools.

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

manage_permissionsC

List, update, or revoke permissions for a file or folder

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID
itemPathNoAlternative: item path
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
actionYesAction to performlist
permissionIdNoPermission ID (for update/revoke actions)
newRolesNoNew roles for update action (read, write, owner)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only mentions the actions without disclosing behavioral traits like required permissions, side effects of revoking, or limitation scopes (e.g., whether it works for files vs folders). The description adds minimal context beyond the actions.

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 efficiently conveys the tool's purpose without extraneous words. It is appropriately 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?

Despite having 9 parameters and no output schema, the description provides no context on parameter relationships, ordering, or defaults (beyond action default). It does not explain how to resolve conflicts between itemId and itemPath or how siteId/site/siteUrl interact. For a tool with this complexity, the description is insufficiently 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?

Schema coverage is 100% with parameter descriptions for itemId, itemPath, siteId, etc. The description adds no new semantic information beyond what the schema already provides, so it meets 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?

Description clearly states the tool lists, updates, or revokes permissions for a file or folder, specifying the verb and resource. However, it does not differentiate from sibling tools like share_item that also manage permissions, so it loses a point for lack of sibling differentiation.

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 share_item or check_user_access. The description lists possible actions but does not explain when each action (list, update, revoke) is appropriate or mention any prerequisites.

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

move_itemB

Move or rename a file/folder in OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID to move/rename
itemPathNoAlternative: item path to move/rename
newNameNoNew name for the item (optional)
parentFolderIdNoID of destination folder (optional)
parentFolderPathNoPath of destination folder (optional)
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description alone must disclose behavioral traits. It only states 'move or rename' but omits details like behavior when only newName is provided (rename), when both parent folder and newName are provided, error scenarios, permissions required, or idempotency.

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 without extraneous words, effectively communicating 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?

With no output schema and no annotations, a more detailed description is needed to cover the combination of parameters (e.g., specifying source via itemId vs itemPath, destination via parentFolderId/path), and to explain rename vs move behavior. The current description leaves significant ambiguity for a tool with 9 optional parameters.

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 parameters already have descriptions. The tool description adds no extra semantics beyond the schema, 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 states the tool moves or renames a file/folder in OneDrive or SharePoint, which distinguishes it from sibling tools like copy_item, delete_item, or share_item.

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 move_item vs alternatives such as copy_item or rename operations via other tools, nor does it mention prerequisites or exclusions.

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

resolve_siteB

Resolve a SharePoint site from canonical aliases, siteId, or canonical URL without relying on discover_sites

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoKnown alias, site name hint, or canonical SharePoint URL
siteIdNoSharePoint site ID (passes through if already known)
siteUrlNoCanonical SharePoint site URL

TDQS

B3.4/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 burden of behavioral disclosure. It only mentions that it does not rely on 'discover_sites', but fails to disclose whether it is read-only, what happens on invalid input, or any side effects. This is insufficient.

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 essential purpose immediately.

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 value or output format, which is a significant gap given the absence of an output schema. It also does not mention any behavioral traits like idempotency or error conditions, making it incomplete for the agent's decision-making.

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 mentions the three input types (aliases, siteId, URL) which correspond to the schema parameters. However, the description adds no extra meaning beyond the schema's existing parameter descriptions.

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 'Resolve', the resource 'SharePoint site', and specific inputs: canonical aliases, siteId, or URL. It also distinguishes itself from the sibling tool 'discover_sites' by saying 'without relying on discover_sites'.

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 that this tool is an alternative to 'discover_sites' but does not explicitly state when to use it instead of other siblings. It provides context but no when-not or list of alternatives.

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

search_filesC

Search for files and folders in OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (file name, content, etc.)
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
fileTypesNoFilter by file types (e.g., ["xlsx", "docx"])
limitNoMaximum number of results
pageTokenNoOpaque pagination token from a previous response (Graph nextLink)

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 carries the full burden but is minimal. It does not disclose behavioral traits such as pagination, sorting, authentication needs, or limitations. The schema provides parameter details but the description adds no behavioral context.

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

Conciseness3/5

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

The description is extremely concise (one sentence) but lacks structure. While it is short, it sacrifices informativeness and does not earn its place by adding needed context. More concise would be better if it were more informative.

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 8 parameters, no output schema, and many siblings, the description is far from complete. It omits pagination, filtering, and scope details that are critical for correct usage. The schema covers some, but the description is insufficient for an agent to use the tool effectively.

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 adds no additional meaning beyond the schema; it merely restates the tool's purpose. No extra value for parameter understanding.

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 searches for files and folders in OneDrive or SharePoint, which is a specific verb+resource. However, it does not differentiate from sibling tools like global_search or list_files, missing clarity on when to choose this over alternatives.

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 similar tools. It lacks any mention of use cases, prerequisites, or exclusions, 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.

share_itemC

Create a sharing link for a file or folder

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoItem ID to share
itemPathNoAlternative: item path to share
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
typeNoType of sharing linkview
scopeNoWho can access the linkorganization
expirationDateTimeNoLink expiration (ISO 8601 format, optional)
passwordNoPassword protection (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It only states 'create a sharing link', but omits details on whether it overwrites existing links, required permissions, or potential side effects. The mutation is implied but not elaborated.

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 extremely concise at one sentence. It could be improved by front-loading more details, but it avoids 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?

Given 10 parameters, no output schema, and no annotations, the description is too brief. It does not explain how to identify items (e.g., itemId vs. itemPath), what the tool returns, or the behavior when multiple identification methods are used.

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 baseline is 3. The description adds no extra meaning beyond the schema; parameters like type, scope, and expiration are already well-documented in 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 the verb 'create' and resource 'sharing link' for a file or folder, making the purpose specific. However, it does not explicitly differentiate from the sibling 'advanced_share', which likely offers more advanced options.

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 like 'advanced_share'. No context on prerequisites, scenarios, or exclusions is given.

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

storage_analyticsC

Analyze storage usage patterns and identify optimization opportunities

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID (optional, defaults to personal drive)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
analysisTypeNoType of analysis to performsummary
pathNoSpecific path to analyze (optional, defaults to root)
thresholdsNo
includeVersionsNoInclude version history in size calculations

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 mentions 'analyze' and 'identify optimization opportunities' but does not state that the operation is read-only, whether it requires specific permissions, or what the output format is. The description is vague and does not provide sufficient transparency for an agent to understand side effects or performance implications.

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 front-loaded. However, its brevity comes at the cost of informativeness; it could include more key details without significant length increase. It earns its place but is on the edge of being too terse.

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 8 parameters, a nested object (thresholds), an enum (analysisType with 6 values), and no output schema. The description does not explain what each analysis type does, how thresholds affect results, or what the output looks like. It leaves significant gaps for an agent to navigate the tool effectively.

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 high (88% per context, effectively 100% as all parameters have descriptions), so the schema already documents parameters well. The description adds no additional explanation of parameters beyond what the schema provides, so it does not compensate for any gaps. 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 tool's purpose: analyzing storage usage and identifying optimization opportunities. It distinguishes from sibling tools like list_files or search_files by focusing on analysis rather than retrieval. However, it lacks specificity about the scope (e.g., SharePoint), which is implied by the input schema but not explicitly stated.

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 like list_drives, search_files, or other analysis tools. It does not include when-not-to-use conditions or prerequisites, leaving the agent to infer usage context from the schema alone.

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

sync_folderB

Synchronize a local folder with OneDrive/SharePoint (bidirectional)

ParametersJSON Schema
NameRequiredDescriptionDefault
localPathYesLocal folder path to sync
remotePathYesRemote folder path in OneDrive/SharePoint
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
directionNoSync directionbidirectional
conflictResolutionNoHow to resolve conflictsnewer
includePatternsNoFile patterns to include (e.g., ["*.docx", "*.xlsx"])
excludePatternsNoFile patterns to exclude (e.g., ["*.tmp", "~*"])
deleteOrphansNoDelete files that exist only on one side

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description is minimal and doesn't disclose behavioral traits beyond 'bidirectional', such as side effects, long-running nature, 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.

Conciseness4/5

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

Single sentence is efficient and front-loaded with purpose, but for a complex tool with 11 parameters, additional context could be warranted without being overly 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 the tool's complexity, the description is too brief; it omits details like recursive sync, parameter behaviors, and return information, 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 description coverage is 100%, so baseline is 3; description adds no additional parameter 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.

Purpose5/5

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

The description clearly states it synchronizes a local folder with OneDrive/SharePoint and specifies bidirectional, which distinguishes it from one-way upload/download tools among 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 tool versus alternatives like upload_file or download_file; lacks context for selecting direction or conflict resolution.

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

update_list_itemC

Update an existing item in a SharePoint list

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdNoSharePoint site ID
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL
listIdYesSharePoint list ID
itemIdYesList item ID to update
fieldsYesField values to update (key-value pairs)

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 fully disclose behavior. It only states 'update', implying mutation, but lacks details on permissions, idempotency, or what happens to unspecified fields.

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 concise sentence with no unnecessary words. However, it could be slightly expanded to include behavioral context 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?

For a mutation tool with six parameters and no output schema, the description fails to clarify return values, error states, or whether partial updates are supported. More detail is needed.

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 describes all six parameters with 100% coverage. The description adds no extra meaning beyond the schema, 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 clearly states the action (update) and resource (existing item in a SharePoint list), but it does not differentiate from sibling tools like create_list_item or delete_list_item beyond the verb.

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 batch operations or other update mechanisms. There is no mention of prerequisites or exclusions.

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

upload_fileB

Upload a file to OneDrive or SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
localPathYesLocal file path to upload
remotePathYesRemote path where to upload (e.g., "/Documents/report.xlsx")
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
conflictBehaviorNoWhat to do if file already existsrename

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It only states 'Upload a file' and does not mention default conflictBehavior (rename), file size limits, or how OneDrive vs SharePoint is determined. The conflictBehavior is described only in the schema.

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 with no redundant words. It effectively communicates 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?

Given the complexity of 7 parameters and many sibling tools for file operations, the description lacks critical context about return values, error handling, or when to use specific parameters like siteId vs site. No output schema is present to compensate.

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 fully documents parameters. The description adds no extra meaning beyond the schema's parameter descriptions, meeting the baseline.

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?

Description clearly states 'Upload a file to OneDrive or SharePoint', specifying the verb (upload) and resource (file) with target platforms. It distinguishes itself from sibling tools like download_file, copy_item, etc., which perform different operations.

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 batch_file_operations or advanced_share. There is no mention of prerequisites, authentication, 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.

version_managementC

Manage file versions including restore, cleanup, and comparison

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdNoFile item ID
itemPathNoAlternative: file path
siteIdNoSharePoint site ID (optional)
siteNoKnown SharePoint site alias or canonical URL
siteUrlNoCanonical SharePoint site URL (optional alternative to siteId)
driveIdNoDrive ID for a specific document library (optional)
actionYesVersion management actionlist
versionIdNoVersion ID for restore/delete/compare actions
keepVersionsNoNumber of versions to keep (for cleanup)
compareVersionIdNoSecond version ID for comparison

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 lists actions (restore, cleanup, comparison) without noting that delete/cleanup destroy versions irreversibly, or that comparison is read-only. No auth or rate limit info.

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 that front-loads the main purpose. It is concise with no redundancy, though it could include a second sentence for critical details without harming 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 10 parameters and no output schema, the description is too brief. It does not explain return values, the meaning of actions like 'cleanup', or how parameters interact (e.g., itemId vs itemPath). Significant gaps 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%, so the description does not need to explain parameters. The description adds minimal context by listing action categories (restore, cleanup, comparison), but this is already evident from the enum. Baseline 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 states 'Manage file versions including restore, cleanup, and comparison', clearly indicating the tool's purpose. While it distinguishes from sibling tools (no other tool handles version management), it does not explicitly contrast with related file operations.

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 over alternatives or when not to use it. It does not mention prerequisites or context for specific actions like restore or delete.

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

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes (file ops, list ops, sharing, search, Excel, batch, etc.). There is minor overlap between batch_file_operations and batch_operations, and between search_files and global_search, but descriptions clarify the differences. Overall, an agent can distinguish tools effectively.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_folder, delete_item, check_user_access). Multi-word names are uniform. No mixed conventions or camelCase, making the naming predictable and easy to navigate.

Tool Count2/5

With 33 tools, the count is high for a single server. While each tool serves a specific function, the number exceeds the typical well-scoped range (3-15) and feels heavy. Some tools like health_check and get_user_profile are tangentially related, and batch operations add complexity.

Completeness5/5

The tool set covers the OneDrive/SharePoint domain comprehensively: file CRUD, sharing, permissions, version management, batch operations, search across content, SharePoint list full lifecycle, Excel analysis, storage analytics, and sync. No obvious gaps for common workflows.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ftaricano/mcp-onedrive-sharepoint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server