Skip to main content

Add your description here

Project description

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)
--include-tools Comma-separated tool names (all) Only register the specified tools. If omitted, all tools are enabled (see below)

Available tool names for --include-tools

Tool name Description
list_sheets List all worksheets in a workbook
create_sheet Add a new worksheet to a workbook
rename_sheet Rename an existing worksheet
delete_sheet Delete a worksheet from a workbook
copy_sheet 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

Example — expose only read-only tools:

uv run mcp-excel-online --include-tools list_sheets,get_worksheet_data,get_worksheet_formulas

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

# Only enable specific tools
uv run mcp-excel-online --include-tools list_sheets,get_worksheet_data,get_worksheet_formulas

Running with Docker

1. Building the image locally

docker build -t mcp-excel-online .

OR Pulling the image from Docker Hub

docker pull batmansroomie/mcp-excel-online:main

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


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_excel_online-0.1.0.tar.gz (82.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_excel_online-0.1.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_excel_online-0.1.0.tar.gz.

File metadata

  • Download URL: mcp_excel_online-0.1.0.tar.gz
  • Upload date:
  • Size: 82.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_excel_online-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f5c8c8217de13cb8363c651913f0be34b2774d12bd5ae2d60647a9a0eb3b49d
MD5 10ffedf5ba35ef054d9e78281c4cd980
BLAKE2b-256 a8788027fa5c9960d130fdbfd31649536a9e238e373037cc7c056775ab49ae33

See more details on using hashes here.

File details

Details for the file mcp_excel_online-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_excel_online-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_excel_online-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bbd1d8046cbe19c6bffdf7452329c3c63b18bd5ea44553d6b6071bbf7e5141fd
MD5 083a082ad60b1039524b02cade93364c
BLAKE2b-256 336281cfa7aee8794c03b9c415f77961ec8a1384d26b21d5b713dbb1d8fa192a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page