{"id":5212,"library":"excel-mcp-server","title":"Excel MCP Server","description":"Excel MCP Server is a Model Context Protocol (MCP) server that enables AI agents to manipulate Excel files without requiring Microsoft Excel to be installed. It allows for creating, reading, and modifying Excel workbooks, including advanced features like formulas, charts, and pivot tables. The current version is 0.1.8, and it maintains an active development pace with ongoing updates for features and protocol alignment.","status":"active","version":"0.1.8","language":"en","source_language":"en","source_url":"https://github.com/haris-musa/excel-mcp-server","tags":["excel","mcp","ai-agent","automation","spreadsheet","model-context-protocol","no-excel-install"],"install":[{"cmd":"pip install excel-mcp-server","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Requires Python 3.10 or newer for execution.","package":"Python","optional":false},{"reason":"Relies on the Model Context Protocol SDK for communication.","package":"MCP SDK","optional":false},{"reason":"Utilizes OpenPyXL for underlying Excel file manipulation.","package":"OpenPyXL","optional":false}],"imports":[{"note":"The library runs as a server module; direct Python class imports for client-side interaction are not typical. Clients connect to the running server via MCP.","symbol":"Server startup","correct":"python -m excel_mcp_server"}],"quickstart":{"code":"import os\n\n# These are example environment variables. For actual usage, they should be set in your shell\n# or deployment environment before starting the server.\n# For local stdio transport, EXCEL_FILES_PATH is often not required as paths are sent per tool call.\n# For SSE/Streamable HTTP, EXCEL_FILES_PATH is crucial.\n# OPENAI_API_KEY is an example if the server were to call an LLM provider.\n\nos.environ['EXCEL_FILES_PATH'] = os.environ.get('EXCEL_FILES_PATH', './excel_files')\nos.environ['FASTMCP_PORT'] = os.environ.get('FASTMCP_PORT', '8017')\n\n# To start the server using the recommended Streamable HTTP transport:\n# You would typically run this in a terminal or as part of a service.\n# The server will listen on the specified port.\n# Clients (e.g., AI agents) then connect to this endpoint.\n# For demonstration, this code block only sets up environment variables. The server itself is a long-running process.\n\nprint(f\"Excel MCP Server configured to use files in: {os.environ['EXCEL_FILES_PATH']}\")\nprint(f\"Excel MCP Server configured to listen on port: {os.environ['FASTMCP_PORT']} (if using HTTP transports)\")\nprint(\"To start the server, run: uvx excel-mcp-server streamable-http  (or python -m excel_mcp_server for older versions)\")","lang":"python","description":"The Excel MCP Server runs as a standalone process. This quickstart demonstrates setting up essential environment variables. An AI agent or MCP client then connects to this running server. The 'uvx' command is often used as a wrapper for launching the server, especially for different transports. For local interaction, 'stdio' transport is an option, where file paths can be provided per tool call."},"warnings":[{"fix":"Update client code and AI agent prompts to use the new, simplified tool names as documented in the server's TOOLS.md.","message":"Tool names have been simplified, removing the 'excel_' prefix from many MCP tool names (e.g., 'excel_range' became 'range'). This requires updates in client configurations or prompts.","severity":"breaking","affected_versions":"Prior to 0.1.x, specifically versions around the CLI redesign."},{"fix":"Refer to the updated CLI documentation or `--help` output for the current command structure and parameters. Update any scripts or integrations using the CLI.","message":"The command-line interface (CLI) underwent a significant redesign. Commands and their parameters, including the `--session` parameter, have changed.","severity":"breaking","affected_versions":"Prior to 0.1.x, specifically versions around the CLI redesign."},{"fix":"Migrate client connections from SSE to Streamable HTTP transport for improved stability and performance. Update your MCP client configuration accordingly (e.g., from 'url': 'http://localhost:8000/sse' to 'url': 'http://localhost:8000/mcp').","message":"The Server-Sent Events (SSE) transport method is deprecated. Streamable HTTP transport is now the recommended method for remote connections.","severity":"deprecated","affected_versions":"0.1.x onwards (SSE deprecated)."},{"fix":"Ensure `EXCEL_FILES_PATH` is explicitly set in the server's environment (e.g., `export EXCEL_FILES_PATH=/path/to/excel_files`) to control file locations and prevent security issues related to unexpected file access.","message":"When using SSE or Streamable HTTP transports, the `EXCEL_FILES_PATH` environment variable must be set on the server side to specify the directory for Excel file storage and access. If not set, it defaults to `./excel_files`.","severity":"gotcha","affected_versions":"All versions supporting SSE/Streamable HTTP."},{"fix":"Implement robust error handling and file release mechanisms after screen capture. Consider alternative data extraction methods if file locking becomes a persistent issue in automated workflows.","message":"Attempting to perform screen capture operations on Excel files (e.g., `excel_screen_capture`) on Windows can lead to the Excel file remaining locked after the operation, preventing further access or modification.","severity":"gotcha","affected_versions":"All versions with screen capture functionality on Windows."}],"env_vars":null,"last_verified":"2026-04-13T00:00:00.000Z","next_check":"2026-07-12T00:00:00.000Z"}