SumOffice — real Word and Excel for agents

com.sumoffice由 sumoffice.com 发布官方发布者v0.3.1更新于 Oct 24, 2026

Real Word and Excel for agents: open your .docx/.xlsm, read, propose, apply, get it back intact.

已验证Streamable HTTP可网页运行效率与工作流文件与存储

概览

AI 生成的概览

让助手打开真实的 Word 和 Excel 文件,读取内容、提出修改建议供确认,并返回完好的副本或 PDF。

可以做什么
打开演示文件或自己的 .docx/.odt 文档、.xlsx/.xlsm/.xlsb/.ods 工作簿(最大 50 MB),来源可为 URL 或 base64 字节,在本次会话的私有编辑区中处理。概述、读取、查找文档段落,并列出批注和修订记录。概述工作表、读取区域的值与公式、在工作簿中查找单元格。提出段落替换或最多 20 个单元格的修改建议,确认后再应用到编辑区副本。以只读方式查看 VBA 模块、宏和 Power Query 查询,并一次性梳理整个工作簿模型。将结果另存为副本并给出 24 小时有效的下载链接,或将文档导出为 PDF。
适用场景
适合助手需要处理真实 Office 文件而非纯文本的场景:审阅或修改合同、填写表格、核对公式,或在改动前了解含大量宏的工作簿。先建议后应用的流程适合需要逐项人工确认的场合。
运行要求
可通过 streamable HTTP 连接远程端点,或用 Docker 镜像以 stdio 在本地运行并挂载目录以使用本地路径。无需账号、API 密钥或环境变量。文件最大 50 MB;远程使用有按地址的每日配额。
安装前请注意
通过服务器打开的文件(包括本地文件)会在 SumOffice 服务器上的短期编辑会话中处理,并在会话结束后或 24 小时内删除。修改只作用于会话副本,不会改动原始文件;结果以 24 小时有效的下载链接返回。宏和 Power Query 只被读取和保留,不会执行或刷新。同一文档同时只允许一个编辑会话。

安装

在 SourceWeft 中

  1. 打开 控制台中的 SumOffice — real Word and Excel for agents,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.sumoffice%2Foffice/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "sumoffice-real-word-and-excel-for-agents": {
      "type": "http",
      "url": "https://view.sumoffice.com/mcp"
    }
  }
}

README

SumOffice MCP server — real Word and Excel for agents

One server, two ways to run it. The agent opens your .docx / .xlsx / .xlsm, reads it, proposes a change, you approve, the file comes back intact — Excel and Word open the result without a repair dialog. Macros (VBA) and Power Query travel with the file.

Registry name: com.sumoffice/office · page with proof: https://sumoffice.com/mcp · image: docker.io/hissih/sumoffice-mcp

Remote — nothing to install

https://view.sumoffice.com/mcp (streamable HTTP).

sh
claude mcp add --transport http sumoffice https://view.sumoffice.com/mcp

Clients without HTTP support: npx -y mcp-remote https://view.sumoffice.com/mcp (see examples/).

Local over stdio — local file paths

sh
docker run -i --rm -v "$PWD:/work" hissih/sumoffice-mcp

The server runs on your machine and accepts path in document_open_file (paths under /work). The file itself is opened in a private, short-lived editor session on the SumOffice server and deleted after the session; nothing in the file is executed.

Tools

Documents (.docx)Spreadsheets (.xlsx/.xlsm/.xlsb)Both
document_open_file, document_open, document_describe, document_read, document_find, document_comments, document_propose_replacement → document_applysheet_describe, sheet_read, sheet_find, sheet_propose_edits → sheet_apply, macro_list, macro_read_source, macro_plan, query_list, query_explain, workbook_inspectdocument_save_copy, document_export_pdf

propose_* never writes: it returns a diff for the person or the client to approve; *_apply applies exactly that proposal. Every step is listed in the response, so the agent cannot change a file silently.

Examples

  • examples/claude-desktop.json — Claude Desktop (claude_desktop_config.json), local stdio via Docker.
  • examples/cursor-mcp.json — Cursor (.cursor/mcp.json), remote HTTP.
  • examples/claude-code.sh — Claude Code, both variants.
  • examples/docker-compose.yml — the local server as a compose service with a mounted folder.

What it does not do yet

  • One editor session per document at a time; a second agent on the same file gets read-only.
  • Power Query definitions are preserved, not refreshed, in the server session.
  • Macros are read and routed (which will run natively, which stay in Excel); they are not executed by the MCP server.

Limits and privacy

Free, no account. Remote: per-address daily quota; files are deleted after the session or 24 hours at most, never used for anything else. Details: https://sumoffice.com/app-privacy.html

Licence

This repository (documentation, manifest, examples) is MIT. The server image is free for evaluation and for use with the public endpoint; production use inside an organisation is licensed per application — https://sumoffice.com/download#server. Questions: [email protected]

来源:README.md,提交 af52655

工具

21

document_open

Open a demo document or workbook

Open one of the demo files by name: documents footnotes, comments, forms, rtl, wild-horse, workshop, offer, tools; workbooks workbook, functions, macros, queries, gep, vba-web, sqlite, order-desk, onrr, cashflow, pivot, chart, notes, check, xtools. Default is footnotes. For your own file use document_open_file. Opens a separate editor cabin for this session.

输入参数slug必填

document_open_file

Open your own Word document or Excel workbook

Open YOUR file in a private editor cabin for this session: a .docx/.doc/.odt document or an .xlsx/.xlsm/.xlsb/.xls/.ods workbook, up to 50 MB. Give exactly one of: url (https link the server can fetch), base64 (file bytes; then name with the extension is required). Nothing in the file is executed. The file is kept for 24 hours and then deleted. After opening, use document_* tools for a document or sheet_* / macro_* / query_* / workbook_inspect for a workbook; sheet_propose_edits → sheet_apply and document_propose_replacement → document_apply change the copy in the cabin; document_save_copy returns a download link of the edited file.

输入参数urlnamepathbase64

document_describe

What the document is

Name, pages, paragraphs, words, number of comments and tracked changes, whether track changes is on. For documents; call first.

无需输入参数。

document_read

Read paragraphs

Paragraph text as a window: from = index of the first paragraph (0-based), count = how many (max 40). The answer carries next — where to continue, null at the end. A missing paragraph is a refusal, not an invention.

输入参数from必填count

document_find

Find in the document

Paragraphs containing the text (case-insensitive), with snippets around the match.

输入参数query必填

document_comments

Comments and tracked changes

Comments (author, text, anchor, resolved) and tracked changes — up to 50.

无需输入参数。

document_propose_replacement

Propose replacing one paragraph's text

Propose the full new text of one paragraph (paragraph_index from document_read). Nothing changes yet: the editor core builds the change on a copy and returns before/after plus checks (numbers, dates, links kept). Then call document_apply with the proposal_id. Read the paragraph first.

输入参数text必填reasonparagraph_index必填

document_apply

Apply a proposed paragraph replacement

Apply a proposal from document_propose_replacement to the document in this session's cabin (not to your original file). Stale proposal (the document moved on) is refused by the engine — propose again. Repeating an applied proposal is a no-op.

输入参数proposal_id必填

sheet_describe

Workbook overview: every sheet tab with its used range, the current revision, and the header row of the sheet that is open. Call this first, then pass the tab name you need as "sheet" to sheet_read and sheet_find.

无需输入参数。

sheet_read

Read a rectangular range like A1:F20 (max 60 rows × 26 columns): values and formulas. Empty cells are omitted. ALWAYS pass "sheet" with the exact tab name when the workbook has more than one sheet — without it you read whichever sheet happens to be open, and the answer will quietly be about the wrong sheet. Call sheet_describe first if you do not know the tab names.

输入参数range必填sheet

sheet_find

Find cells whose value or formula contains the text (case-insensitive) in the used range of a sheet. ALWAYS pass "sheet" with the exact tab name when the workbook has more than one sheet: without it only the sheet that happens to be open is searched.

输入参数query必填sheet

macro_list

List VBA modules and runnable macros (entry points) in this workbook with their route and blockers. Runs nothing.

无需输入参数。

macro_read_source

Read the source text of one procedure (module + procedure name from macro_list). Read-only; runs nothing.

输入参数module必填procedure必填

macro_plan

Plan a macro run without running it: route, whether the engine can run it natively, blockers, instruction budget.

输入参数entrypoint必填active_sheet

query_list

List Power Query queries in this workbook: names, step chain, load target, connections. Reads only; refreshes nothing.

无需输入参数。

query_explain

Explain one Power Query query by name: its steps in order, where it loads, its connection. Reads only; refreshes nothing.

输入参数name必填

workbook_inspect

Map the whole application model of this workbook in one call: sheets; VBA modules, procedures, which can run here and which are blocked and why; event handlers; external objects (CreateObject) and Windows API (Declare) dependencies; project references; Power Query queries; data connections; form controls, ActiveX, embedded objects (preserved). Runs nothing. Call this first for questions like 'how is this workbook built' or 'what does it depend on'.

无需输入参数。

sheet_propose_edits

Propose new contents for up to 20 cells (formulas like =SUM(B2:B9), or numbers/text). Nothing changes in the workbook: the engine previews the edits on the current revision and reports what would change and whether errors appear; the person decides whether to apply. Read the cells first. Do not overwrite input numbers unless the task says so. Then call sheet_apply with the proposal_id.

输入参数edits必填sheetreason

sheet_apply

Apply proposed cell edits

Apply a proposal from sheet_propose_edits to the workbook in this session's cabin (not to your original file); the engine recalculates. Refused if the workbook revision moved on since the proposal — propose again. Repeating an applied proposal is a no-op.

输入参数proposal_id必填

document_save_copy

Save a copy of the edited file

Write the document or workbook as it is now in this session's cabin (after applied proposals) to a copy and return a download link valid for 24 hours. Your original file is never touched. A workbook with macros comes back as .xlsm with the VBA project intact; a document keeps its styles, comments and tracked changes.

输入参数inline

document_export_pdf

Render the document to PDF

Lay out the document as it is now in this session's cabin (after applied proposals, or as opened) and return a PDF download link valid for 24 hours, plus the page count. Documents only; for workbooks use document_save_copy.

无需输入参数。

版本历史

2
  1. v0.3.1最新Sep 21, 2026
  2. v0.3.0Sep 20, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分