Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
作者による説明(英語の原文)
Edit Office documents and prove no edit went unrecorded
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
SettingsDeveloperEdit Config
{
"mcpServers": {
"ooxml-ledger": {
"command": "uvx",
"args": [
"mcp-ooxml-ledger"
]
}
}
}MCP Ooxml Ledger を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が MCP Ooxml Ledger を使っていると言うか、回答に MCP Ooxml Ledger のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ MCP Ooxml Ledger につなげません
MCP Ooxml Ledger はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
A · MCP Ooxml Ledger につなげるアプリを使う
Claude Code につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
claude mcp add ooxml-ledger -- uvx mcp-ooxml-ledgerMCP Ooxml Ledger が一覧にあり、接続済みと表示されれば OK です
MCP Ooxml Ledger を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が MCP Ooxml Ledger を使っていると言うか、回答に MCP Ooxml Ledger のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
MCP Ooxml Ledger を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が MCP Ooxml Ledger を使っていると言うか、回答に MCP Ooxml Ledger のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
MCP Ooxml Ledger を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が MCP Ooxml Ledger を使っていると言うか、回答に MCP Ooxml Ledger のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください
JSON 設定は下の「開発者向け」にあります
Claude Code
claude mcp add ooxml-ledger -- uvx mcp-ooxml-ledgerClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"ooxml-ledger": {
"command": "uvx",
"args": [
"mcp-ooxml-ledger"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"ooxml-ledger": {
"command": "uvx",
"args": [
"mcp-ooxml-ledger"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"ooxml-ledger": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-ooxml-ledger"
]
}
}
}この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Anselmoo で確認済みです
コードの最終更新:35 日前
MITを使用
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
まだレビューはありません
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は35 日前、最新バージョン(0.3.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv), Dockerも必要です。
同じカテゴリには:Puter MCP, XcodeBuildMCP, XcodeBuildMCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP server that edits Office documents and refuses to write one where an edit went unrecorded.
Before sealing a session it replays every recorded operation against the document's baseline and compares the result to what is actually on disk. A change no operation explains means the commit is refused. Of ~18 competing MCP document-editing projects, none gates the write on that check. The refusal is the product.
uv add mcp-ooxml-ledger
Add to .mcp.json (project) or claude_desktop_config.json (desktop — use an absolute path, ${CLAUDE_PROJECT_DIR} isn't expanded there):
{
"mcpServers": { "ooxml-ledger": { "command": "uv", "args": ["run", "--project", "${CLAUDE_PROJECT_DIR}", "ooxml-ledger-mcp"], "env": { "OOXML_LEDGER_ROOTS": "${CLAUDE_PROJECT_DIR}" } } } }
Needs uv on PATH; nothing else installed globally. Invoking the ooxml-ledger-mcp script directly gives ENOENT — it lives in the project venv, not your shell's PATH.
`OOXML_LEDGER_ROOTS` is the security boundary. An
os.pathsep-separated list; every
path any tool receives is resolved inside it and refused outside. Unset, it defaults to the
server's working directory — set it deliberately, since
export_receiptwrites anywhere
inside a root.
| Tool | ||
|---|---|---|
| session | open_document · close_document | writes |
| read | describe_structure · find_text | read-only |
| edit | preview_edits · apply_edits · delete_paragraph · insert_paragraph | writes |
| seal | commit_document | writes · enforces the gate |
| stateless | server_info · digest · verify · list_receipts | read-only |
export_receipt | writes | |
| transfer | import_document | writes — into _inbox/ only |
export_document | read-only |
Typical loop:
open_document → find_text → preview_edits → apply_edits → commit_document → verify
sid = open_document(document="report.docx")["session_id"]
find_text(sid, query="Q3 revenue") # → part, para_id, para_hash preview_edits(sid, edits=[...], author="alice") # → what WOULD happen; writes nothing apply_edits(sid, edits=[...], author="alice", mode="tracked") commit_document(sid) # → refuses if anything is unaccounted for verify("report.docx") # → verified | unknown | failed
preview_edits runs the same engine function as apply_edits against a throwaway copy, so the two cannot disagree. Batches are all-or-nothing: a failing edit leaves the document byte-identical.
mode="tracked" emits Word revision marks a reviewer sees in the document. mode="direct" rewrites the text with none — still fully recorded, and the receipt discloses that a direct edit touched a revision-capable part, so it is never silently indistinguishable from an ordinary save.
A file uploaded into a chat lives in the client's sandbox, not on the server's filesystem, so open_document correctly refuses its path. Widening OOXML_LEDGER_ROOTS cannot reach it. Send the bytes instead:
import_document → open_document → … → commit_document → export_document
p = import_document(name="report.docx", content_base64="UEsDB…")["path"] # → <root>/_inbox/report.docx
sid = open_document(document=p)["session_id"] ... # edit as usual commit_document(sid) # → receipt schema ooxml-ledger/2 export_document(document=p) # → file + receipt as embedded resources
import_document takes a bare filename and writes _inbox/ under the first root. It never overwrites an existing file, and it validates the bytes as a real Office package before anything is published.final=false returns an upload_id; continue with it and offset (the bytes received so far); the final=true call must carry the sha256 of the whole file. A lost or repeated chunk is a refusal, never a different document.OOXML_LEDGER_IMPORT_MAX_BYTES sets the largest document either tool accepts, in decoded bytes. The default is 25 MiB.ooxml-ledger/2, with a chain-bound provenance block (docs/superpowers/specs/receipt-format-v2.md). verify prints it as a PROVENANCE line, and it never changes the verdict. Receipts for every other document stay ooxml-ledger/1, byte-identical to before.export_document returns the file as an MCP embedded resource, with its Office media type and the receipt alongside. By default it refuses a document that no stored receipt matches, so an unsealed edit is never handed out; pass require_receipt=false to override.| Format | Verify | Edit |
|---|---|---|
Word .docx | Yes | Yes — tracked + direct, paragraph insert/delete |
PowerPoint .pptx | Yes | Direct only — PresentationML has no revision model, so every edit carries a mandatory disclosure |
Excel .xlsx | Yes | No — editing verbs refuse, naming the format |
Verification, digests, the gate and the receipt model are format-agnostic. Only the *editing* engines are format-specific: wml.py (Word) and pml.py (PowerPoint).
OOXML_LEDGER_READ_ONLY=1 leaves exactly server_info, digest, verify, list_receipts, export_document. The others aren't merely hidden — calling one answers Unknown tool. No write surface inside the roots at all.
ooxml-ledger verify report.docx # exit 0 only when verified
No server, no session — digests the file, finds its receipt by content address, checks it. Wire it into CI or a pre-commit hook and an unaccounted-for change fails the build.
Every GitHub Release attaches a .mcpb file — a one-click Claude Desktop install: drag it onto the app and Desktop launches it with uv run --directory --frozen --no-dev ooxml-ledger-mcp. Nothing is vendored — the bundle carries only manifest.json, pyproject.toml, uv.lock, README.md, LICENSE and src/. The host needs `uv` on `PATH`, and the first launch resolves the exact dependency versions uv.lock pins from PyPI, which needs network access; --frozen means it installs precisely the versions the test suite ran against, never a fresh resolve, and --no-dev keeps the dev group (pytest, ruff, pre-commit) out of the install. mcpb/manifest.json exposes the document root and read-only toggle as install-time settings instead of environment variables; the tool list matches the stdio server's.
CI builds and smoke-tests the bundle on macos-latest only, and the manifest's compatibility.platforms declares darwin only — the bundle is built and proven on macOS/arm64, nothing else. Because nothing is vendored, uv itself picks a Python satisfying requires-python = ">=3.13" and installs the wheels uv.lock pins for the host's own platform — native ones such as pydantic-core and cryptography included. That part is not darwin-specific, but only the darwin launch path has actually been proven end-to-end here.
_inbox/ before its first commit drops the record, so the first receipt is written as v1. After a commit, the lineage travels with the receipts store. Provenance records what arrived, not that it matches the user's original upload: compare its sha256 out of band if that matters.verify reports that verdict rather than recomputing it.w:p/w:r/w:t). Styles, numbering, settings and relationships are uneditable and covered by the accountability check alone.CONTRIBUTING.md covers setup, the branch and commit naming CI enforces, and the release flow. SECURITY.md covers private vulnerability reporting, and is explicit about which of this project's documented limits are design rather than defects.
MIT licensed. Design notes and specifications live in docs/superpowers/.