Skip to main content
Glama

πŸ—‚οΈ sharepoint-mcp

The MCP Server that gives your AI agent a brain for Microsoft SharePoint

CI PyPI version Python License: MIT Docker MCP

A production-grade Model Context Protocol (MCP) server for Microsoft SharePoint.
Connect Claude Desktop, VS Code Copilot, Cursor, Continue, or any MCP-compatible AI agent
to your SharePoint β€” read files, manage folders, and reason over your organisation's knowledge.

πŸ“š Docs Β· πŸ—ΊοΈ Roadmap Β· πŸ› Bugs Β· πŸ’‘ Features


πŸ“‘ Table of Contents


Related MCP server: Microsoft Graph MCP Server

🧠 Why sharepoint-mcp?

Most AI agents only know what's in their training data.
sharepoint-mcp gives your agent live access to your organisation's real knowledge.

Without sharepoint-mcp

With sharepoint-mcp

🀷 Agent guesses or hallucinates

Agent reads the actual document

πŸ“‹ You copy-paste content manually

Agent fetches files automatically

πŸ”’ Knowledge locked in SharePoint

Knowledge flows into your AI workflow

🐌 Static, one-shot answers

Agent reasons, rewrites, and saves back


πŸš€ What Your Agent Can Do

πŸ“– Understand Any Document

You: "Summarise the Q3 report in the Finance folder"
Agent: β†’ Get_Document_Content("Finance", "Q3_Report.pdf")
       β†’ Reads full extracted text
       β†’ Returns a sharp, accurate summary

✏️ Read β†’ Reason β†’ Write

You: "Translate the proposal to French and save it"
Agent: β†’ Get_Document_Content β†’ translate β†’ Upload_Document

πŸ—‚οΈ Navigate Your Library

You: "What files are in the Legal/Contracts folder?"
Agent: β†’ List_SharePoint_Documents("Legal/Contracts")

πŸ“Š Supported File Formats

πŸ“„ Format

πŸ€– What the Agent Gets

PDF

Full text from every page

Word .docx .doc

Complete document content

Excel .xlsx .xls

All sheets as structured text

Text, JSON, Markdown, HTML, YAML, Python

Raw content as-is

Images, ZIP, binaries

File type + Base64


✨ Features

Feature

Description

πŸ”€

Dual API Support

Choose Office365 REST or Microsoft Graph API

πŸ“

Folder Management

List, create, delete, get full recursive tree

πŸ“„

Document Management

Upload, download, update, delete, search, read content

🏷️

Metadata Management

Read and update SharePoint list-item fields

πŸ”

Smart Parsing

Auto-detects PDF / Word / Excel / text

πŸ”Ž

KQL Search

Native SharePoint KQL search for semantic file finding

πŸ“‚

Flexible Library Scope

Scope to a subfolder or access the entire library root

πŸ”

Auto-Retry

Exponential backoff on SharePoint 429/503 throttling

πŸš€

Dual Transport

stdio for desktop Β· http for Docker/remote

πŸͺ΅

Structured Logging

JSON in production Β· coloured console in dev

🐳

Docker-Ready

Single command: docker compose up -d

πŸ›‘οΈ

Non-Root Container

Runs as unprivileged user inside Docker

🩺

Health Check

Live /health endpoint with real SharePoint check

πŸ€–

CI/CD

Tested on Python 3.10 Β· 3.11 Β· 3.12 Β· 3.13


⚑ Quickstart

1️⃣ Install

pip install sharepoint-mcp

Or from source:

git clone https://github.com/ravikant1918/sharepoint-mcp.git
cd sharepoint-mcp && pip install -e .

2️⃣ Configure

cp .env.example .env
# Open .env and fill in your Azure AD credentials
SHP_ID_APP=your-azure-app-client-id
SHP_ID_APP_SECRET=your-azure-app-secret
SHP_TENANT_ID=your-tenant-id
SHP_SITE_URL=https://your-tenant.sharepoint.com/sites/your-site
SHP_API_TYPE=office365   # or "graph" / "graphql" for Microsoft Graph API

πŸ”‘ New to Azure AD? Follow the step-by-step guide β†’
πŸ”€ Choose Your API: SharePoint MCP supports both Office365 REST API (default) and Microsoft Graph API. See API Configuration Guide β†’

Optional: Scope to a subfolder

By default, the server accesses your entire document library root. To restrict operations to a specific subfolder:

# Only operate within this subfolder (omit for full library access)
SHP_DOC_LIBRARY=mcp_server

# Library name (only needed if your org renamed "Shared Documents")
# Graph API auto-detects the default drive β€” this is only for Office365 REST API
# SHP_LIBRARY_NAME=Shared Documents

3️⃣ Run

# πŸ” Interactive testing with MCP Inspector
npx @modelcontextprotocol/inspector -- sharepoint-mcp

# ▢️ Run directly
sharepoint-mcp

🐳 Docker

The fastest way to deploy for remote or cloud use.

πŸ“‹ Usage Scenarios

Use this for production deployments with the latest stable release:

# Step 1: Clone repository
git clone https://github.com/ravikant1918/sharepoint-mcp.git
cd sharepoint-mcp

# Step 2: Create .env file with your SharePoint credentials
cp .env.example .env
# Edit .env and fill in:
# SHP_ID_APP=your-app-id
# SHP_ID_APP_SECRET=your-secret
# SHP_TENANT_ID=your-tenant-id
# SHP_SITE_URL=https://yourcompany.sharepoint.com/sites/yoursite

# Step 3: Start container (pulls from DockerHub automatically)
docker compose up -d

# Step 4: Verify it's running
docker compose ps
curl http://localhost:8000/health

# View logs
docker compose logs -f

# Stop container
docker compose down

What happens: Pulls ravikant1918/sharepoint-mcp:latest from DockerHub with automatic architecture detection (Intel/ARM).


Scenario B: Use Specific Version

Lock to a specific version for stability or testing:

# Step 1: Set version via environment variable
SHAREPOINT_MCP_VERSION=v1.0.1 docker compose up -d

# Or add to .env file
echo "SHAREPOINT_MCP_VERSION=v1.0.1" >> .env
docker compose up -d

What happens: Pulls ravikant1918/sharepoint-mcp:v1.0.1 instead of latest.


Scenario C: Build Locally from Source

Use this for development or when you've made local code changes:

# Step 1: Clone and setup
git clone https://github.com/ravikant1918/sharepoint-mcp.git
cd sharepoint-mcp
cp .env.example .env
# Edit .env with your credentials

# Step 2: Build from local Dockerfile and start
docker compose up -d --build

# Step 3: Rebuild after code changes
docker compose down
docker compose up -d --build

What happens: Builds image from local Dockerfile, tags as ravikant1918/sharepoint-mcp:latest, and starts container.


Scenario D: Use Custom Image/Fork

If you've forked the repo and published to your own DockerHub:

# Use your custom image
SHAREPOINT_MCP_IMAGE=myusername/sharepoint-mcp \
SHAREPOINT_MCP_VERSION=dev \
docker compose up -d

# Or add to .env
echo "SHAREPOINT_MCP_IMAGE=myusername/sharepoint-mcp" >> .env
echo "SHAREPOINT_MCP_VERSION=dev" >> .env
docker compose up -d

What happens: Pulls from your custom registry/repository.


πŸ”§ Common Commands

# Start in detached mode
docker compose up -d

# Start with live logs
docker compose up

# View logs
docker compose logs -f

# Stop container
docker compose down

# Restart container
docker compose restart

# Pull latest image
docker compose pull

# Rebuild and restart
docker compose up -d --build

# Remove everything (including volumes)
docker compose down -v

Using Podman? Just replace docker with podman β€” fully compatible.

Docker Environment Variables

Variable

Default

Description

TRANSPORT

http

stdio or http

HTTP_HOST

0.0.0.0

Bind address

HTTP_PORT

8000

Port

LOG_FORMAT

json

json or console


πŸ”Œ Transport Modes

Mode

Best For

Set With

stdio

Claude Desktop, Cursor, MCP Inspector

TRANSPORT=stdio (default)

http

Docker, remote agents, VS Code Copilot, REST clients

TRANSPORT=http


πŸ”— Integrations

πŸ€– Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "sharepoint": {
      "command": "sharepoint-mcp",
      "env": {
        "SHP_ID_APP": "your-app-id",
        "SHP_ID_APP_SECRET": "your-app-secret",
        "SHP_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site",
        "SHP_TENANT_ID": "your-tenant-id",
        "SHP_DOC_LIBRARY": "my-subfolder"
      }
    }
  }
}

πŸ’‘ Omit SHP_DOC_LIBRARY to access the full library root. If your org uses Office365 REST API and renamed the default library, also set SHP_LIBRARY_NAME.

πŸ’» VS Code Copilot (Agent Mode)

  1. Start the server via Docker or TRANSPORT=http sharepoint-mcp

  2. Create .vscode/mcp.json in your workspace:

{
  "servers": {
    "sharepoint": {
      "url": "http://localhost:8000/mcp/",
      "type": "http"
    }
  }
}
  1. Open Copilot Chat β†’ switch to Agent mode β†’ your 14 SharePoint tools are available.

⚠️ Trailing slash matters β€” the URL must end with /mcp/ (not /mcp).

⌨️ Cursor / Continue

Add to your MCP config (uses stdio transport):

{
  "mcpServers": {
    "sharepoint": {
      "command": "sharepoint-mcp",
      "env": {
        "SHP_ID_APP": "your-app-id",
        "SHP_ID_APP_SECRET": "your-app-secret",
        "SHP_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site",
        "SHP_TENANT_ID": "your-tenant-id"
      }
    }
  }
}

πŸ› οΈ All 14 Tools

πŸ“ Folder Management

Tool

What It Does

List_SharePoint_Folders

πŸ“‹ List all sub-folders in a directory

Get_SharePoint_Tree

🌳 Get full recursive folder + file tree

Create_Folder

βž• Create a new folder

Delete_Folder

πŸ—‘οΈ Delete an empty folder

πŸ“„ Document Management

Tool

What It Does

List_SharePoint_Documents

πŸ“‹ List all files with metadata

Search_SharePoint

πŸ”Ž Search documents using KQL queries

Get_Document_Content

πŸ“– Read & parse file content (PDF/Word/Excel/text)

Upload_Document

⬆️ Upload file as string or Base64

Upload_Document_From_Path

πŸ“‚ Upload a local file directly

Update_Document

✏️ Overwrite existing file content

Delete_Document

πŸ—‘οΈ Permanently delete a file

Download_Document

⬇️ Download file to local filesystem

🏷️ Metadata Management

Tool

What It Does

Get_File_Metadata

πŸ” Get all SharePoint list-item fields

Update_File_Metadata

✏️ Update metadata fields


βš™οΈ Full Configuration Reference

Variable

Required

Default

Description

SHP_ID_APP

βœ…

Azure AD app client ID

SHP_ID_APP_SECRET

βœ…

Azure AD client secret

SHP_TENANT_ID

βœ…

Microsoft tenant ID

SHP_SITE_URL

βœ…

SharePoint site URL

SHP_API_TYPE

office365

office365, graph, or graphql

SHP_LIBRARY_NAME

Shared Documents

Library name (Office365 REST only; Graph auto-detects)

SHP_DOC_LIBRARY

(empty = full library)

Subfolder scope (e.g. mcp_server). Empty = entire library

SHP_MAX_DEPTH

15

Max tree depth

SHP_MAX_FOLDERS_PER_LEVEL

100

Folders per batch

SHP_LEVEL_DELAY

0.5

Delay (s) between tree levels

TRANSPORT

stdio

stdio or http

HTTP_HOST

0.0.0.0

HTTP bind host

HTTP_PORT

8000

HTTP port

LOG_LEVEL

INFO

DEBUG INFO WARNING ERROR

LOG_FORMAT

console

console or json


⚠️ Limitations

Limitation

Details

Single site

Connects to one SharePoint site per server instance (multi-site planned for v2.0)

Sync client

Uses synchronous SharePoint REST API calls (async client planned for v1.3)

No sharing

Cannot create sharing links yet (planned for v1.1)

Large files

Very large files may hit memory limits during content extraction

Rate limits

SharePoint throttling (429/503) is handled with auto-retry, but sustained bulk operations may be slow


πŸ”§ Troubleshooting

Authentication Errors

Problem: Missing or invalid SharePoint credentials
Solution: Verify all 4 required environment variables are set:

echo $SHP_ID_APP $SHP_ID_APP_SECRET $SHP_TENANT_ID $SHP_SITE_URL

Connection Issues (HTTP Transport)

Problem: Agent can't connect to the MCP server
Solution:

  1. Ensure the server is running: curl http://localhost:8000/mcp/

  2. Check the URL ends with /mcp/ (trailing slash required)

  3. Verify the port is not blocked by a firewall

Docker Container Unhealthy

Problem: podman ps / docker ps shows (unhealthy)
Solution: Check container logs for errors:

docker logs sharepoint-mcp

Debug Logging

Enable verbose output by setting LOG_LEVEL=DEBUG:

LOG_LEVEL=DEBUG sharepoint-mcp

For Docker, add to your .env file or docker-compose.yml:

LOG_LEVEL=DEBUG
LOG_FORMAT=console

Permission Errors

Problem: Access denied from SharePoint
Solution:

  1. Verify the Azure AD app has the required API permissions

  2. Ensure admin consent has been granted (if required by your org)

  3. Confirm SHP_SITE_URL points to a site your app has access to


πŸ§ͺ Development

git clone https://github.com/ravikant1918/sharepoint-mcp.git
cd sharepoint-mcp
pip install -e ".[dev]"

make test      # run all tests
make inspect   # πŸ” launch MCP Inspector
make check     # quick import sanity check
make clean     # 🧹 remove caches

πŸ“š Documentation

πŸ“„ Doc

πŸ“ Description

⚑ Getting Started

Full setup guide

βš™οΈ Configuration

All environment variables

πŸ› οΈ Tools Reference

Detailed tool parameters

πŸ›οΈ Architecture

Design and layer diagram

πŸ”‘ Azure Setup

Azure AD app registration guide

πŸ—ΊοΈ Roadmap

Planned features

πŸ“… Changelog

Version history


🀝 Contributing

Contributions are welcome! Please read docs/contributing.md and our Code of Conduct.

  1. 🍴 Fork the repo

  2. 🌿 Create a branch: git checkout -b feat/my-tool

  3. βœ… Add tests: make test

  4. πŸ“¬ Open a Pull Request


πŸ”’ Security

Found a vulnerability? Please do not open a public issue.
Report privately via GitHub Security Advisories or see SECURITY.md.


MIT License Β© 2026 Ravi Kant

⭐ If this project helps you, please star it on GitHub!

Available Tools

14 tools
Create_FolderB

Create a new folder in a SharePoint directory. Use None/null or empty string for parent_folder to create in document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo
parent_folderNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It mentions creation (a mutation) but does not address permissions, error handling, or behavior when the folder already exists, leaving ambiguity.

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

Conciseness5/5

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

Two sentences with no wasted words. The purpose is stated first, followed by a concise usage tip. Well-structured and efficient.

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 tool with 2 optional parameters, no output schema, and no annotations, the description covers the basic purpose and a key usage detail. However, it leaves gaps in error handling and default behavior, which an agent would need to infer or test.

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 0%, so the description must compensate. It explains the parent_folder parameter usage, but folder_name is only implied. This adds some meaning beyond the schema, but not enough to fully specify both parameters.

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

Purpose4/5

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

The description clearly states the tool's function: creating a new folder in a SharePoint directory. It distinguishes from sibling tools like Delete_Folder or List_SharePoint_Folders, though it does not explicitly contrast with them.

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?

Provides a specific usage tip for parent_folder (use null/empty for root), which is helpful. However, it lacks guidance on when to use this tool versus alternatives like Upload_Document or List_SharePoint_Folders, and does not mention prerequisites or context.

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

Delete_DocumentB

Permanently delete a document from a SharePoint folder. Use empty string for folder_name for files in document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo
file_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 full burden. It mentions 'Permanently delete', implying irreversibility, but does not disclose permissions needed, side effects (e.g., on version history), or behavior when the file does not exist. This is minimal disclosure for a deletion 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?

Two concise sentences, front-loaded with the key action and a helpful usage hint. No unnecessary words or redundancies.

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

Completeness3/5

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

For a simple deletion tool with an output schema (not shown but indicated), the description covers the core purpose and a special case. However, it lacks details on file_name parameter semantics and error handling behavior, leaving room for ambiguity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only adds meaning for folder_name (empty string for root), but provides no guidance on file_name (e.g., format, extension, path). Given no param descriptions in schema, the description is insufficient to help the agent understand all parameters.

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 ('Permanently delete') and the resource ('document from a SharePoint folder'), and distinguishes from sibling tools (e.g., Delete_Folder) by specifying 'document'. It also provides a specific usage hint for files in the document library root.

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 gives a specific tip for using empty string folder_name for root files, but does not explicitly state when to use this tool versus alternatives like Delete_Folder or other sibling tools. The context signals show many related tools, but no explicit when-not-to-use guidance is provided.

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

Delete_FolderC

Delete an empty folder from SharePoint. Provide the full path to the folder to delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNo

TDQS

C2.7/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. It reveals the destructive nature ('Delete'), but does not disclose error behavior for non-empty folders, permission requirements, or side effects. This lack of detail hinders safe usage.

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 brief (two sentences), and the first sentence clearly states the core purpose. However, it sacrifices essential detail for brevity, leaving out crucial constraints and usage context.

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

Completeness2/5

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

Given the tool's simplicity (1 parameter, no output schema), the description should fully cover behavior including error states and prerequisites. It does not address what happens if the folder is not empty, if the path is invalid, or if the user lacks permissions. This incompleteness may lead to invocation failures.

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

Parameters2/5

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

The description adds minimal meaning to the single parameter 'folder_path' (schema has 0% description coverage). It says to 'Provide the full path' but does not specify format, example, or whether the parameter is required. Agents may struggle with correct invocation.

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 'Delete an empty folder from SharePoint', clearly indicating the action (delete) and the resource (empty folder). It distinguishes from sibling tools like Delete_Document which target documents. However, it omits a critical constraint: the folder must be empty, which could lead to misuse.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., Delete_Document) or what happens if conditions are not met (e.g., folder not empty). The instruction to 'Provide the full path' is minimal and does not help the agent decide when to invoke this tool.

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

Download_DocumentA

Download a SharePoint document to the local filesystem (with automatic fallback to ./downloads/). Use empty string for folder_name for files in document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo
file_nameNo
local_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/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 reveals the automatic fallback path behavior but omits other behavioral traits such as error handling, overwrite behavior, or authentication requirements.

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

Conciseness5/5

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

Two concise sentences with no redundant content. Each sentence adds distinct value: the first states purpose and fallback, the second gives parameter guidance.

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 an output schema, the description lacks details on parameter interactions, example values, error handling, and how local_path relates to the fallback. Given three parameters and no annotations, the description is incomplete for effective tool usage.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only explains the folder_name parameter. It does not clarify the meaning or usage of file_name or local_path, leaving significant gaps for the agent.

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 downloads a SharePoint document to the local filesystem, specifying the verb 'download' and the resource 'SharePoint document'. It distinguishes from sibling tools like Get_Document_Content by mentioning local filesystem saving.

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 specific guidance on using an empty string for folder_name for root files, which aids correct invocation. However, it does not mention alternative tools or when not to use this tool.

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

Get_Document_ContentC

Retrieve and decode the content of a SharePoint document. Supports PDF, Word, Excel, and plain-text files. For files in the document library root, use empty string for folder_name.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo
file_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must fully convey behavioral traits. It mentions decoding and supported formats but omits critical details like return format (text vs binary), authentication requirements, or file size limits. Minimal transparency beyond 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.

Conciseness5/5

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

Two sentences, no wasted words. First sentence captures primary action, second provides a specific usage hint. Excellent front-loading and 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?

Despite existence of output schema, the description fails to clarify parameter usage and tool differentiation. Given two undefined parameters and no annotations, the description is too sparse to be complete. Sibling tools require clearer distinction.

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

Parameters2/5

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

Schema description coverage is 0%, so description must add meaning. It partially explains folder_name (use empty for root) but gives no guidance on file_name parameter, its format, or how the two interact. Incomplete semantic 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 retrieving and decoding SharePoint document content and lists supported file types. However, it does not explicitly differentiate from sibling tools like Download_Document or Get_File_Metadata, which might overlap in 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?

Provides a specific hint about using empty string for folder_name when file is in root, but lacks any guidance on when to use this tool versus alternative sibling tools. No when-not-to-use or prerequisite conditions mentioned.

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

Get_File_MetadataC

Retrieve all SharePoint list-item metadata fields for a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameYes
file_nameYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must cover behavioral traits. It only states the core action without disclosing read-only nature, error handling, authentication needs, or performance characteristics. For a retrieval tool, 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 a single concise sentence, front-loading the purpose. However, it could be slightly expanded without losing conciseness to include parameter hints.

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

Completeness2/5

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

No output schema, so description must explain return values. It only says 'all metadata fields' without format or example. Error cases and parameter constraints are missing, leaving the agent underinformed.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention folder_name or file_name. The description provides no additional meaning beyond the schema, failing to compensate for low coverage as required.

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 the action 'Retrieve' and the resource 'all SharePoint list-item metadata fields for a document', distinguishing it from siblings like Get_Document_Content (content) and Update_File_Metadata (update).

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_Document_Content for content or Search_SharePoint for searching. The description does not provide context for optimal usage.

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

Get_SharePoint_TreeA

Get a recursive tree view of folders and files starting from a SharePoint directory. Use None/null or empty string for document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_folderNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations present, so description must fully disclose behavior. It mentions recursion and tree view but omits details like depth limits, permission requirements, 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.

Conciseness5/5

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

A single, well-structured sentence that immediately conveys the tool's purpose and key usage hint.

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?

Adequate for a simple tool with one parameter, but lacks information about return format, limitations, or comparison to sibling tools, which would improve completeness.

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?

With 0% schema description coverage, the description adds value by explaining how to specify the root directory (None/null/empty string), though the format of the parent_folder path is not elaborated.

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

Purpose5/5

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

Clearly states it returns a recursive tree view of folders and files starting from a directory, distinguishing it from flat listing tools like List_SharePoint_Documents and List_SharePoint_Folders.

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?

Only provides guidance for the root parameter (use None/null/empty string) but does not specify when to use this tool versus siblings 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.

List_SharePoint_DocumentsA

List all documents (with metadata) inside a SharePoint folder. For Graph API, use empty string or 'root' for the document library root. For nested folders, use paths like 'Reports' or 'Reports/2024'.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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. It discloses path syntax but omits critical behaviors like recursion, pagination, error handling, or permission requirements. The agent cannot infer how deep the listing goes or what happens with empty folders.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence states the primary purpose; the second provides actionable usage details. 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?

With a single optional parameter and an output schema present, the description covers the basic usage. However, it lacks details on recursion, permissions, and how the tool behaves with large result sets. Sibling differentiation is implied but not explicit.

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

Parameters4/5

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

Schema coverage is 0% (no parameter descriptions), but the description compensates by explaining valid values for folder_name: empty string/'root' for root, and path patterns like 'Reports/2024' for nested folders. This adds essential semantic 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 verb ('List') and resource ('all documents with metadata inside a SharePoint folder'), and it distinguishes from sibling tools like List_SharePoint_Folders by focusing on documents. The path usage tips further clarify scope.

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 the use case (listing documents in a folder) but does not explicitly guide when to use this tool over alternatives such as Search_SharePoint or Get_File_Metadata. No exclusions or when-not-to-use advice is provided.

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

List_SharePoint_FoldersA

List all sub-folders in a SharePoint directory. Use None/null or empty string for document library root. For Graph API, the root represents the default document library.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_folderNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states 'list all sub-folders' but does not clarify if this includes nested sub-folders (recursive vs flat), permissions required, rate limits, or return format. This ambiguity limits 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 two sentences with no waste: the first sentence states the purpose, the second adds parameter usage details. It is front-loaded and efficient.

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 one parameter, no annotations, and no output schema, the description is fairly complete for a list tool but lacks details on output structure (e.g., folder names only or metadata) and whether the list is recursive. It is adequate but could be fuller.

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% description coverage, but the description adds significant value by explaining that the parent_folder parameter can be None/null/empty for the document library root and clarifies what root means for Graph API. This goes beyond the schema's type and title.

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 sub-folders in a SharePoint directory, distinguishing it from sibling tools like List_SharePoint_Documents and Get_SharePoint_Tree. It specifies the exact resource (SharePoint directory) and action (list sub-folders), with additional context on handling the root.

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 guidance on how to use the parent_folder parameter (None/null/empty string for root) but does not explicitly state when to use this tool vs alternatives like Get_SharePoint_Tree for hierarchy or List_SharePoint_Documents for files. Usage is implied but not directly contrasted.

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

Search_SharePointA

Search SharePoint for documents using Keyword Query Language (KQL). Useful for finding files when you don't know their exact folder path. Returns up to row_limit results with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
row_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The description mentions returning up to row_limit results with metadata and notes KQL usage, but lacks detail on authentication, error handling, or rate limits. Given no annotations, more transparency would be beneficial.

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 consists of two concise sentences that front-load the core purpose and usage context, with no unnecessary words.

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

Completeness3/5

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

Given the tool's simplicity (two parameters, output schema exists), the description covers the main use case but omits details like query syntax examples or what metadata fields are returned, which would aid usability.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It mentions KQL (relating to query) and row_limit as a cap, but does not explain valid formats or the default behavior beyond the schema's default of 20.

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 searches SharePoint for documents using KQL, specifying a distinct action and resource that differentiates it from sibling tools like Create_Folder or Download_Document.

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

Usage Guidelines4/5

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

The description indicates when to use the tool: 'when you don't know their exact folder path.' While it doesn't explicitly mention alternatives, the sibling tools list implies alternatives for known paths.

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

Update_DocumentB

Overwrite the content of an existing SharePoint document. Use empty string for folder_name for files in document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo
file_nameNo
contentNo
is_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It only states the action (overwrite) without detailing necessary permissions, side effects, or behavior if file does not exist. Minimal disclosure beyond the core action.

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

Conciseness5/5

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

Two clear, front-loaded sentences with no unnecessary words. Highly concise.

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?

Adequate for a simple update operation with an output schema, but lacks context on content format, base64 usage, and how it interacts with other document operations.

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 0%, but the description adds meaning for folder_name. However, it fails to explain file_name, content, and is_base64 parameters, leaving gaps for an agent.

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 overwrites content of an existing SharePoint document, with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like Upload_Document, which also involves writing content.

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

Usage Guidelines3/5

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

Provides a specific usage hint about using empty string for folder_name for root library files, but lacks guidance on when to use this tool versus alternatives like Update_File_Metadata or Upload_Document.

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

Update_File_MetadataB

Update one or more SharePoint list-item metadata fields for a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameYes
file_nameYes
metadataYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must carry full burden. It states 'update' but does not disclose whether it replaces or merges metadata, idempotency, side effects, permission requirements, or error behavior. Minimal transparency beyond the verb.

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 redundant information. Efficiently conveys the core purpose.

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

Completeness2/5

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

Despite having 3 parameters, no output schema, and no annotations, the description is only one sentence. It lacks details on expected input format for metadata, whether folder_name is a path or name, return value, error cases, or any behavioral nuances. Incomplete for a mutation tool.

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

Parameters2/5

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

Schema coverage is 0%, so description must compensate. It adds 'one or more SharePoint list-item metadata fields' but does not explain the structure of the metadata object (e.g., key-value pairs, allowed fields). Folder_name and file_name are self-explanatory but lack any additional context.

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 'update', the resource 'SharePoint list-item metadata fields for a document', and the scope 'one or more'. It distinguishes itself from sibling tools like Get_File_Metadata (read) and Update_Document (different action).

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 Get_File_Metadata or Update_Document. No mention of preconditions or when not to use it.

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

Upload_DocumentA

Upload a new document to a SharePoint folder. Pass content as a UTF-8 string or Base64-encoded bytes. Use empty string for folder_name to upload to document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYes
contentYes
folder_nameNo
is_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 must fully disclose behavioral traits. It covers content encoding (UTF-8 or Base64) and folder_name defaulting, but does not describe error conditions, authentication needs, rate limits, or the return value (though an output schema exists). This is adequate but not fully comprehensive.

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 two sentences. The first sentence front-loads the action and resource, and the second adds key usage detail. Every word earns its place with no redundancy.

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

Completeness4/5

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

Given the tool has 4 parameters, an output schema, and many sibling tools, the description is fairly complete. It covers content encoding and folder root behavior. It could mention return value or error scenarios, but the output schema likely fills that gap. Overall sufficient for a simple upload 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 has 0% description coverage, so the description must add meaning. It clarifies the 'content' parameter format and the 'folder_name' default behavior, but does not explain 'file_name' or 'is_base64' beyond their schema titles. This adds partial value but leaves gaps.

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 'Upload a new document' to a 'SharePoint folder', using specific verbs and resource. It distinguishes from sibling tools like 'Upload_Document_From_Path', which uploads from a file path. The description also specifies the content format and a notable parameter behavior (folder_name default).

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 implicit usage guidance (e.g., using empty string for folder_name to upload to root) but lacks explicit when-to-use or when-not-to-use context. It does not differentiate from alternatives such as 'Upload_Document_From_Path' or explain when to prefer this tool over similar ones.

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

Upload_Document_From_PathA

Upload a local file directly to SharePoint without converting to Base64 first. Use empty string for folder_name to upload to document library root.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_nameNo
file_pathNo
new_file_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description reveals a key behavioral trait (no Base64 conversion), but omits other important details like error handling, permissions, or overwrite behavior, requiring the agent to infer.

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

Conciseness5/5

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

Two concise sentences front-loaded with the core action and a key usage detail, with no wasted words.

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

Completeness3/5

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

The description covers the basic purpose and one parameter hint, but is missing details on new_file_name semantics, error scenarios, and differentiation from sibling tools, leaving gaps.

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

Parameters3/5

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

Schema description coverage is 0%; the description adds meaning for folder_name (empty string for root) but fails to explain file_path or new_file_name, leaving two parameters undocumented.

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 uploads a local file to SharePoint without Base64 conversion, distinguishing it from sibling tools like Upload_Document. The verb 'Upload' and specific resource 'SharePoint' with the unique method are explicit.

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 context for when to use this tool (e.g., avoiding Base64 conversion) and a hint for folder_name usage, but lacks explicit when-not or alternative recommendations, leaving usage guidance incomplete.

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. 14 tool updatesv0.1.0
    • First observedCreate_Folder
    • First observedDelete_Document
    • First observedDelete_Folder
    • First observedDownload_Document
    • First observedGet_Document_Content
    • First observedGet_File_Metadata
    • First observedGet_SharePoint_Tree
    • First observedList_SharePoint_Documents
    • First observedList_SharePoint_Folders
    • First observedSearch_SharePoint
    • First observedUpdate_Document
    • First observedUpdate_File_Metadata
    • First observedUpload_Document
    • First observedUpload_Document_From_Path

TDQS

A3.5/5.0
Disambiguation4/5

Tools mostly target distinct actions, but Upload_Document and Upload_Document_From_Path have overlapping purposes (both upload, differing only in input format). Download_Document and Get_Document_Content also serve similar retrieval needs, potentially causing confusion for an agent.

Naming Consistency4/5

Most tools follow a verb_noun pattern (Create_Folder, Delete_Document), but inconsistencies exist: Get_SharePoint_Tree includes 'SharePoint' while others don't; Search_SharePoint lacks a noun. Overall pattern is clear, with minor deviations.

Tool Count5/5

14 tools provide a well-scoped set for SharePoint document management. Each tool serves a distinct operation (CRUD for folders and documents, metadata, search, tree view), with no excess or deficiency.

Completeness4/5

Basic CRUD and metadata operations are covered, and search and tree view add value. Minor gaps exist: renaming/moving items, updating folder metadata, or deleting non-empty folders are not supported. Still, core workflows are complete.

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/ravikant1918/sharepoint-mcp'

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