--- name: excel description: "Read/write Excel workbooks (.xlsx/.xlsm/.xls) via Apache POI. 26 tools: workbook lifecycle, range I/O, sheet management, tables, named ranges, VBA extraction." version: 0.1.0 transport: stdio recipe: attr: mcps.excel command: ${recipe:excel:bin}/java args: - -jar - ${recipe:excel:lib}/excel-mcp.jar env: # EXCEL_MCP_ROOT is the path-sandbox root. The server validates it exists at # startup (fail-closed), so it must be a path that is present in every session # container regardless of where the workspace is mounted. We use `/` rather # than a session-specific path (`/skaile/workspace`, `/workspace`) because the # asset cannot know the host's mount layout; the per-session container is # already the isolation boundary. Operators can override per session via env. # TODO(workspaces): once the runner exposes a ${workspace} substitution token, # set this to ${workspace} for a true per-session sandbox. EXCEL_MCP_ROOT: / JAVA_HOME: ${recipe:excel} keywords: - excel - xlsx - xlsm - xls - spreadsheet - workbook - mcp - poi --- # Excel MCP Server Docker-based MCP server for Excel file operations, built on Apache POI 5.5.1. Provides 26 tools across workbook lifecycle, range I/O, sheet management, row/column mutation, tables, named ranges, and read-only VBA module extraction. ## Runtime Built and pinned by the platform Nix flake (`platform/nix/flake.nix`'s `mcps.excel` derivation). At session start the runner resolves `${recipe:excel}` to the closure's `/nix/store` path. No `docker build` step required for platform-deployed sessions. For local standalone testing without the platform: build the docker image (`docker build -t excel-mcp:dev .`) and override `command`/`args` in `skaile.yaml`'s `mcp_servers:` block. ## Override examples Override command and workspace root in `skaile.yaml` for standalone use: ```yaml dependencies: - mcp:excel mcp_servers: - id: excel command: docker args: [run, --rm, -i, -v, "/projects:/data:rw", -e, EXCEL_MCP_ROOT=/data, excel-mcp:dev] ```