mcp-excel
mcp-excel
Сервер Model Context Protocol, который предоставляет
Claude Code (или любому MCP-клиенту) полный доступ на чтение и запись к книгам Excel:
листы, диапазоны ячеек, структурированные таблицы, формулы, форматирование и ссылки
между книгами. Он читает и записывает настоящие файлы .xlsx на диске с помощью
ExcelJS; не требуется ни копия Excel, ни учётная
запись Microsoft, ни облачный сервис.
Он работает локально как подпроцесс stdio или как HTTP/SSE-сервис (удобно для совместного использования одного экземпляра с настольным клиентом через вашу LAN с помощью Docker).
Статус: 11 инструментов, транспорты stdio + SSE, ноль внешних зависимостей, кроме npm. Лицензия: MIT.
Инструменты
Инструмент | Что делает |
| Перечисляет все листы в книге с количеством строк и столбцов |
| Читает диапазон ячеек; возвращает значения, формулы и типы |
| Записывает значения или формулы в конкретные ячейки (создаёт файл/лист, если отсутствует) |
| Записывает несколько строк данных, начиная с заданной ячейки (массовое создание наборов данных) |
| Создаёт структурированную таблицу Excel (ListObject) с заголовками, данными и необязательными формулами столбцов |
| Создаёт новую пустую книгу с одним или несколькими именованными листами |
| Добавляет новый лист в существующую книгу |
| Удаляет лист из книги |
| Применяет шрифт, заливку, числовой формат, выравнивание и границы к диапазону |
| Читает из одной книги и записывает значения (или связывающие формулы) в другую |
| Перечисляет именованные диапазоны и имена таблиц в книге |
Все аргументы путей к файлам разрешаются с помощью path.resolve() относительно рабочего
каталога сервера, поэтому абсолютные пути — самый безопасный вариант. В режиме Docker (SSE)
пути разрешаются внутри контейнера относительно смонтированного тома /data (см. ниже).
Related MCP server: mcp-xlsx-server
Требования
Настройка: Claude Code (stdio, локально)
Клонируйте и установите:
git clone https://bitbucket.org/corvalon/mcp-excel.git
cd mcp-excel
npm ciЗарегистрируйте сервер. Либо добавьте его через CLI:
claude mcp add excel -- node /absolute/path/to/mcp-excel/index.jsлибо добавьте вручную в конфигурацию Claude Code (~/.claude.json):
{
"mcpServers": {
"excel": {
"command": "node",
"args": ["/absolute/path/to/mcp-excel/index.js"]
}
}
}Перезапустите Claude Code. Инструменты появятся с префиксом mcp__excel__*.
Настройка: Claude Desktop (stdio, локально)
Добавьте тот же блок в конфигурацию Claude Desktop
(Settings > Developer > Edit Config, который открывает
claude_desktop_config.json):
{
"mcpServers": {
"excel": {
"command": "node",
"args": ["/absolute/path/to/mcp-excel/index.js"]
}
}
}Сохраните и перезапустите. Когда появится значок молотка / инструментов, сервер подключён.
Настройка: Docker (SSE, общий экземпляр)
Запустите один контейнер, к которому любой MCP-клиент в вашей сети может обращаться через SSE. Это полезно для управления файлами Excel с машины, на которой нет Node.js.
Укажите контейнеру папку с вашими книгами и запустите его:
MCP_EXCEL_DATA_DIR=/path/to/your/spreadsheets docker compose up -d --buildФайл compose монтирует эту папку как
/dataвнутри контейнера и прослушивает порт3001.Добавьте конечную точку SSE в конфигурацию клиента (замените хост на LAN-IP хоста контейнера, если клиент находится на другой машине):
{ "mcpServers": { "excel": { "url": "http://localhost:3001/sse" } } }Поскольку пути разрешаются внутри контейнера, указывайте файлы относительно смонтированного тома
/data. ЕслиMCP_EXCEL_DATA_DIR—~/spreadsheets, то~/spreadsheets/2025/Budget.xlsxв вызовах инструментов будет/data/2025/Budget.xlsx.
Когда клиент с другого хоста подключается через SSE, задайте MCP_ALLOWED_HOSTS, чтобы
сервер принял запрос. Создайте файл .env рядом с docker-compose.yml:
MCP_ALLOWED_HOSTS='localhost,127.0.0.1,::1,192.168.1.50,my-host.local'Управление контейнером:
docker compose up -d --build # start / rebuild after code changes
docker compose down # stop
docker compose logs -f # tail logsПроверка работоспособности доступна по адресу http://<host>:3001/health.
Конфигурация
Переменная | По умолчанию | Назначение |
|
|
|
|
| Порт для режима SSE (файл Docker compose использует |
|
| Разрешённый список Host-заголовков через запятую для режима SSE |
|
| Папка хоста, монтируемая как |
Безопасность
Этот сервер читает и записывает реальные файлы, а в режиме SSE открывает сетевой порт. Относитесь к нему как к доверенному локальному инструменту, а не как к сервису, доступному из интернета.
Доступ к файлам. Вызовы инструментов могут читать или записывать любой путь
.xlsx, доступный процессу сервера. В режиме stdio это вся ваша файловая система; в режиме Docker (SSE) доступ ограничен смонтированным томом/data, поэтому Docker — более безопасный способ ограничить доступ.SSE не имеет аутентификации. Конечная точка HTTP/SSE прослушивает
0.0.0.0и не аутентифицирует вызывающих. Запускайте её только в доверенной LAN и ограничьте доступ с помощьюMCP_ALLOWED_HOSTS(список разрешённых Host-заголовков) и собственного межсетевого экрана. Не открывайте порт3001для публичного интернета.Формулы — это данные, а не код. ExcelJS записывает строки формул; он не выполняет макросы или VBA, поэтому открытие созданной книги не запускает никакой код с этого сервера.
Примеры запросов
"Создай новую книгу бюджета с колонками Категория, Бюджет, Факт и Разница."
"Прочитай данные в
Sales.xlsxи суммируй итоги по регионам.""Добавь формулу SUM внизу колонки B на листе Q1."
"Построй форматированную таблицу из этих данных со строкой итогов."
"Перенеси ежемесячные итоги из
Budget.xlsxна лист Summary вReport.xlsx."
Примечания и подводные камни
Разрешения. Один шаблон покрывает все 11 инструментов: разрешите mcp__<key>__*, где
<key> — имя, под которым вы зарегистрировали сервер. Если зарегистрирован как excel,
это mcp__excel__*. Вам никогда не нужно перечислять инструменты по отдельности.
Неизвестные параметры отклоняются (с версии 1.1.0). Ошибочно введённое имя аргумента
приводит к ошибке -32602 unrecognized_keys с указанием ключа, и каждый инструмент
публикует additionalProperties: false. Более ранние версии молча игнорировали опечатку и
работали с значениями по умолчанию, что приводило к уверенно неверным данным.
Формулы сохраняются, но не вычисляются. Этот сервер записывает текст формулы; он не
вычисляет результаты. Чтение ячейки с формулой возвращает
=SUM(A1:A2) (result: not calculated) до тех пор, пока файл не будет открыт и сохранён в
Excel или LibreOffice, что заполняет кэшированный результат. Когда вам нужны вычисленные
итоги, либо прочитайте исходные ячейки и суммируйте их сами, либо сначала прогоните файл
через табличное приложение.
Ограничения
Ни один инструмент в настоящее время не предоставляет:
Вставку или удаление строк/столбцов в середине листа
Создание или редактирование именованных диапазонов
Различение таблиц и именованных диапазонов
Для этих задач управляйте файлом напрямую с помощью библиотеки для работы с электронными
таблицами. В Python openpyxl покрывает все три
случая; загружайте с load_workbook(path, data_only=False), чтобы сохранить формулы,
поскольку data_only=True возвращает кэшированные значения, которые могут быть None
по указанной выше причине.
Лицензия
MIT (c) 2026 Corvalon.
This server cannot be deployed
Maintenance
Related MCP Connectors
Excel analytics: inspect, query (JSON rows), charts, and JSON-to-xlsx workbook writing.
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
Convert Apple Numbers (.numbers) to Excel (.xlsx) in the browser — first sheet free. MCP v1.1.0 (Streamable HTTP) exposes four tools: open_numbers2excel (open site / Stripe checkout intents; conversion is browser-local), get_site_info (product overview, pricing, URLs; read-only), get_pro_status (Stripe subscription_id sub_… status), get_unlock_from_session (Checkout session_id cs_… → entitlement). Path A: MCP does not accept or upload files.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Related MCP Servers
- AlicenseCqualityBmaintenanceAutomates Microsoft Excel spreadsheet creation and editing via MCP tools for any MCP-compatible client.37MIT
- AlicenseAqualityDmaintenanceMCP server for reading and writing Excel (xlsx) files using SheetJS, providing tools to list sheets, read data, create files, add sheets, and update cells.54 npmMIT
- FlicenseNot gradedqualityDmaintenanceFast, multi-sheet Excel retrieval and writing via MCP, supporting efficient data access with patch-based navigation and formula support.-
- AlicenseAqualityDmaintenanceEnables reading and writing Excel workbooks (.xlsx) through MCP. Supports listing sheets, tables, pivot tables, reading cell data, exporting to CSV/text/Markdown, and creating/modifying Excel files.14GPL 3.0