SharePoint MCP Server
sharepoint-mcp
MCP server pre SharePoint Online — správa listov, knižníc, stĺpcov, pohľadov, položiek a súborov priamo z AI agenta.
Štruktúra projektu
sharepoint-mcp/
├── .env.example # Šablóna konfigurácie (skopíruj do .env)
├── package.json
├── tsconfig.json
└── src/
├── index.ts # MCP server + registrácia všetkých nástrojov
├── auth.ts # MSAL browser login + file token cache
├── sharepoint.ts # SharePoint REST klient (GET / POST / PATCH / DELETE / upload)
├── types.ts # Zdieľané TypeScript typy (ColumnSpec, ViewSpec)
├── column-types.ts # Mapovanie typov stĺpcov + buildFieldBody
└── tools/
├── lists.ts # Nástroje pre listy a knižnice
├── columns.ts # Nástroje pre stĺpce
├── items.ts # Nástroje pre položky
├── views.ts # Nástroje pre pohľady
└── files.ts # Nástroje pre súboryRelated MCP server: SharePoint MCP Server
Dostupné nástroje (22)
Nástroj | Popis |
| Nastaví SharePoint site URL pre aktuálnu reláciu |
| Zoznam všetkých listov a knižníc na site |
| Stĺpce, pohľady a metadáta listu / knižnice |
| Export kompletného SchemaXml (backup, klonovanie) |
| Vytvorí list alebo knižnicu so stĺpcami a pohľadmi |
| Vytvorí list zo SchemaXml reťazca |
| Vymaže list alebo knižnicu |
| Načíta položky (OData filter, select, orderby, paging) |
| Vytvorí novú položku |
| Aktualizuje položku podľa ID |
| Vymaže položku podľa ID |
| Pridá stĺpec do existujúceho listu |
| Zmení nastavenia stĺpca (názov, required, default, choices…) |
| Vymaže stĺpec |
| Zoznam pohľadov listu |
| Vytvorí nový pohľad so stĺpcami a filtrom |
| Aktualizuje pohľad (stĺpce, filter, row limit) |
| Zoznam súborov a priečinkov v knižnici |
| Nahrá súbor (base64 obsah) |
| Stiahne súbor (vráti base64 obsah) |
| Vymaže súbor |
Autentifikácia
Nevyžaduje app registration ani admin súhlas. Používa PnP Management Shell — well-known public client (31359c7f-bd7e-475c-86db-fdb8c937548e).
Pri prvom spustení sa otvorí prehliadač → prihlásenie pod vlastným účtom → jednorazový consent
Token je uložený v
~/.sharepoint-mcp/token-cache.json— ďalšie spustenia nevyžadujú loginJeden token pokrýva všetky site collections na tom istom tenante
Prepínanie medzi site collections: zavolaj
set_sites novou URL
Inštalácia a spustenie
# 1. Nainštaluj závislosti
npm install
# 2. Vytvor .env zo šablóny
cp .env.example .env
# Uprav SITE_URL v .env
# 3. Spusti vývojový server (voliteľné — Claude Code štartuje server sám)
npm run dev.env
SITE_URL=https://contoso.sharepoint.com/sites/mysiteKonfigurácia MCP v Claude Desktop
Pridaj do claude_desktop_config.json (zvyčajne %APPDATA%\Claude\claude_desktop_config.json alebo na Windows %LOCALAPPDATA%\Packages\Claude_...\LocalCache\Roaming\Claude\claude_desktop_config.json):
Možnosť 1 — skompilovaný build (odporúčané)
Najprv sprav build projektu:
npm run buildPotom pridaj do konfigurácie (uprav cestu podľa svojho umiestnenia projektu):
{
"mcpServers": {
"sharepoint": {
"command": "node",
"args": ["C:/Users/Lukas/Documents/AI Projects/sharepoint-mcp/dist/index.js"]
}
}
}Po každej zmene kódu treba znovu spustiť npm run build.
Možnosť 2 — priamo TypeScript cez tsx (len pre vývoj)
{
"mcpServers": {
"sharepoint": {
"command": "npx",
"args": ["tsx", "C:/Users/Lukas/Documents/AI Projects/sharepoint-mcp/src/index.ts"]
}
}
}Pozor:
cwdv konfigurácii Claude Desktop nefunguje spoľahlivo — vždy používaj absolútnu cestu vargs.
Po uložení reštartuj Claude Desktop — server sa spustí automaticky pri prvom volaní nástroja.
Tip: Ak pracuješ na viacerých site collections, stačí na začiatku konverzácie zavolať
set_sites príslušnou URL. Token sa znovu použije, prehliadač sa neotvorí.
Typy stĺpcov
Typ | Popis | Voliteľné parametre |
| Jednoriadkový text | — |
| Viacriadkový text |
|
| Číslo |
|
| Mena |
|
| Dátum a čas |
|
| Áno / Nie |
|
| Výber jednej hodnoty |
|
| Výber viacerých hodnôt |
|
| People picker |
|
| Odkaz | — |
| Vypočítaný stĺpec |
|
Available Tools
21 toolsadd_columnB
Add a new column to an existing list or library. The column is automatically added to the default view unless addToDefaultView is false.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| column | Yes | ||
| addToDefaultView | No | Default: true. |
TDQS
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 the default view behavior which is useful, but doesn't address important aspects like required permissions, whether this is a destructive/mutating operation, error conditions, or what happens if the column already exists. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - a single sentence that communicates the core functionality and key behavioral detail (default view behavior). Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with 3 parameters (including a deeply nested object), no annotations, and no output schema, the description is inadequate. It doesn't address the tool's complexity, expected outcomes, error conditions, or the rich parameter structure that requires significant guidance for proper use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage, the description must compensate but adds minimal parameter context. It mentions the addToDefaultView parameter behavior but doesn't explain the complex 'column' object structure or the 'listName' parameter. The description doesn't provide meaningful semantic context beyond what's already in the sparse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('add a new column') and target resource ('to an existing list or library'), distinguishing it from sibling tools like create_list or update_column. It provides a complete verb+resource statement that is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'existing list or library' and the default view behavior, but doesn't explicitly state when to use this tool versus alternatives like update_column or create_list. No explicit exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_itemB
Create a new item in a list. Pass field values as key-value pairs using internal column names. For person fields use the format {FieldNameId: userId}. For date fields use ISO 8601 strings.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| fields | Yes | Key-value map of internal field name → value. |
TDQS
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 this is a creation operation, implying it's a write/mutation tool, but doesn't cover critical aspects like required permissions, whether the operation is idempotent, error handling, or what happens on success (e.g., returns the new item ID). The format hints for person and date fields are useful but insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, with every sentence earning its place. The first sentence states the core purpose, and the subsequent sentences provide essential formatting details without redundancy. There's no wasted verbiage, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a write operation with 2 parameters, nested objects, and no output schema), the description is partially complete. It covers the purpose and parameter formatting well but lacks behavioral context (e.g., permissions, response format) and usage guidelines. Without annotations or an output schema, these gaps are notable, though the parameter guidance helps mitigate some issues.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the input schema, which has 50% coverage (only the 'fields' parameter has a description). It explains that 'fields' should be key-value pairs using internal column names and provides specific formatting rules for person fields (using userId) and date fields (ISO 8601 strings). This compensates well for the schema's gaps, though it doesn't detail 'listName' beyond what's implied by the purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'new item in a list', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_list' or 'update_item', which would require mentioning that this tool is for adding items to existing lists rather than creating lists themselves or modifying existing items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., that the list must already exist), exclusions, or comparisons to siblings like 'create_list' (for creating lists) or 'update_item' (for modifying items). This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_listA
Create a new SharePoint list or document library with optional columns and views. Columns are described using structured specs (type, choices, required, indexed, etc.). New columns are automatically added to the default view.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | List / library display name. | |
| type | No | list = generic list (baseTemplate 100), library = document library (101). Default: list. | |
| description | No | ||
| columns | No | Columns to create (leave empty for a title-only list). | |
| views | No | Additional views to create (beyond the default All Items view). |
TDQS
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 describes the creation action and mentions that 'new columns are automatically added to the default view', which adds useful behavioral context. However, it doesn't cover important aspects like required permissions, whether the operation is idempotent, error conditions, or what the return value contains (especially problematic with no output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core purpose. Every word earns its place - the first sentence states what the tool does, and the second provides important behavioral context about columns and default views. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 5 parameters, no annotations, and no output schema, the description provides adequate basic information but has significant gaps. It explains what the tool creates and some behavioral aspects, but doesn't cover what happens on success/failure, what permissions are needed, or what the return value looks like. Given the complexity of the input schema (with nested column specifications), the description could do more to help an agent understand the full scope of this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context about parameters by mentioning 'optional columns and views' and specifying that 'columns are described using structured specs (type, choices, required, indexed, etc.)'. With 80% schema description coverage, the baseline would be 3, but the description provides additional semantic understanding of how columns work beyond what's in the schema, particularly the relationship between columns and default views.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new SharePoint list or document library') with specific details about optional columns and views. It distinguishes from siblings like 'create_list_from_xml' by emphasizing structured specs rather than XML, and from 'create_item' by focusing on list creation rather than item creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the mention of 'optional columns and views' and the context of creating lists/libraries, but doesn't explicitly state when to use this tool versus alternatives like 'create_list_from_xml' or 'create_item'. No explicit exclusions or prerequisites are provided, leaving usage context somewhat implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_list_from_xmlA
Create a list from a full SharePoint SchemaXml string (e.g. obtained from get_list_schema_xml). Useful for cloning or restoring a list.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new list. | |
| schemaXml | Yes | Full SchemaXml string. | |
| description | No |
TDQS
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 it mentions the tool's purpose, it doesn't address critical behavioral aspects: whether this is a write operation (implied but not stated), what permissions are required, whether it's idempotent, what happens on failure, or what the output looks like. The description is insufficient 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.
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 functionality with an example, and the second provides usage context. No wasted words, front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 3 parameters, no annotations, and no output schema, the description is minimally adequate. It covers the purpose and basic usage context but lacks critical information about behavioral traits, error handling, and output format. The parameter coverage is partial, leaving gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 of 3 parameters have descriptions). The description adds value by explaining the 'schemaXml' parameter's purpose ('full SharePoint SchemaXml string') and providing a concrete example source ('e.g. obtained from get_list_schema_xml'), which gives context beyond the schema's basic description. However, it doesn't address the undocumented 'description' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a list'), the resource ('from a full SharePoint SchemaXml string'), and provides a specific example source ('e.g. obtained from get_list_schema_xml'). It distinguishes from siblings like 'create_list' by specifying the XML-based creation method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Useful for cloning or restoring a list') and implies an alternative ('create_list') by specifying the XML-based approach. However, it doesn't explicitly state when NOT to use it or compare directly with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_viewC
Create a new view for a list or library with specified columns, row limit, and optional CAML filter.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| name | Yes | View display name. | |
| columns | Yes | Ordered list of internal column names to show in the view. | |
| isDefault | No | Make this the default view. Default: false. | |
| rowLimit | No | Items per page. Default: 30. | |
| query | No | CAML query string for filtering / ordering. |
TDQS
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 creates a view but doesn't cover critical aspects like permissions required, whether the operation is idempotent, error conditions, or what happens on success (e.g., returns a view ID). For a creation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Create a new view') and lists key parameters without unnecessary details. Every word contributes to understanding, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (creation operation with 6 parameters) and lack of annotations and output schema, the description is insufficient. It doesn't explain the result (e.g., what's returned), error handling, or dependencies like needing an existing list. For a tool that modifies system state, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal value beyond the input schema, which has high coverage (83%). It mentions 'specified columns, row limit, and optional CAML filter', aligning with parameters 'columns', 'rowLimit', and 'query', but doesn't explain semantics like what 'CAML filter' means or how 'columns' relate to the list. With schema doing most documentation, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new view') and the resource ('for a list or library'), with specific attributes mentioned (columns, row limit, CAML filter). It distinguishes from siblings like 'get_views' (read) and 'update_view' (modify), though it doesn't explicitly contrast with them. The purpose is well-defined 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.
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. It doesn't mention prerequisites (e.g., needing an existing list), exclusions, or compare with similar tools like 'create_list' or 'update_view'. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_columnA
Delete a column from a list (by internal name). Cannot delete read-only or sealed columns.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| internalName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a key behavioral constraint ('Cannot delete read-only or sealed columns'), which is valuable context beyond the basic 'delete' action. However, it doesn't cover other important traits like permissions needed, whether the deletion is reversible, error handling, or what happens to data in the column. It adds some value but leaves gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core action and immediately adds the critical constraint. Every word earns its place, making it easy to parse quickly without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, 0% schema coverage, and no output schema, the description is moderately complete. It covers the purpose and a key constraint, but lacks details on parameters, return values, error cases, or side effects. For a destructive operation, more behavioral context would be helpful, but it meets a baseline for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter details. The description adds minimal semantics by specifying 'by internal name', which clarifies that 'internalName' refers to the column's internal identifier, not display name. However, it doesn't explain 'listName' or provide format examples. It partially compensates for the coverage gap but doesn't fully document both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 column from a list'), specifying it's done 'by internal name'. It distinguishes from siblings like 'delete_item' or 'delete_list' by focusing on columns, but doesn't explicitly contrast with 'update_column' which might be a closer alternative. The purpose is specific but could better differentiate from similar operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some implicit guidance by stating 'Cannot delete read-only or sealed columns', which hints at when NOT to use this tool. However, it doesn't explicitly say when to use it versus alternatives like 'update_column' for modifying columns or 'delete_list' for entire lists. The context is clear but lacks explicit when-to-use or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileB
Permanently delete a file from a document library.
| Name | Required | Description | Default |
|---|---|---|---|
| serverRelativeUrl | Yes | Server-relative URL of the file to delete. |
TDQS
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 states 'permanently delete,' which implies a destructive, irreversible action, but doesn't mention critical details like required authentication, potential side effects (e.g., impact on linked items), error conditions, or confirmation prompts. For a destructive tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It is front-loaded with the core action ('permanently delete') and resource, making it immediately understandable. Every word earns its place by contributing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a destructive tool with no annotations and no output schema, the description is incomplete. It lacks information on permissions, irreversible consequences, error handling, or what happens upon success (e.g., no return value confirmation). For a high-stakes operation like file deletion, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'serverRelativeUrl' fully documented in the schema. The description adds no parameter-specific information beyond what the schema provides, such as examples or format constraints. Baseline 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('permanently delete') and target resource ('a file from a document library'), distinguishing it from siblings like delete_item, delete_list, or delete_column which target different resources. It uses precise language that leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While it mentions 'permanently delete,' it doesn't specify prerequisites (e.g., permissions needed), when not to use it (e.g., for temporary deletion), or direct alternatives like delete_item for non-file resources. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_itemC
Delete a list item by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| id | Yes |
TDQS
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, it doesn't specify whether deletion is permanent or reversible, what permissions are required, whether it affects related data, or what happens on success/failure. This is inadequate for a destructive operation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with zero wasted words. It's appropriately sized for a simple deletion operation and front-loads the essential information (action, resource, identifier type).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema, and 0% parameter documentation, the description is incomplete. It doesn't address critical context like what 'delete' means operationally, what happens to the item, error scenarios, or return values. The presence of many sibling tools (especially other deletion operations) increases the need for clearer differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for both parameters, the description doesn't compensate at all. It mentions 'numeric ID' which corresponds to the 'id' parameter, but provides no context about the 'listName' parameter (what lists exist, format requirements, or relationship to other tools). For a tool with 2 undocumented parameters, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a list item'), specifying it's done 'by its numeric ID'. It distinguishes from siblings like delete_list (which deletes entire lists) and delete_column (which deletes columns), but doesn't explicitly differentiate from update_item or other item-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_item (which might archive instead of delete) or delete_list (which deletes entire lists). It doesn't mention prerequisites, error conditions, or typical use cases for item deletion versus other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_listC
Permanently delete a list or document library.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes |
TDQS
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 is 'permanently delete', which implies destructive and irreversible behavior, but doesn't cover permissions required, error conditions (e.g., if the list doesn't exist), or what happens to associated data. This is a significant gap for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, no annotations, no output schema, and low schema coverage, the description is incomplete. It lacks critical details like permissions, error handling, and confirmation of deletion, which are essential for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It implies the parameter is for identifying the list/library to delete but doesn't specify format (e.g., name, ID) or constraints. This adds minimal value beyond the schema, aligning with the baseline for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 target resource ('a list or document library'), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'delete_column' or 'delete_item', which also perform deletions on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'delete_column' or 'delete_item', nor does it mention prerequisites (e.g., needing the list to exist) or exclusions. It lacks context for decision-making among deletion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_fileC
Download a file from SharePoint. Returns base64-encoded content.
| Name | Required | Description | Default |
|---|---|---|---|
| serverRelativeUrl | Yes | Server-relative URL of the file, e.g. /sites/mysite/Documents/report.pdf |
TDQS
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 return format ('base64-encoded content'), which is useful, but fails to address critical aspects like authentication requirements, error handling (e.g., for invalid URLs), file size limits, or performance implications. This leaves significant gaps for a download operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that directly state the action and return value, with zero wasted words. It is front-loaded and efficiently communicates the core functionality without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a file download operation with no annotations and no output schema, the description is incomplete. It lacks details on authentication, error cases, rate limits, or what the base64 output entails (e.g., encoding specifics). For a tool that interacts with external systems and returns data, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'serverRelativeUrl' fully documented in the schema. The description adds no additional parameter information beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Download a file') and resource ('from SharePoint'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_files' or 'upload_file' beyond the basic verb, missing explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'list_files' for browsing or 'upload_file' for the opposite operation. The description lacks context about prerequisites, such as needing a file URL from another tool, or exclusions for 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.
get_itemsC
Query items in a list. Supports OData $filter, $select, $orderby, $top, $skip, $expand.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| filter | No | OData filter, e.g. "Status eq 'Active' and DueDate lt '2025-01-01'" | |
| select | No | Field internal names to return. | |
| orderBy | No | e.g. 'Title asc' or 'Modified desc' | |
| top | No | Max items to return (default: 100). | |
| skip | No | Skip N items (for paging). | |
| expand | No | Navigation properties to expand, e.g. ['Author', 'AssignedTo'] |
TDQS
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 support for OData parameters but fails to describe critical behaviors such as pagination details (beyond 'top' and 'skip'), rate limits, authentication needs, error handling, or the return format. For a query tool with 7 parameters, this leaves significant gaps in understanding how the tool operates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single sentence that directly states the purpose and key features. Every word earns its place, with no wasted information, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema, and no annotations), the description is incomplete. It lacks details on behavioral traits, usage context, and output format, which are crucial for an agent to invoke the tool correctly. The high schema coverage doesn't fully offset these gaps in a query operation with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal value beyond the input schema, which has high coverage (86%). It lists OData parameters like '$filter' and '$select' but doesn't explain their semantics or interactions beyond what's in the schema descriptions. With the schema doing most of the work, the baseline score of 3 is appropriate, as the description doesn't compensate with additional insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'Query items in a list' with a specific verb ('Query') and resource ('items in a list'), which distinguishes it from sibling tools like 'create_item' or 'delete_item'. However, it doesn't explicitly differentiate from other query-related siblings like 'get_list_schema' or 'get_views', keeping 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.
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 lists supported OData parameters but doesn't mention when to choose this over other query tools like 'get_list_schema' or 'get_views', nor does it specify prerequisites or exclusions, leaving the agent without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_list_schemaA
Get the full schema of a list or library: all columns (type, required, default, indexed), all views, and list metadata. Works on both lists (baseTemplate 100) and document libraries (101).
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | Display name of the list / library. |
TDQS
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 that the tool retrieves comprehensive schema details, which implies read-only behavior, but does not explicitly state permissions required, rate limits, or response format. It adds some context about supported list types, but lacks behavioral details like error handling or output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two sentences that efficiently convey purpose and scope. Every sentence adds value: the first defines the action and details, the second specifies applicability, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is adequate for a read operation but incomplete. It covers what the tool does and its scope, but lacks details on output format, error conditions, or prerequisites. For a tool with no structured output, more guidance on return values would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'listName' documented in the schema. The description does not add meaning beyond the schema, such as clarifying format (e.g., case sensitivity) or examples. Baseline 3 is appropriate as the schema provides full parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get the full schema') and resource ('of a list or library'), with detailed scope ('all columns, all views, and list metadata'). It distinguishes from siblings by specifying it works on both lists and document libraries, unlike tools like 'get_views' or 'get_list_schema_xml'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating when to use it ('Works on both lists and document libraries'), which implicitly distinguishes it from tools like 'get_views' (views only) or 'get_list_schema_xml' (XML format). However, it does not explicitly mention when not to use it or name alternatives, such as 'get_list_schema_xml' for XML output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_list_schema_xmlA
Export the full SharePoint SchemaXml of a list or library. The XML contains every field, view, content type, and JSON formatting definition. Useful for backup or cloning.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes |
TDQS
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 that the tool exports XML data (a read operation) and mentions its use cases, but lacks details on permissions, rate limits, error handling, or output format specifics. This is adequate but has gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by a concise utility statement. Every sentence adds value without waste, making it efficiently structured and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema description coverage, and no output schema, the description is moderately complete. It covers the tool's purpose and usage context but lacks details on parameters, behavioral traits, and output, which are needed for full understanding in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, so the description must compensate. It implies the parameter 'listName' refers to a SharePoint list or library but does not specify syntax or format. Since there is only one parameter, the baseline is high, but the lack of explicit parameter explanation prevents a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Export'), resource ('full SharePoint SchemaXml of a list or library'), and scope ('every field, view, content type, and JSON formatting definition'), distinguishing it from sibling tools like 'get_list_schema' (which likely returns a simpler schema) and 'create_list_from_xml' (which uses XML to create rather than export).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage ('Useful for backup or cloning'), which implies when to use this tool. However, it does not explicitly state when not to use it or name alternatives (e.g., 'get_list_schema' for a simpler schema), keeping it from a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewsC
List all views of a list or library with their columns, filters, and row limits.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes |
TDQS
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 it's a read operation ('List'), but doesn't disclose behavioral traits like permissions needed, rate limits, pagination, error handling, or what happens if the list doesn't exist. The description is minimal and lacks context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and details. Every word earns its place with no redundancy or waste, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It lacks details on parameters, return values, error conditions, and behavioral context. For a tool with one required parameter and no structured support, more information is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'list or library' which hints at the listName parameter, but doesn't explain the parameter's format, constraints, or examples. No other parameters are documented, leaving the single required parameter inadequately described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'views of a list or library' with specific attributes 'columns, filters, and row limits'. It distinguishes from siblings like get_items or get_list_schema by focusing on views rather than items or schema. However, it doesn't explicitly differentiate from create_view or update_view in terms of operation type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., needing an existing list), exclusions, or comparisons to siblings like list_lists or get_list_schema. Usage is implied by the action but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesC
List files and sub-folders inside a document library or a specific folder within it.
| Name | Required | Description | Default |
|---|---|---|---|
| libraryName | Yes | Display name of the document library. | |
| folderPath | No | Relative path within the library, e.g. 'Reports/2025'. Omit for the root. |
TDQS
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 what the tool does but lacks details on traits like pagination, sorting, filtering, rate limits, permissions required, or what the return format looks like. For a listing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for a simple listing tool, with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a listing operation with no annotations and no output schema, the description is incomplete. It doesn't explain what information is returned (e.g., file names, metadata, pagination), error conditions, or behavioral constraints. For a tool that likely returns structured data, this leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both parameters ('libraryName' and 'folderPath') with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as examples or edge cases. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resources ('files and sub-folders'), and specifies the scope ('inside a document library or a specific folder within it'). It distinguishes from siblings like 'download_file' or 'delete_file' by focusing on listing rather than file operations, but doesn't explicitly differentiate from 'get_items' or 'list_lists' 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.
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 sibling tools like 'get_items' or 'list_lists', nor does it specify prerequisites, exclusions, or contextual cues for selection. Usage is implied by the purpose but lacks explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_listsA
List all lists and document libraries in the SharePoint site. Returns name, id, type (list / documentLibrary), item count, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| includeHidden | No | Include hidden / system lists (default: false). |
TDQS
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 that the tool returns data (name, id, type, item count), which is useful behavioral context. However, it does not mention potential limitations like pagination, rate limits, or authentication needs, leaving gaps in transparency for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence and efficiently adds return details in the second. Both sentences earn their place by providing essential information without redundancy, making it appropriately sized and well-structured for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema), the description is mostly complete. It covers what the tool does and what it returns, but lacks details on behavioral aspects like error handling or performance, which could be useful for an agent. However, for a straightforward list operation, it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents the 'includeHidden' parameter. The description does not add any additional meaning or context about parameters beyond what the schema provides, resulting in a baseline score of 3 as the schema handles the parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List all lists and document libraries'), identifies the resource ('SharePoint site'), and distinguishes from siblings by focusing on listing rather than creating, deleting, or modifying lists. It explicitly mentions what is returned (name, id, type, item count), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving lists and libraries, but does not explicitly state when to use this tool versus alternatives like 'get_list_schema' or 'get_views'. It provides some context by mentioning what is returned, but lacks guidance on prerequisites or exclusions, such as whether it requires specific permissions or site access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_siteA
Set the SharePoint site URL to work with. Must be called before any other tool if SITE_URL is not set in .env.
| Name | Required | Description | Default |
|---|---|---|---|
| siteUrl | Yes | Full SharePoint site URL, e.g. https://contoso.sharepoint.com/sites/mysite |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It effectively communicates that this is a configuration/setup operation (not a data mutation) and establishes its prerequisite nature. However, it doesn't describe what happens if called multiple times, whether the setting persists across sessions, or any error conditions beyond the basic requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 purpose, the second provides critical usage guidance. There is zero wasted language or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter configuration tool with no annotations and no output schema, the description provides excellent context about its prerequisite role and relationship to other tools. The main gap is lack of information about persistence, error handling, or what the tool returns, but given its simple nature, the description is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single parameter. The description adds no additional parameter information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Set the SharePoint site URL') and resource ('SharePoint site'), distinguishing it from all sibling tools which perform CRUD operations on site content rather than configuration. It explicitly defines the tool's unique role as a setup/initialization function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Must be called before any other tool if SITE_URL is not set in .env.' This clearly states when to use this tool (as a prerequisite when environment variable is missing) and establishes its relationship to all other tools in the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_columnC
Update settings of an existing column (display name, description, required, default value, indexed, choices).
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| internalName | Yes | Internal name of the column. | |
| updates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it updates settings without disclosing behavioral traits. It doesn't mention whether this requires specific permissions, if changes are reversible, potential impacts on existing data, rate limits, or what the response looks like. 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.
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 enumerates the updatable fields without unnecessary words. Every element serves a clear purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 3 parameters, low schema coverage (33%), no annotations, and no output schema, the description is insufficient. It covers what fields can be updated but lacks context on prerequisites, side effects, error conditions, or return values, leaving significant gaps for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), with only 'internalName' documented. The description lists updatable fields (displayName, description, required, etc.), which helps clarify the 'updates' parameter's structure. However, it doesn't explain 'listName' or provide details on field constraints, formats, or interactions, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update settings') and resource ('an existing column'), specifying the exact fields that can be modified. It distinguishes from siblings like 'add_column' (creation) and 'delete_column' (removal), though it doesn't explicitly contrast with 'update_item' or 'update_view' which modify different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'add_column' for new columns or 'update_item' for modifying list items. It mentions 'existing column' but doesn't clarify prerequisites (e.g., column must exist) or exclusions (e.g., cannot change internalName).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_itemC
Update fields of an existing list item by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| id | Yes | Item ID. | |
| fields | Yes | Fields to update (only include fields that need to change). |
TDQS
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 states this is an update operation, implying mutation, but doesn't cover permissions, side effects (e.g., whether changes are reversible), error handling, or response format. The description is minimal and lacks critical behavioral details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core action ('Update fields of an existing list item') and includes essential context ('by its numeric ID'). Every word earns its place, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with 3 parameters, no annotations, no output schema, and moderate schema coverage, the description is incomplete. It lacks behavioral context (e.g., permissions, effects), usage guidelines, and details on parameters or return values. The description is too minimal to adequately support tool selection and invocation in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 out of 3 parameters have descriptions). The description adds no parameter-specific details beyond what the schema provides—it mentions 'numeric ID' and 'fields', but these are already documented in the schema. With moderate schema coverage, the baseline is 3, as the description doesn't compensate for gaps or enhance understanding of parameters like 'listName'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'fields of an existing list item', specifying it's done 'by its numeric ID'. It distinguishes from siblings like 'create_item' (for new items) and 'delete_item' (for removal), though it doesn't explicitly name alternatives. The purpose is specific and actionable, but lacks explicit sibling differentiation beyond implied scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., needing an existing item), exclusions (e.g., not for creating or deleting items), or compare to similar tools like 'update_column' or 'update_view'. Usage is implied by the action, but no explicit context or decision criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_viewC
Update an existing view: change columns, CAML query, row limit, or make it the default.
| Name | Required | Description | Default |
|---|---|---|---|
| listName | Yes | ||
| viewName | Yes | ||
| columns | No | Replace view columns with this list (optional). | |
| query | No | ||
| rowLimit | No | ||
| isDefault | No |
TDQS
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 this is an update operation, implying mutation, but doesn't mention permissions required, whether changes are reversible, error handling, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose and lists key parameters without redundancy. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, mutation operation), lack of annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like permissions, side effects, or return values, leaving the agent with incomplete context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (17%), with only 'columns' having a description. The description adds value by listing the updatable fields (columns, CAML query, row limit, default status), which maps to 4 of the 6 parameters, but doesn't explain 'listName' or 'viewName' beyond what the schema implies. It compensates partially for the coverage gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('an existing view'), and specifies the editable attributes (columns, CAML query, row limit, default status). It distinguishes from siblings like 'create_view' by focusing on modification rather than creation. However, it doesn't explicitly differentiate from 'update_column' or 'update_item' beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'create_view' for new views or 'get_views' for viewing existing ones. The description implies usage for modifying views but lacks context about prerequisites (e.g., needing an existing view) or exclusions (e.g., not for creating views).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileC
Upload a file to a document library. Content must be base64-encoded.
| Name | Required | Description | Default |
|---|---|---|---|
| libraryName | Yes | ||
| folderPath | No | Target sub-folder (optional). | |
| fileName | Yes | File name including extension. | |
| content | Yes | Base64-encoded file content. | |
| overwrite | No | Overwrite if file exists. Default: true. |
TDQS
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 base64 encoding requirement, which is useful, but fails to cover critical aspects like authentication needs, error handling (e.g., invalid paths or permissions), rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 a critical constraint (base64 encoding). There is no wasted verbiage, and every word earns its place, 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.
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 operation with 5 parameters), lack of annotations, and no output schema, the description is incomplete. It misses essential context such as return values, error conditions, permissions, or side effects, leaving the agent with insufficient information for reliable invocation in a real-world scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high at 80%, with most parameters well-documented in the schema (e.g., 'folderPath' as optional, 'overwrite' default). The description adds value by specifying that content must be base64-encoded, which clarifies the 'content' parameter beyond the schema's generic description. However, it doesn't fully compensate for the 20% gap (e.g., no details on 'libraryName' format), aligning with the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload') and target ('file to a document library'), which distinguishes it from sibling tools like 'download_file', 'delete_file', or 'list_files'. However, it doesn't explicitly differentiate from other file-related operations beyond the verb choice, missing specific sibling comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'download_file' or 'delete_file', nor does it mention prerequisites such as authentication or library existence. It lacks explicit when/when-not instructions or named alternatives, offering only basic operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose targeting specific SharePoint operations like list management, item handling, file operations, or schema manipulation. There is no significant overlap; for example, create_list and create_list_from_xml serve different creation methods, and get_list_schema vs. get_list_schema_xml provide different output formats.
All tool names follow a consistent verb_noun pattern using snake_case, such as create_item, delete_file, and update_view. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 21 tools, the count is slightly high but reasonable for a comprehensive SharePoint server covering lists, items, files, columns, and views. It includes all essential CRUD operations and advanced features like schema handling, which justifies the breadth without feeling excessively bloated.
The tool set provides complete coverage for SharePoint operations, including full CRUD for lists, items, files, columns, and views, along with utilities for schema management, querying, and site configuration. There are no obvious gaps; agents can perform all typical workflows without dead ends.
Maintenance
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
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
One place to build, share, and govern the skills and tools your AI agents use at work.
Run your website's AI support agent from Claude, Cursor or any MCP client. Manage the knowledge base, edit agent instructions, read conversations and leads, reply live to visitors, and check plan usage. 54 tools, OAuth sign-in, no API key. Free with every Asyntai account: https://asyntai.com/documentation/mcp/
AgentPMT is the AI agent marketplace that turns any MCP-compatible AI assistant into an autonomous employee. Connect once and your agents gain access to a growing ecosystem of tools, workflows, and skills spanning communication, data analytics, development, file management, search, and more. AgentPMT dynamically discovers and orchestrates tools from across the MCP ecosystem, so your agents can independently find the right tool for any task without manual configuration.
Related MCP Servers
- FlicenseDqualityDmaintenanceProvides access to organizational Sharepoint documents through the Microsoft Graph API, enabling search and retrieval of Sharepoint content for AI assistants.12221
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Microsoft SharePoint sites, document libraries, and files through the Microsoft Graph API. Supports browsing, searching, uploading/downloading files, managing lists, and creating sharing links with secure OAuth authentication.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables browsing and interacting with Microsoft SharePoint sites and documents through Microsoft Graph API, supporting file search, site listing, document library browsing, and file content retrieval with OAuth2 authentication.3910MIT
- AlicenseAqualityDmaintenanceProvides Claude with access to Microsoft SharePoint via the Microsoft Graph API, enabling folder management, document operations (upload, download, read, update, delete), and metadata management with secure OAuth 2.0 authentication.16MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LukasSevcik/sharepoint-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server