# SumOffice — real Word and Excel for agents (com.sumoffice/office): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/com.sumoffice%2Foffice/versions/latest)
- Connected to: https://view.sumoffice.com/mcp
- Homepage: https://sumoffice.com/mcp
- Repository: https://github.com/SumOfficeApp/sumoffice-mcp
- Scoring rules: v2
- Tools: 21
- Average: 37.2 / 100 (Rain)
- Near-identical pairs: 1

This page shows how SumOffice — real Word and Excel for agents (com.sumoffice/office)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `document_find`: 18 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `query_explain`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name.
  - Minor: String arguments with no constraint or example: name.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `macro_read_source`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: module, procedure.
  - Minor: String arguments with no constraint or example: module, procedure.
  - Minor: Says nothing about what it returns.
- `document_apply`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: proposal_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: proposal_id. Name the tool or the place that returns it, or models look it up first.
- `document_open`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `document_read`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: from, count.
  - Minor: Says nothing about what it returns.
- `macro_plan`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: active_sheet.
  - Minor: String arguments with no constraint or example: entrypoint, active_sheet.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sheet_apply`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: proposal_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: proposal_id. Name the tool or the place that returns it, or models look it up first.
- `sheet_propose_edits`: 32 / 100
  - Major: Arguments without a description: edits, edits[].cell, edits[].input, sheet, reason.
  - Minor: String arguments with no constraint or example: edits[].cell, sheet.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `document_open_file`: 36 / 100
  - Major: Arguments without a description: url, base64, path, name.
  - Minor: String arguments with no constraint or example: base64.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `document_propose_replacement`: 37 / 100
  - Major: Arguments without a description: paragraph_index, text, reason.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `document_comments`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `document_describe`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `macro_list`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `query_list`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sheet_describe`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sheet_find`: 48 / 100
  - Minor: Arguments without a description: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `workbook_inspect`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `document_export_pdf`: 54 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `document_save_copy`: 57 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sheet_read`: 59 / 100
  - Minor: Arguments without a description: range.
  - Minor: String arguments with no constraint or example: range.
  - Minor: Says nothing about what it returns.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
