SumOffice — real Word and Excel for agents

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

사용해야 할까요

품질 및 안전성

B
설명 품질
97%
스키마 완전성
65%
이름 품질
82%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'document_find' description lacks action verbdocument_find에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,433토큰 (도구 정의)
~543 B일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.90%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "office": {
      "url": "https://view.sumoffice.com/mcp"
    }
  }
}

원격 엔드포인트

https://view.sumoffice.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (21)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
⚪document_open(slug)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "enum": [
        "footnotes",
        "comments",
        "forms",
        "rtl",
        "wild-horse",
        "workshop",
        "workbook",
        "functions",
        "macros",
        "queries",
        "gep",
        "vba-web",
        "sqlite",
        "order-desk",
        "onrr",
        "cashflow",
        "offer",
        "pivot",
        "chart",
        "notes",
        "check",
        "tools",
        "xtools"
      ]
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡document_open_file(url, base64, path, name)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2000
    },
    "base64": {
      "type": "string"
    },
    "path": {
      "type": "string",
      "maxLength": 1000
    },
    "name": {
      "type": "string",
      "maxLength": 200
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢document_describe

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

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢document_read(from, count)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "from": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 40
    }
  },
  "required": [
    "from"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢document_find(query)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪document_comments

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

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡document_propose_replacement(paragraph_index, text, reason)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "paragraph_index": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20000
    },
    "reason": {
      "type": "string",
      "maxLength": 300
    }
  },
  "required": [
    "paragraph_index",
    "text"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪document_apply(proposal_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "string",
      "minLength": 4,
      "maxLength": 64
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢sheet_read(range, sheet)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "range": {
      "type": "string"
    },
    "sheet": {
      "type": "string",
      "description": "Exact tab name, e.g. \"Logical\". Required when the workbook has more than one sheet."
    }
  },
  "required": [
    "range"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢sheet_find(query, sheet)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "sheet": {
      "type": "string",
      "description": "Exact tab name. Required when the workbook has more than one sheet."
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢macro_list

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

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢macro_read_source(module, procedure)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "module": {
      "type": "string"
    },
    "procedure": {
      "type": "string"
    }
  },
  "required": [
    "module",
    "procedure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪macro_plan(entrypoint, active_sheet)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "entrypoint": {
      "type": "string",
      "description": "Module.Procedure"
    },
    "active_sheet": {
      "type": "string"
    }
  },
  "required": [
    "entrypoint"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢query_list

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

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢query_explain(name)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢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'.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡sheet_propose_edits(edits, sheet, reason)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "edits": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "cell": {
            "type": "string"
          },
          "input": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "cell",
          "input"
        ]
      }
    },
    "sheet": {
      "type": "string"
    },
    "reason": {
      "type": "string",
      "maxLength": 300
    }
  },
  "required": [
    "edits"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪sheet_apply(proposal_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "proposal_id": {
      "type": "string",
      "minLength": 4,
      "maxLength": 64
    }
  },
  "required": [
    "proposal_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡document_save_copy(inline)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "inline": {
      "description": "also return the bytes as base64 (only for files up to 4 MB)",
      "type": "boolean"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡document_export_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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

권장 프롬프트

retrieve_data
Get details about [item] from SumOffice — real Word and Excel for agents
예상 도구: document_read
list_items
List all [items] available in SumOffice — real Word and Excel for agents
예상 도구: macro_list
search_research
Search for information about [topic] using SumOffice — real Word and Excel for agents
예상 도구: document_find
fetch_info
Fetch [information type] using SumOffice — real Word and Excel for agents
예상 도구: document_read
find_specific
Find [specific item] using SumOffice — real Word and Excel for agents
예상 도구: document_find

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 21개
검증됨버전이 기록되지 않음도구 21개