SharePointMCP

SharePointMCP

3.3

SharePoint MCP is a .NET-based server utilizing Graph API and Semantic Kernel to integrate AI capabilities with SharePoint data access.

SharePoint MCP is a modular architecture designed to facilitate secure and efficient access to SharePoint data, integrated with AI capabilities. It consists of three main modules: the MCP Server, the SharePoint Connector Library, and the MCP Client. The MCP Server, built with .NET and Semantic Kernel, acts as the central hub for API interactions. The SharePoint Connector Library handles communication with SharePoint Online using Microsoft Graph API, while the MCP Client provides a user-facing chat interface powered by Gemini AI. This setup allows users to interact with SharePoint data through conversational AI, enhancing data retrieval and integration within enterprise environments.

Features

  • Modular Design: Separates concerns for easier development and maintenance.
  • Secure Access: Utilizes app-only authentication for controlled SharePoint data access.
  • AI Integration: Combines conversational AI with enterprise data retrieval.
  • Extensible: Allows for easy addition of new SharePoint functions.
  • Centralized API: Provides a single endpoint for SharePoint interactions.

Usage with Different Platforms

dotnet_mcp_server

csharp
public class SharePointMCPServer
{
    // Define API routes and integrate Semantic Kernel
    public void ConfigureRoutes()
    {
        // Example route for SharePoint search
        app.MapPost("/api/sharepoint/search", async (string query) =>
        {
            var results = await SearchSharePointAsync(query);
            return Results.Ok(results);
        });
    }

    private async Task<List<string>> SearchSharePointAsync(string query)
    {
        // Logic to authenticate and search SharePoint
        // Return search results
    }
}

sharepoint_connector_library

csharp
public class SharePointConnector
{
    private readonly GraphServiceClient _graphClient;

    public SharePointConnector(string clientId, string clientSecret)
    {
        // Initialize GraphServiceClient with authentication
    }

    public async Task<List<string>> SearchSharePointAsync(string query)
    {
        // Construct and send Graph API request
        // Parse and return search results
    }
}

mcp_client_gemini_ai

csharp
public class GeminiAIClient
{
    public async Task HandleUserQuery(string userQuery)
    {
        if (userQuery.Contains("SharePoint"))
        {
            var results = await CallMCPServerForSearch(userQuery);
            DisplayResults(results);
        }
    }

    private async Task<List<string>> CallMCPServerForSearch(string query)
    {
        // Make HTTP request to MCP Server
        // Return search results
    }

    private void DisplayResults(List<string> results)
    {
        // Display results in chat interface
    }
}