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
          };
        }
      }
    );
Install Server

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