DISCLAIMER: This project is not affiliated with, endorsed by, or related to Microsoft Corporation. SharePoint and Microsoft Graph API are trademarks of Microsoft Corporation. This is an independent, community-driven project.
SharePoint Model Context Protocol (MCP) server acts as a bridge that enables LLM applications (like Claude) to access content from your SharePoint site. With this project, you can use natural language to query documents, lists, and other content in your SharePoint site.
- Browse Document Libraries: View contents of SharePoint document libraries
- Access List Data: Retrieve and manipulate SharePoint list data
- Retrieve Document Content: Access content from specific documents
- SharePoint Search: Search across your entire site
- Create List Items: Add new items to SharePoint lists
- Python 3.10 or higher
- Access to a SharePoint site
- Microsoft Azure AD application registration (for authentication)
Follow these steps to get the SharePoint MCP Server up and running quickly:
-
Prerequisites
- Ensure you have Python 3.10+ installed
- An Azure AD application with proper permissions (see docs/auth_guide.md)
-
Installation
# Install from GitHub pip install git+https://github.com/DEmodoriGatsuO/sharepoint-mcp.git # Or install in development mode git clone https://github.com/DEmodoriGatsuO/sharepoint-mcp.git cd sharepoint-mcp pip install -e .
-
Configuration
# Copy the example configuration cp .env.example .env # Edit the .env file with your details nano .env
-
Run the Diagnostic Tools
# Check your configuration python config_checker.py # Test authentication python auth-diagnostic.py
-
Start the Server
python server.py
- Clone the repository:
git clone https://github.com/DEmodoriGatsuO/sharepoint-mcp.git
cd sharepoint-mcp
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
cp .env.example .env
# Edit the .env file with your authentication details
- Register an application in Azure AD and grant necessary permissions (see docs/auth_guide.md)
- Configure your authentication information and SharePoint site URL in the
.env
file
mcp dev server.py
mcp install server.py --name "SharePoint Assistant"
python server.py
# Example of retrieving document content
import requests
# Get document content
response = requests.get(
"http://localhost:8080/sharepoint-mcp/document/Shared%20Documents/report.docx",
headers={"X-MCP-Auth": "your_auth_token"}
)
# Process content
if response.status_code == 200:
document_content = response.json()
print(f"Document name: {document_content['name']}")
print(f"Size: {document_content['size']} bytes")
# Example of retrieving list data
import requests
import json
# Get list items
response = requests.get(
"http://localhost:8080/sharepoint-mcp/list/Tasks",
headers={"X-MCP-Auth": "your_auth_token"}
)
# Create a new list item
new_item = {
"Title": "Review quarterly report",
"Status": "Not Started",
"DueDate": "2025-05-01"
}
create_response = requests.post(
"http://localhost:8080/sharepoint-mcp/list/Tasks",
headers={
"X-MCP-Auth": "your_auth_token",
"Content-Type": "application/json"
},
data=json.dumps(new_item)
)
See the documentation in docs/usage.md for detailed examples of how to use this server with Claude and other LLM applications.
The server logs to stdout by default. Set DEBUG=True
in your .env
file to enable verbose logging.
- Authentication Failures: Run
python auth-diagnostic.py
to diagnose issues - Permission Errors: Make sure your Azure AD app has the required permissions
- Token Issues: Use
python token-decoder.py
to analyze your token's claims
This project is released under the MIT License. See the LICENSE file for details.
Contributions are welcome. Please open an issue first to discuss what you would like to change before making major modifications. See CONTRIBUTING.md for guidelines.