Skip to main content
Glama

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

  1. Go to Azure Portal > App registrations > New registration

  2. Name: sharepoint-mcp (or your preferred name)

  3. Supported account types: "Accounts in this organizational directory only"

  4. Redirect URI: Web > http://localhost:3334/auth/callback

  5. Click Register

After registration:

  1. Copy the Application (client) ID

  2. Copy the Directory (tenant) ID

  3. Go to Certificates & secrets > New client secret

    • Copy the Value (not the Secret ID!)

  4. Go to API permissions > Add a permission > Microsoft Graph > Delegated permissions

    • Add: Sites.ReadWrite.All, Files.ReadWrite.All

  5. 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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/peacockery-studio/sharepoint-mcp'

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