Skip to main content
Glama

SharePoint MCP Server

A Model Context Protocol (MCP) server that provides Claude with access to Microsoft SharePoint via the Microsoft Graph API.

Features

  • Folder Management: List, create, delete folders and view folder tree structure

  • Document Operations: Upload, download, read, update, and delete documents

  • Metadata Support: Get and update file metadata fields

  • OAuth 2.0 Authentication: Secure user-based authentication via browser flow

  • Consistent Architecture: Same modular pattern as Outlook MCP for easy maintenance

Related MCP server: SharePoint Online MCP Server

Quick Start

1. Install Dependencies

cd sharepoint-mcp
npm install

2. Azure AD Setup

  1. Go to Azure Portal > App registrations > New registration

  2. Name: sharepoint-mcp (or your preferred name)

  3. Supported account types: "Accounts in this organizational directory only"

  4. Redirect URI: Web > http://localhost:3334/auth/callback

  5. Click Register

After registration:

  1. Copy the Application (client) ID

  2. Copy the Directory (tenant) ID

  3. Go to Certificates & secrets > New client secret

    • Copy the Value (not the Secret ID!)

  4. Go to API permissions > Add a permission > Microsoft Graph > Delegated permissions

    • Add: Sites.ReadWrite.All, Files.ReadWrite.All

  5. Click Grant admin consent (requires admin)

3. Configure Environment

Create a .env file:

SHAREPOINT_CLIENT_ID=your-client-id
SHAREPOINT_CLIENT_SECRET=your-client-secret-value
SHAREPOINT_TENANT_ID=your-tenant-id
SHAREPOINT_SITE_URL=https://your-tenant.sharepoint.com/sites/your-site
SHAREPOINT_DOC_LIBRARY=Shared Documents

4. Authenticate

# Start the auth server
npm run auth-server

# Open http://localhost:3334 in your browser and complete authentication

5. Run the Server

npm start

Claude Desktop Integration

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "sharepoint-assistant": {
      "command": "node",
      "args": ["/path/to/sharepoint-mcp/index.js"],
      "env": {
        "SHAREPOINT_CLIENT_ID": "your-client-id",
        "SHAREPOINT_CLIENT_SECRET": "your-client-secret",
        "SHAREPOINT_TENANT_ID": "your-tenant-id",
        "SHAREPOINT_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site",
        "SHAREPOINT_DOC_LIBRARY": "Shared Documents"
      }
    }
  }
}

Available Tools

Authentication

Tool

Description

authenticate

Start the OAuth authentication flow

check_auth_status

Check current authentication status

logout

Clear stored tokens

Folder Operations

Tool

Description

list_folders

List folders in a directory

create_folder

Create a new folder

delete_folder

Delete an empty folder

get_folder_tree

Get recursive folder structure

Document Operations

Tool

Description

list_documents

List documents in a folder

get_document_content

Read document content

upload_document

Upload content as a new document

upload_document_from_path

Upload a local file

update_document

Update an existing document

delete_document

Delete a document

download_document

Download to local filesystem

get_file_metadata

Get file metadata fields

update_file_metadata

Update metadata fields

Development

# Run with MCP Inspector for testing
npm run inspect

# Run in test mode (mock data)
npm run test-mode

# Run tests
npm test

Architecture

sharepoint-mcp/
├── index.js              # Main MCP server entry point
├── config.js             # Configuration settings
├── sharepoint-auth-server.js  # OAuth callback server
├── auth/                 # Authentication module
│   ├── index.js
│   ├── token-manager.js  # Token storage & refresh
│   └── tools.js          # Auth tools
├── folder/               # Folder operations
│   ├── index.js
│   └── tools.js
├── document/             # Document operations
│   ├── index.js
│   └── tools.js
└── utils/                # Shared utilities
    ├── index.js
    └── graph-api.js      # Graph API client

Troubleshooting

"Authentication required" error

  • Ensure you've run the auth server and completed browser authentication

  • Check that tokens are stored in ~/.sharepoint-mcp-tokens.json

"AADSTS7000215" error

  • You're using the Secret ID instead of the Secret Value

  • Go back to Azure and copy the actual secret value

"Access denied" error

  • Ensure admin consent was granted for the API permissions

  • Verify the site URL is correct

Port 3334 in use

npx kill-port 3334

License

MIT

Available Tools

16 tools
authenticateA

Start the SharePoint authentication process. Returns a URL that the user must open in a browser to authenticate. The auth server must be running first (npm run auth-server).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: it returns a URL for user browser authentication and requires a running auth server. However, it doesn't cover other aspects like error handling, timeouts, or what happens if the server isn't running. The description adds value but lacks comprehensive 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 appropriately sized and front-loaded: it starts with the core purpose, then adds essential details (returns a URL, server prerequisite). Every sentence earns its place with no wasted words, making it efficient and easy to parse.

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

Completeness3/5

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

Given no annotations, no output schema, and 0 parameters, the description is moderately complete. It explains the tool's purpose, output (a URL), and a prerequisite. However, for an authentication tool, it could benefit from more context, such as what the URL is used for or how to handle the authentication flow after opening it. It's adequate but has clear gaps.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter info, which is appropriate. Baseline is 4 for 0 parameters, as it doesn't need to compensate for any gaps.

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: 'Start the SharePoint authentication process.' It specifies the verb ('Start') and resource ('SharePoint authentication process'), making it easy to understand what it does. However, it doesn't explicitly differentiate from sibling tools like 'check_auth_status' or 'logout', which are related to authentication but serve different functions.

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool: 'The auth server must be running first (npm run auth-server).' This gives a prerequisite condition. It doesn't explicitly state when not to use it or name alternatives, but the context implies it's for initiating authentication, not checking status or logging out.

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

check_auth_statusB

Check the current SharePoint authentication status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions checking authentication status but doesn't specify what the status includes (e.g., logged in, permissions, token validity), whether it's safe to call frequently, or what happens on failure. This leaves critical behavioral traits unclear for a tool that likely interacts with authentication systems.

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, efficient sentence with no wasted words, front-loading the core action ('Check'). It's appropriately sized for a simple tool with no parameters, making it easy to parse quickly.

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 authentication tools and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the check returns (e.g., boolean status, detailed auth info, error codes) or prerequisites (e.g., must be initialized first). For a tool that likely informs other operations, this gap could hinder effective agent use.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it could have mentioned implicit context like user or session if relevant. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.

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 ('Check') and resource ('SharePoint authentication status'), making the purpose immediately understandable. It doesn't distinguish from siblings like 'authenticate' or 'logout', but it's specific enough to avoid confusion with other tools that manipulate documents or folders.

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 'authenticate' or 'logout', or in what context it's appropriate. The description only states what it does, not when it should be invoked, 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.

create_folderC

Create a new folder in SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameYesName of the folder to create
parent_folderNoParent folder path. Leave empty to create in root.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool creates a folder but doesn't mention what happens on success (e.g., returns folder ID/path), failure modes (e.g., duplicate names, permissions errors), or side effects (e.g., whether it updates parent folder metadata). For a mutation tool with zero annotation coverage, 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, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable. Every word earns its place by conveying essential 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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., success confirmation, folder details), error conditions, or how it interacts with sibling tools (e.g., whether created folders appear in 'list_folders'). For a tool that modifies state, more behavioral context 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?

Schema description coverage is 100%, with both parameters clearly documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema (e.g., no examples of valid folder names or parent folder paths). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Create') and target resource ('new folder in SharePoint'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'upload_document' which might also create items, nor does it specify if this is for document libraries or general folders, leaving some 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?

The description provides no guidance on when to use this tool versus alternatives like 'upload_document' (which might create folders implicitly) or 'list_folders' (for checking existing folders). There's no mention of prerequisites (e.g., authentication status) or typical use cases, leaving the agent to infer usage from context alone.

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

delete_documentC

Delete a document from SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder containing the document
file_nameYesName of the file to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive mutation, the description doesn't address critical aspects like whether deletion is permanent or reversible, what permissions are required, whether confirmation is needed, or what happens to related metadata. This leaves significant gaps for a destructive operation.

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, efficient sentence with zero wasted words. It's appropriately sized for a simple operation and front-loads the essential information without unnecessary elaboration.

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 destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after deletion, whether there's confirmation or error handling, or what the response looks like. Given the complexity and risk of a delete operation, more behavioral context 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?

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema, so it meets the baseline for high schema coverage without adding value.

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 ('Delete') and target resource ('a document from SharePoint'), providing specific verb+resource pairing. However, it doesn't distinguish this tool from sibling 'delete_folder' which performs a similar destructive operation on a different resource type.

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 about when to use this tool versus alternatives like 'update_document' or 'delete_folder', nor about prerequisites like authentication status. The description offers no context about appropriate use cases or exclusions.

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

delete_folderA

Delete a folder from SharePoint. The folder must be empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYesPath to the folder to delete

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals a critical constraint ('The folder must be empty') which is valuable behavioral information. However, it doesn't disclose other important traits like authentication requirements, error conditions, whether deletion is permanent/reversible, or what happens on success/failure.

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 perfectly concise with two sentences that each earn their place: the first states the core purpose, the second provides a critical constraint. No wasted words, and the most important information is front-loaded.

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

Completeness3/5

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

For a destructive operation with no annotations and no output schema, the description provides the essential constraint about empty folders but lacks other important context. It doesn't explain what happens after deletion, error conditions, authentication requirements, or return values, leaving significant gaps for a mutation tool.

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

Parameters3/5

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

The schema description coverage is 100%, with the single parameter 'folder_path' well-documented in the schema. The description doesn't add any parameter-specific information beyond what the schema already provides, so it meets the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the specific action ('Delete') and resource ('a folder from SharePoint'), distinguishing it from sibling tools like 'delete_document' which handles different resource types. It provides precise scope information about what gets deleted.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool ('The folder must be empty'), which implicitly suggests alternatives like deleting documents first or using other cleanup tools. However, it doesn't explicitly name alternative tools or specify when NOT to use it.

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

download_documentC

Download a document from SharePoint to the local filesystem

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoSharePoint folder containing the document
file_nameYesName of the file to download
local_pathYesLocal path to save the file (including filename)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but lacks critical details: it doesn't specify if this overwrites existing local files, requires specific permissions, handles errors (e.g., missing files), or has rate limits. For a tool that writes to the local filesystem, this omission is significant and could lead to misuse.

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, direct sentence that efficiently conveys the core action without any fluff. It's front-loaded with the key verb ('Download') and resource, making it easy to parse. Every word earns its place, and there's no redundancy or unnecessary elaboration.

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 a file operation with no annotations and no output schema, the description is incomplete. It doesn't explain what happens on success (e.g., file saved, path returned) or failure, nor does it cover behavioral aspects like overwriting or permissions. For a tool that interacts with both SharePoint and the local filesystem, more context is needed to use it safely and 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 schema already documents all three parameters ('folder_path', 'file_name', 'local_path') with clear descriptions. The description adds no additional meaning beyond implying a download operation, which is already evident from the tool name. This meets the baseline for high schema coverage but doesn't enhance 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 action ('Download') and resource ('a document from SharePoint to the local filesystem'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_document_content' (which might retrieve content without saving locally) or 'upload_document' (the inverse operation), leaving some ambiguity about when this specific tool is preferred.

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. For example, it doesn't mention whether this is for saving files locally versus just viewing content (compared to 'get_document_content'), or if it requires authentication first (though 'authenticate' is a sibling). There's no context about prerequisites, exclusions, or typical scenarios.

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

get_document_contentB

Get the content of a document from SharePoint. Works best with text-based files (txt, json, md, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder containing the document
file_nameYesName of the file to read

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions file type preferences but doesn't address critical aspects like authentication requirements, error handling for non-text files, rate limits, or whether this is a read-only operation. For a tool accessing external resources without annotation coverage, this leaves significant behavioral gaps.

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 extremely concise with just two sentences, both of which add value. The first sentence states the core purpose, and the second provides important usage context about file types. There's no wasted verbiage or repetition, making it efficiently front-loaded.

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

Completeness3/5

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

Given the tool's moderate complexity (accessing external document content) with no annotations and no output schema, the description provides basic purpose and file type guidance but lacks information about authentication requirements, return format, error conditions, or how it differs from similar tools. It's minimally adequate but has clear gaps that could hinder effective tool selection and 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?

The input schema has 100% description coverage, with clear documentation for both 'folder_path' and 'file_name' parameters. The description doesn't add any parameter-specific information beyond what's already in the schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

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 ('Get the content') and resource ('a document from SharePoint'), making the purpose immediately understandable. It distinguishes from siblings like 'get_file_metadata' by focusing on content retrieval rather than metadata. However, it doesn't explicitly differentiate from 'download_document', which might 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 Guidelines3/5

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

The description provides some usage guidance by specifying 'Works best with text-based files (txt, json, md, etc)', which helps the agent understand appropriate contexts. However, it doesn't explicitly state when to use this tool versus alternatives like 'download_document' or 'get_file_metadata', nor does it mention any prerequisites (e.g., authentication status). The guidance is implied rather than explicit.

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 metadata fields for a SharePoint file

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder containing the document
file_nameYesName of the file

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves metadata, implying a read-only operation, but doesn't specify authentication requirements, rate limits, error conditions, or what metadata fields are returned. This leaves significant gaps for an agent to understand the tool's behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.

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 no annotations and no output schema, the description is insufficient. It doesn't explain what metadata is returned, authentication needs, or how it differs from siblings. Given the complexity of SharePoint operations and lack of structured data, more context is needed for an agent to use this 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?

The input schema has 100% description coverage, clearly documenting both parameters. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Since the schema does the heavy lifting, the 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 ('Get') and resource ('metadata fields for a SharePoint file'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'get_document_content' or 'update_file_metadata', which would require more specific 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites like authentication, nor does it compare with siblings such as 'get_document_content' for content retrieval or 'update_file_metadata' for modifications.

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

get_folder_treeB

Get a recursive tree view of folders in SharePoint. Useful for understanding folder structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_folderNoStarting folder path. Leave empty for root.
max_depthNoMaximum depth to traverse (default: 3)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool is 'recursive' and for 'understanding folder structure,' but fails to cover critical aspects like whether it requires authentication (implied by sibling tools but not stated), potential rate limits, error handling, or the format of the returned tree. This leaves significant gaps for a tool that likely interacts with an external API.

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 concise with two sentences that are front-loaded: the first states the core purpose, and the second adds usage context. There's no wasted text, making it efficient, though it could be slightly more informative 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?

Given the complexity of interacting with SharePoint (implied by sibling tools like 'authenticate'), no annotations, and no output schema, the description is incomplete. It doesn't address authentication requirements, error cases, or the structure of the returned tree view, which are essential for effective tool use in this context.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents both parameters ('parent_folder' and 'max_depth') with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema, but since the schema is comprehensive, a baseline score of 3 is appropriate as it doesn't need to compensate.

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 as 'Get a recursive tree view of folders in SharePoint' with a specific verb ('Get') and resource ('folders in SharePoint'), and distinguishes it from sibling tools like 'list_folders' by specifying it's a recursive tree view. However, it doesn't explicitly contrast with 'list_folders' beyond implying depth, which keeps it from a perfect score.

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 some implied usage context with 'Useful for understanding folder structure,' suggesting when this tool might be preferred over simpler listing tools. However, it lacks explicit guidance on when to use this versus alternatives like 'list_folders' or prerequisites such as authentication, leaving room for improvement.

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

list_documentsB

List all documents (files) in a specified SharePoint folder. Returns file names, sizes, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder path relative to document library root. Leave empty for root folder.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the return format ('file names, sizes, and metadata') but lacks critical details such as pagination behavior, error handling for invalid paths, permissions required, or whether it's a read-only operation. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence that front-loads the core functionality and return values. There is no wasted language, and it directly communicates the tool's purpose without redundancy.

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 tool's low complexity (one optional parameter) and high schema coverage, the description is somewhat complete but lacks output schema and behavioral details. It covers the basic operation but misses context like authentication needs or error scenarios, which is adequate but leaves clear gaps for an agent to use it 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%, with the parameter 'folder_path' well-documented in the schema. The description adds minimal value beyond the schema by implying the tool lists documents in a folder, but doesn't provide additional context like examples of valid paths or how empty paths are handled. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('List') and resource ('documents/files in a specified SharePoint folder'), and specifies what information is returned ('file names, sizes, and metadata'). It distinguishes from siblings like 'list_folders' by focusing on documents, but doesn't explicitly contrast with tools like 'get_folder_tree' that might also list documents.

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. For example, it doesn't mention when to choose 'list_documents' over 'list_folders' or 'get_folder_tree', nor does it specify prerequisites like authentication status or folder existence.

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

list_foldersB

List all folders in a specified SharePoint directory. Returns folder names, IDs, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_folderNoParent folder path relative to document library root. Leave empty for root folder.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states this is a list operation (implying read-only) and mentions the return format, but lacks details on permissions required, pagination behavior, error handling, or rate limits. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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, efficient sentence that front-loads the core purpose and includes essential return information. There is no wasted verbiage or redundancy, making it highly concise and well-structured.

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 tool's low complexity (one optional parameter) and high schema coverage, the description is adequate but incomplete. It lacks output schema, so the return format ('folder names, IDs, and metadata') is helpful, but without annotations, it misses behavioral context like authentication needs or error conditions, leaving room for improvement.

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

Parameters3/5

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

The input schema has 100% description coverage, with the single parameter 'parent_folder' well-documented in the schema itself. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without adding extra value.

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 ('List all folders') and resource ('in a specified SharePoint directory'), and specifies what information is returned ('folder names, IDs, and metadata'). However, it doesn't explicitly distinguish this tool from its sibling 'get_folder_tree', which might also list folders but with a different structure or scope.

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 'get_folder_tree' or 'list_documents'. It mentions the parent folder parameter but doesn't explain when to use it versus leaving it empty for the root, nor does it discuss prerequisites such as authentication status.

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

logoutB

Clear SharePoint authentication tokens and log out

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions clearing tokens and logging out, which implies a destructive action affecting authentication state, but doesn't detail consequences like session termination effects, error handling, or whether this requires prior authentication. This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence that directly states the tool's function without any wasted words. It is front-loaded with the core action, making it highly concise and well-structured.

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 tool's complexity (a mutation with no parameters) and lack of annotations and output schema, the description is minimally adequate. It covers the basic action but lacks details on behavioral outcomes, error cases, or integration with sibling tools, leaving gaps in completeness for safe agent use.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description appropriately doesn't discuss parameters, earning a baseline score of 4 for not adding unnecessary details beyond what the schema provides.

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

Purpose4/5

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

The description clearly states the action ('clear authentication tokens and log out') and resource ('SharePoint'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'check_auth_status', which is why it doesn't reach a score of 5.

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 usage in an authentication context but doesn't specify when to use this tool versus alternatives like 'authenticate' or 'check_auth_status'. No explicit guidance on prerequisites or exclusions is provided, leaving usage context inferred rather than stated.

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

update_documentC

Update an existing document in SharePoint with new content

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder containing the document
file_nameYesName of the file to update
contentYesNew file content
is_base64NoSet to true if content is base64-encoded

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool updates content, implying mutation, but doesn't disclose behavioral traits like required permissions, whether changes are reversible, error handling (e.g., if file doesn't exist), or side effects (e.g., versioning). For a mutation tool with zero annotation coverage, this is a significant gap in 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, efficient sentence that front-loads the core purpose ('Update an existing document in SharePoint') and adds essential detail ('with new content'). Every word earns its place, with zero waste or redundancy. It's appropriately sized for the tool's complexity.

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 (mutation operation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects (e.g., permissions, errors), output expectations, or usage context. For a mutation tool in a SharePoint environment, more detail is needed to guide an agent 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 schema already documents all four parameters with clear descriptions. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or provide examples). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the action ('Update') and resource ('an existing document in SharePoint') with specificity about the operation ('with new content'). It distinguishes from sibling tools like 'upload_document' (creates new) and 'update_file_metadata' (modifies metadata only), though it doesn't explicitly name these alternatives. The purpose is unambiguous but lacks explicit 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication, existing document), exclusions (e.g., cannot create new documents), or compare to siblings like 'upload_document' for new files or 'update_file_metadata' for metadata changes. Usage is implied by the name but not explicitly stated.

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

update_file_metadataC

Update metadata fields for a SharePoint file

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder containing the document
file_nameYesName of the file
metadataYesObject containing field names and values to update

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Update' implies a mutation operation, the description does not specify required permissions, whether changes are reversible, rate limits, or what happens to existing metadata not mentioned. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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 a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits (e.g., permissions, reversibility), usage context, and expected outcomes, leaving significant gaps for an agent to operate 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 schema already documents all three parameters (folder_path, file_name, metadata) with clear descriptions. The description adds no additional meaning or context beyond what the schema provides, such as examples of metadata fields or formatting details, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Update') and resource ('metadata fields for a SharePoint file'), making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like 'update_document' or 'get_file_metadata', which could cause confusion about when to use this specific tool versus 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?

The description provides no guidance on when to use this tool versus alternatives like 'update_document' or 'get_file_metadata'. It lacks context about prerequisites (e.g., authentication status), exclusions, or specific scenarios where this tool is appropriate, 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.

upload_documentC

Upload a new document to SharePoint. For text content, provide the content directly. For binary files, provide base64-encoded content.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoDestination folder path
file_nameYesName for the uploaded file
contentYesFile content (text or base64-encoded)
is_base64NoSet to true if content is base64-encoded

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions content format handling (text vs. base64) but omits critical behavioral aspects: whether this requires authentication, what permissions are needed, whether it overwrites existing files, error conditions, or what happens on success. For a mutation tool with zero annotation coverage, 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.

Conciseness4/5

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

The description is efficiently structured in two sentences that directly address the core functionality and content handling. Every sentence serves a clear purpose with no wasted words, though it could be slightly more front-loaded with the primary 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?

For a mutation tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It covers basic functionality but lacks critical context about authentication requirements, error handling, return values, and differentiation from sibling tools. The agent would need to guess about important behavioral aspects.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds minimal value by clarifying the 'content' parameter's dual format (text vs. base64) and implying the relationship with 'is_base64', but doesn't provide additional semantic context beyond what's in the schema descriptions.

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 ('Upload a new document') and target resource ('to SharePoint'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling 'upload_document_from_path' beyond the content handling distinction, which is more about implementation than purpose.

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 'upload_document_from_path' or 'update_document'. It mentions content format handling but doesn't address context-specific selection criteria, leaving the agent to infer usage scenarios.

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

upload_document_from_pathC

Upload a file from the local filesystem to SharePoint

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYesLocal file path to upload
folder_pathNoDestination folder in SharePoint
new_file_nameNoOptional new name for the file in SharePoint

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Upload') but doesn't mention critical details like required permissions, file size limits, overwrite behavior, error handling, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

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 that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the key action and resources, making it easy to parse quickly. Every word earns its place, achieving optimal 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 that this is a mutation tool (uploading files) with no annotations, no output schema, and incomplete behavioral transparency, the description is inadequate. It doesn't cover essential aspects like what happens on success/failure, authentication requirements, or how it differs from 'upload_document', leaving the agent with insufficient context for reliable use.

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

Parameters3/5

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

The schema description coverage is 100%, so the input schema already documents all three parameters thoroughly. The description doesn't add any additional meaning or context about the parameters beyond what's in the schema, such as file format restrictions or path syntax examples. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Upload') and resources involved ('a file from the local filesystem to SharePoint'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'upload_document', which appears to serve a similar function, so it doesn't achieve full 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?

The description provides no guidance on when to use this tool versus alternatives like 'upload_document' or other file-related tools. It lacks context about prerequisites (e.g., authentication status) or specific scenarios where this tool is preferred, 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 16 tool updatesv1.0.0
    • First observedauthenticate
    • First observedcheck_auth_status
    • First observedcreate_folder
    • First observeddelete_document
    • First observeddelete_folder
    • First observeddownload_document
    • First observedget_document_content
    • First observedget_file_metadata
    • First observedget_folder_tree
    • First observedlist_documents
    • First observedlist_folders
    • First observedlogout
    • First observedupdate_document
    • First observedupdate_file_metadata
    • First observedupload_document
    • First observedupload_document_from_path

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no significant overlap. For example, list_documents and list_folders handle different resource types, while upload_document and upload_document_from_path offer distinct input methods. The authentication tools (authenticate, check_auth_status, logout) are also well-separated from document/folder operations.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case throughout. Examples include create_folder, delete_document, get_document_content, and update_file_metadata. This predictability makes it easy for agents to understand and select tools.

Tool Count5/5

With 16 tools, this server provides comprehensive coverage for SharePoint operations without being overwhelming. The count aligns well with the domain's scope, covering authentication, folder management, document CRUD operations, and metadata handling, which is appropriate for a SharePoint integration.

Completeness5/5

The tool set offers complete CRUD/lifecycle coverage for SharePoint documents and folders, including create, read, update, delete, and list operations. It also handles authentication, metadata management, and file upload/download, leaving no obvious gaps for core SharePoint workflows.

Maintenance

ActivityInactive
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/peacockery-studio/sharepoint-mcp'

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