Skip to main content
Glama
BrianCusack

Sharepoint MCP Server

by BrianCusack

search-documents

Search and retrieve Sharepoint documents using a query, enabling quick access to organizational content via the Microsoft Graph API for efficient document management.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
maxResultsNoMaximum number of results to return (as a string)
queryYesSearch query to find documents

Implementation Reference

  • The handler function for the "search-documents" tool. It lists all drive items from the SharePoint drive, filters those whose name includes the provided query, limits the results to the specified maxResults, and returns them as a JSON string in text content. Handles errors by returning an error message.
    try { const driveRef = createDriveRef(siteRef, driveId); const driveItems = await listDriveItems(driveRef); const results = driveItems.filter((item: any) => item.name.includes(query)).slice(0, parseInt(maxResults.toString(), 10)); return { content: [{ type: "text", text: JSON.stringify(results, null, 2) // Ensure this is a valid string }] }; } catch (error) { return { content: [{ type: "text", text: `Error searching documents: ${error}` }], isError: true }; } }
  • The input schema defined using Zod for the "search-documents" tool, specifying the required 'query' parameter and optional 'maxResults'.
    query: z.string().describe("Search query to find documents"), maxResults: z.string().optional().describe("Maximum number of results to return (as a string)") }, async ({ query, maxResults = 10 }) => {
  • src/index.ts:93-119 (registration)
    The registration of the "search-documents" tool using McpServer.tool(), including the tool name, input schema, and inline handler function.
    "search-documents", { query: z.string().describe("Search query to find documents"), maxResults: z.string().optional().describe("Maximum number of results to return (as a string)") }, async ({ query, maxResults = 10 }) => { try { const driveRef = createDriveRef(siteRef, driveId); const driveItems = await listDriveItems(driveRef); const results = driveItems.filter((item: any) => item.name.includes(query)).slice(0, parseInt(maxResults.toString(), 10)); return { content: [{ type: "text", text: JSON.stringify(results, null, 2) // Ensure this is a valid string }] }; } catch (error) { return { content: [{ type: "text", text: `Error searching documents: ${error}` }], isError: true }; } } );

Other Tools

Related Tools

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/BrianCusack/mcpsharepoint'

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