Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者による説明(英語の原文)
MCP server for accurate, structure-preserving read/write access to Excel (.xlsx) files
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
XLSX_MCP_FILES, XLSX_MCP_RECALC_TIMEOUT, XLSX_MCP_LOCK_TIMEOUT, XLSX_MCP_ALLOWED_DIRS, XLSX_MCP_AUTO_BACKUP, XLSX_MCP_BACKUP_DIR必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"xlsx-tools": {
"command": "uvx",
"args": [
"xlsx-tools-mcp"
],
"env": {
"XLSX_MCP_FILES": "your-value",
"XLSX_MCP_RECALC_TIMEOUT": "your-value",
"XLSX_MCP_LOCK_TIMEOUT": "your-value",
"XLSX_MCP_ALLOWED_DIRS": "your-value",
"XLSX_MCP_AUTO_BACKUP": "your-value",
"XLSX_MCP_BACKUP_DIR": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add xlsx-tools --env XLSX_MCP_FILES=your-value --env XLSX_MCP_RECALC_TIMEOUT=your-value --env XLSX_MCP_LOCK_TIMEOUT=your-value --env XLSX_MCP_ALLOWED_DIRS=your-value --env XLSX_MCP_AUTO_BACKUP=your-value --env XLSX_MCP_BACKUP_DIR=your-value -- uvx xlsx-tools-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"xlsx-tools": {
"command": "uvx",
"args": [
"xlsx-tools-mcp"
],
"env": {
"XLSX_MCP_FILES": "your-value",
"XLSX_MCP_RECALC_TIMEOUT": "your-value",
"XLSX_MCP_LOCK_TIMEOUT": "your-value",
"XLSX_MCP_ALLOWED_DIRS": "your-value",
"XLSX_MCP_AUTO_BACKUP": "your-value",
"XLSX_MCP_BACKUP_DIR": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"xlsx-tools": {
"type": "stdio",
"command": "uvx",
"args": [
"xlsx-tools-mcp"
],
"env": {
"XLSX_MCP_FILES": "your-value",
"XLSX_MCP_RECALC_TIMEOUT": "your-value",
"XLSX_MCP_LOCK_TIMEOUT": "your-value",
"XLSX_MCP_ALLOWED_DIRS": "your-value",
"XLSX_MCP_AUTO_BACKUP": "your-value",
"XLSX_MCP_BACKUP_DIR": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
XLSX_MCP_FILES envXLSX_MCP_RECALC_TIMEOUT envXLSX_MCP_LOCK_TIMEOUT envXLSX_MCP_ALLOWED_DIRS envXLSX_MCP_AUTO_BACKUP envXLSX_MCP_BACKUP_DIR envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント ruriazz で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.2)がレジストリに届いたのは22 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP server for reading and writing Excel (.xlsx) files with high accuracy, while preserving the file's existing structure, styles, and formulas.
xlsx-tools-mcp exposes 29 Model Context Protocol (MCP) tools that give an LLM agent accurate, structure-preserving read and write access to Excel .xlsx files. It runs as a standard stdio MCP server: you install it and register it with an MCP client (Claude Code, OpenCode, etc.), and the client's agent can list sheets, read cell ranges, search values, aggregate data, write cells/formulas, manage sheets/rows/columns, apply styles, and force formula recalculation.
It is built around the principle that editing an existing workbook should not destroy what it doesn't touch.
errors_found — any Excel error values (#REF!, #DIV/0!, #N/A, …) produced by the recalculation.aggregate_sheet and query_sheet perform operations without destroying source structure, equipped with AST expression validation to block code injection.create_table) with autofilter and styles, and native charts (create_chart for bar, line, pie, scatter).rename_sheet), duplicate sheets with styles intact (copy_sheet), clear ranges (clear_range), and auto-fit column widths (autofit_columns).; environment delimiters, safe atomic file replacement with transient lock retry (WinError 32 / antivirus defense), and silent headless recalculation without window flicker. .lock file (filelock), so writes never interleave and corrupt the file.XLSX_MCP_ALLOWED_DIRS (comma or semicolon-separated) restricts all reads and writes to specific directories. If set, any attempt to access a file outside these boundaries raises AccessDeniedError. Case-insensitive path comparisons and multi-drive paths on Windows are supported..bak sibling file before modifying the workbook if backup=True (which defaults to XLSX_MCP_AUTO_BACKUP=true). Use restore_backup to atomically revert changes.write_cells and append_rows reject formulas containing WEBSERVICE, HYPERLINK, INDIRECT, RTD, CALL, REGISTER, or DDE commands (|) by default to prevent data exfiltration or malicious links. Pass allow_external_formulas=True to bypass this check.defusedxml package is an automatic dependency; openpyxl detects it and uses its hardened XML parser, so hostile xlsx XML can't expand into resource exhaustion.XLSX_MCP_FILES to preload one or more workbooks (comma or semicolon-separated); tools can then be called with path omitted or with a short alias instead of a full filesystem path.Live via pypistats.org, non-mirror downloads. These count download events, not unique users or installs — one user can trigger many downloads (CI, reinstalls, Docker rebuilds, mirrors).
┌──────────────────────── Supervisor (MCP transport, stdio)
│ src/xlsx_tools_mcp/server.py 29 MCP tools + instructions │ src/xlsx_tools_mcp/settings.py env vars, preloaded files, path resolution │ src/xlsx_tools_mcp/locking.py per-file .lock serialization │ src/xlsx_tools_mcp/errors.py domain error types │ src/xlsx_tools_mcp/recalc.py LibreOffice headless recalc + error scanning │ ├─ Read path │ src/xlsx_tools_mcp/io/reader.py calamine primary → openpyxl fallback │ src/xlsx_tools_mcp/io/transform.py pandas aggregation on read results │ └─ Write path src/xlsx_tools_mcp/io/writer.py openpyxl → LibreOffice recalc → scan errors
The io layer (io/) is deliberately decoupled from the MCP transport (server.py). Each MCP tool is a thin wrapper that resolves the target path, takes the per-file lock, and calls one io-layer function. This keeps the core logic independent of MCP, so it can be tested directly (see tests/).
After a write that touches cell values or formulas, the server runs soffice --headless --convert-to xlsx on the file so every formula gets a real computed value. This round-trip recomputes formulas but re-exports the whole workbook — it is a tradeoff, not a guarantee of bit-perfect preservation. Features that openpyxl would otherwise preserve may not survive identically: pivot tables, charts, data validation, some formats, and some defined names.
If you're working on a structurally complex workbook where that risk matters, you can pass recalculate=False on the value/formula-writing tools (write_cells, append_rows, insert_rows, delete_rows, insert_columns, delete_columns) to save with openpyxl only and skip the round-trip entirely.
message field.Install LibreOffice:
# macOS
brew install --cask libreoffice
sudo apt-get install -y libreoffice-calc
winget install TheDocumentFoundation.LibreOffice
The server finds LibreOffice by checking soffice / libreoffice on PATH, the standard macOS install location (/Applications/LibreOffice.app/Contents/MacOS/soffice), and standard Windows paths (%ProgramFiles%\LibreOffice\program\soffice.exe, etc.). On Windows, headless recalculation runs silently without window flicker (CREATE_NO_WINDOW) and with isolated user profiles.
The server speaks stdio transport (standard MCP): after installation it waits for an MCP client to connect and call tools. You don't usually run it yourself; you register it with a client.
uvx (recommended — no clone)uvx xlsx-tools-mcp
uvx fetches and runs the published package without polluting your project. This is the simplest way to power up an MCP client (see configuration snippets below).
git clone https://github.com/ruriazz/xlsx-tools-mcp.git
cd xlsx-tools-mcp uv sync
uv run xlsx-tools-mcp
pippip install xlsx-tools-mcp
This installs the console entry point, so you can run the server directly:
xlsx-tools-mcp
The simplest registration for every client uses uvx xlsx-tools-mcp (no clone, always the published version).
Tip for Windows: In JSON client configuration files (
.mcp.json,opencode.json), use forward slashes (e.g."C:/path/to/data.xlsx") or escaped backslashes (e.g."C:\\\\path\\\\to\\\\data.xlsx") to prevent JSON escape sequence errors.
claude mcp add xlsx-tools-mcp -- uvx xlsx-tools-mcp
Or via .mcp.json in your project:
{
"mcpServers": { "xlsx-tools-mcp": { "command": "uvx", "args": ["xlsx-tools-mcp"] } } }
In opencode.json (project) or ~/.config/opencode/opencode.json (global):
{
"mcp": { "xlsx-tools-mcp": { "type": "local", "command": ["uvx", "xlsx-tools-mcp"], "enabled": true } } }
If you cloned the repo instead of installing from PyPI, point the client at your local checkout by swapping uvx xlsx-tools-mcp for the dynamic uv run form (use the absolute path to the clone):
Claude Code `.mcp.json`:
{
"mcpServers": { "xlsx-tools-mcp": { "command": "uv", "args": ["--directory", "/absolute/path/to/xlsx-reader", "run", "xlsx-tools-mcp"] } } }
OpenCode:
{
"mcp": { "xlsx-tools-mcp": { "type": "local", "command": ["uv", "--directory", "/absolute/path/to/xlsx-reader", "run", "xlsx-tools-mcp"], "enabled": true } } }
Replace /absolute/path/to/xlsx-reader with the actual location of your clone.
XLSX_MCP_FILES)Set the XLSX_MCP_FILES environment variable in the MCP server config `env` section (not your interactive shell — the server is launched by the client) to preload workbooks at startup. Format: comma- or semicolon-separated alias=absolute/path entries, or bare absolute paths:
XLSX_MCP_FILES=name=/abs/path/to/name.xlsx,report=/data/report.xlsx
Bare paths get an alias defaulting to the filename:
XLSX_MCP_FILES=/abs/path/to/sales.xlsx
With alias/filename as the alias:
path omitted entirely.path.list_configured_files() returns the alias → absolute-path mapping.Claude Code — `.mcp.json` with preloading:
{
"mcpServers": { "xlsx-tools-mcp": { "command": "uvx", "args": ["xlsx-tools-mcp"], "env": { "XLSX_MCP_FILES": "report=/data/report.xlsx,sales=/data/sales.xlsx" } } } }
OpenCode with preloading:
{
"mcp": { "xlsx-tools-mcp": { "type": "local", "command": ["uvx", "xlsx-tools-mcp"], "env": { "XLSX_MCP_FILES": "report=/data/report.xlsx,sales=/data/sales.xlsx" }, "enabled": true } } }
All 29 tools. Unless noted, path accepts a filesystem path, a preloaded alias/filename, or may be omitted when exactly one file is preloaded. create_workbook is the exception — its path is required because a new file is never preloaded.
Response shape (all write tools): every write tool returns
{"saved": bool, "recalculated": bool, "errors_found": list, "message": str}. When non-empty,errors_foundis a list of{"sheet": "...", "cell": "B2", "error": "#DIV/0!"}.
| Tool | Description |
|---|
| list_configured_files() | List files preloaded at startup via XLSX_MCP_FILES, as an alias → absolute-pa
冒頭だけを表示しています。続きはリポジトリで読めます