peacockery-studio/sharepoint-mcp
3.2
If you are the rightful owner of sharepoint-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server that provides Claude with access to Microsoft SharePoint via the Microsoft Graph API.
Tools
16
Resources
0
Prompts
0
SharePoint MCP Server
A Model Context Protocol (MCP) server that provides Claude with access to Microsoft SharePoint via the Microsoft Graph API.
Features
- Folder Management: List, create, delete folders and view folder tree structure
- Document Operations: Upload, download, read, update, and delete documents
- Metadata Support: Get and update file metadata fields
- OAuth 2.0 Authentication: Secure user-based authentication via browser flow
- Consistent Architecture: Same modular pattern as Outlook MCP for easy maintenance
Quick Start
1. Install Dependencies
cd sharepoint-mcp
npm install
2. Azure AD Setup
- Go to Azure Portal > App registrations > New registration
- Name:
sharepoint-mcp(or your preferred name) - Supported account types: "Accounts in this organizational directory only"
- Redirect URI:
Web>http://localhost:3334/auth/callback - Click Register
After registration:
- Copy the Application (client) ID
- Copy the Directory (tenant) ID
- Go to Certificates & secrets > New client secret
- Copy the Value (not the Secret ID!)
- Go to API permissions > Add a permission > Microsoft Graph > Delegated permissions
- Add:
Sites.ReadWrite.All,Files.ReadWrite.All
- Add:
- Click Grant admin consent (requires admin)
3. Configure Environment
Create a .env file:
SHAREPOINT_CLIENT_ID=your-client-id
SHAREPOINT_CLIENT_SECRET=your-client-secret-value
SHAREPOINT_TENANT_ID=your-tenant-id
SHAREPOINT_SITE_URL=https://your-tenant.sharepoint.com/sites/your-site
SHAREPOINT_DOC_LIBRARY=Shared Documents
4. Authenticate
# Start the auth server
npm run auth-server
# Open http://localhost:3334 in your browser and complete authentication
5. Run the Server
npm start
Claude Desktop Integration
Add to your Claude Desktop config:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"sharepoint-assistant": {
"command": "node",
"args": ["/path/to/sharepoint-mcp/index.js"],
"env": {
"SHAREPOINT_CLIENT_ID": "your-client-id",
"SHAREPOINT_CLIENT_SECRET": "your-client-secret",
"SHAREPOINT_TENANT_ID": "your-tenant-id",
"SHAREPOINT_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site",
"SHAREPOINT_DOC_LIBRARY": "Shared Documents"
}
}
}
}
Available Tools
Authentication
| Tool | Description |
|---|---|
authenticate | Start the OAuth authentication flow |
check_auth_status | Check current authentication status |
logout | Clear stored tokens |
Folder Operations
| Tool | Description |
|---|---|
list_folders | List folders in a directory |
create_folder | Create a new folder |
delete_folder | Delete an empty folder |
get_folder_tree | Get recursive folder structure |
Document Operations
| Tool | Description |
|---|---|
list_documents | List documents in a folder |
get_document_content | Read document content |
upload_document | Upload content as a new document |
upload_document_from_path | Upload a local file |
update_document | Update an existing document |
delete_document | Delete a document |
download_document | Download to local filesystem |
get_file_metadata | Get file metadata fields |
update_file_metadata | Update metadata fields |
Development
# Run with MCP Inspector for testing
npm run inspect
# Run in test mode (mock data)
npm run test-mode
# Run tests
npm test
Architecture
sharepoint-mcp/
├── index.js # Main MCP server entry point
├── config.js # Configuration settings
├── sharepoint-auth-server.js # OAuth callback server
├── auth/ # Authentication module
│ ├── index.js
│ ├── token-manager.js # Token storage & refresh
│ └── tools.js # Auth tools
├── folder/ # Folder operations
│ ├── index.js
│ └── tools.js
├── document/ # Document operations
│ ├── index.js
│ └── tools.js
└── utils/ # Shared utilities
├── index.js
└── graph-api.js # Graph API client
Troubleshooting
"Authentication required" error
- Ensure you've run the auth server and completed browser authentication
- Check that tokens are stored in
~/.sharepoint-mcp-tokens.json
"AADSTS7000215" error
- You're using the Secret ID instead of the Secret Value
- Go back to Azure and copy the actual secret value
"Access denied" error
- Ensure admin consent was granted for the API permissions
- Verify the site URL is correct
Port 3334 in use
npx kill-port 3334
License
MIT