by haris-musa
excel-mcp-server is a Python-based Model Context Protocol (MCP) server that enables AI agents to programmatically create, read, and modify Excel files without requiring Microsoft Excel to be installed.
excel-mcp-server is a Model Context Protocol (MCP) server written in Python that enables manipulation of Excel files without requiring Microsoft Excel to be installed. It allows AI agents to create, read, and modify Excel workbooks programmatically.
The server supports three transport methods:
uvx excel-mcp-server stdio
.uvx excel-mcp-server sse
.uvx excel-mcp-server streamable-http
.For SSE and Streamable HTTP transports, you must set the EXCEL_FILES_PATH
environment variable to specify where Excel files are read from and written to. The FASTMCP_PORT
environment variable can also be set to change the server's listening port. For Stdio transport, the file path is provided with each tool call.
EXCEL_FILES_PATH
environment variable. For Stdio transport, the file path is provided with each tool call.FASTMCP_PORT
environment variable to control the port.A Model Context Protocol (MCP) server that lets you manipulate Excel files without needing Microsoft Excel installed. Create, read, and modify Excel workbooks with your AI agent.
The server supports three transport methods:
uvx excel-mcp-server stdio
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server", "stdio"]
}
}
}
uvx excel-mcp-server sse
SSE transport connection:
{
"mcpServers": {
"excel": {
"url": "http://localhost:8000/sse",
}
}
}
uvx excel-mcp-server streamable-http
Streamable HTTP transport connection:
{
"mcpServers": {
"excel": {
"url": "http://localhost:8000/mcp",
}
}
}
When running the server with the SSE or Streamable HTTP protocols, you must set the EXCEL_FILES_PATH
environment variable on the server side. This variable tells the server where to read and write Excel files.
./excel_files
.You can also set the FASTMCP_PORT
environment variable to control the port the server listens on (default is 8000
if not set).
$env:EXCEL_FILES_PATH="E:\MyExcelFiles"
$env:FASTMCP_PORT="8007"
uvx excel-mcp-server streamable-http
EXCEL_FILES_PATH=/path/to/excel_files FASTMCP_PORT=8007 uvx excel-mcp-server streamable-http
When using the stdio protocol, the file path is provided with each tool call, so you do not need to set EXCEL_FILES_PATH
on the server. The server will use the path sent by the client for each operation.
The server provides a comprehensive set of Excel manipulation tools. See TOOLS.md for complete documentation of all available tools.
MIT License - see LICENSE for details.
Reviews feature coming soon
Stay tuned for community discussions and feedback