MCP Excel Online
MCP server that integrates with OneDrive and Excel Workbooks via Microsoft Graph API for creating and modifying worksheets.
README
MCP Excel Online
An MCP (Model Context Protocol) server that integrates with your OneDrive and Excel Workbooks, to enable creating and modifying work sheets using the Microsoft Graph API.
Features
Resources
| Resource | Description |
|---|---|
drive://root/children |
List all items at the root of the configured OneDrive |
drive://drives/{drive_id}/root/{relative_path}/children |
List items in a folder by path |
Tools
| Tool | Description |
|---|---|
| List Sheets | List all worksheets in a workbook |
| Create Worksheet | Add a new worksheet to a workbook |
| Rename Worksheet | Rename an existing worksheet |
| Delete Worksheet | Delete a worksheet from a workbook |
| Copy Worksheet | Copy a worksheet from one workbook to another |
| Get Worksheet Data | Read cell values from a worksheet (full sheet or a range) |
| Get Worksheet Formulas | Read formulas from a worksheet (full sheet or a range) |
| Update Worksheet Data | Write values to a cell range in a worksheet |
Prerequisites
- Python 3.13+
uv(for local development)- Docker (for containerised deployment)
- A Microsoft Azure account with an Entra ID (Azure AD) app registration
Azure App Registration
Register your application by following the steps at Register your app with the Microsoft Identity Platform.
Permission Types
Application permissions are used when you don't need a user to log in to your app. The app performs tasks on its own and runs in the background using a client secret (service principal flow).
Required: APP_CLIENT_ID, APP_TENANT_ID, APP_CLIENT_SECRET
Delegated permissions (scopes) are used when your app requires a user to log in and interact with data related to that user in a session. Authentication is performed via the device code flow — the server will print a URL and a code to the console.
Required: APP_CLIENT_ID only
Environment Variables
| Variable | Required | Description |
|---|---|---|
APP_CLIENT_ID |
Always | The Application (client) ID of your Azure app registration |
APP_TENANT_ID |
Application permissions only | The Directory (tenant) ID of your Azure tenant |
APP_CLIENT_SECRET |
Application permissions only | A client secret generated for your app registration |
DRIVE_ID |
Required | OneDrive Drive ID to use as the default drive |
HOST |
Optional | Host address the server binds to (default: 0.0.0.0) |
PORT |
Optional | Port the server listens on (default: 8000) |
Create a .env file in the project root for local development:
APP_CLIENT_ID=your-client-id
APP_TENANT_ID=your-tenant-id # required for application permissions
APP_CLIENT_SECRET=your-client-secret # required for application permissions
DRIVE_ID=your-drive-id
Arguments
| Argument | Options | Default | Description |
|---|---|---|---|
--transport |
stdio, sse, streamable-http |
sse |
MCP transport protocol to use |
--graph-permission |
delegated, application |
delegated |
Microsoft Graph permission type (see above) |
Running Locally with uv
1. Clone the repository
git clone https://github.com/GokulSudheesh/mcp-excel-online.git
cd mcp-excel-online
2. Create your .env file with the required environment variables (see above).
3. Start the server
# SSE transport with delegated permissions (device code login)
uv run mcp-excel-online --transport sse --graph-permission delegated
# stdio transport with application permissions (service principal)
uv run mcp-excel-online --transport stdio --graph-permission application
# streamable-http transport
uv run mcp-excel-online --transport streamable-http
Running with Docker
1. Build the image
docker build -t mcp-excel-online .
2. Run the container
docker run --rm -p 8000:8000 \
-e APP_CLIENT_ID=your-client-id \
-e DRIVE_ID=your-drive-id \
mcp-excel-online
You can also pass a .env file:
docker run --rm -p 8000:8000 --env-file .env mcp-excel-online
The server is accessible at http://localhost:8000/sse (SSE transport).
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.