Safe Docx
NPM · @USEJUNIOR/SAFE-DOCX · SCANNED AUG 4
AI-native surgical editing of Word .docx and OpenDocument .odt files with formatting preservation
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security84
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known medium-severity CVE affects hono 4.12.33, reached via @usejunior/docx-mcp > @modelcontextprotocol/sdk > hono. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (110 of 117), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to UseJunior/safe-docx). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 10 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability56
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 5123 tokens (~197/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 80% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @usejunior/safe-docx
claude mcp add usejunior-safe-docx -- npx -y @usejunior/safe-docx
codex mcp add usejunior-safe-docx -- npx -y @usejunior/safe-docx
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"usejunior-safe-docx": {
"type": "local",
"command": [
"npx",
"-y",
"@usejunior/safe-docx"
],
"enabled": true
}
}
} openclaw mcp add usejunior-safe-docx --command npx --arg -y --arg @usejunior/safe-docx
mcp_servers:
usejunior-safe-docx:
command: "npx"
args: ["-y", "@usejunior/safe-docx"] {
"mcpServers": {
"usejunior-safe-docx": {
"command": "npx",
"args": [
"-y",
"@usejunior/safe-docx"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Aug 26 0
- CVE-2026-69207 affects this package: medium ▼ security
- Known CVEs: partial → fail ▼ security
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +56
- Known CVEs: unverified → partial ▲ security
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: UseJunior/safe-docx security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Schema quality: unverified → good ▲ functional
- Licence: Apache-2.0 functional
- 31 Jul 26 −6
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +18
- Tool coverage: unverified → 100 ▲ functional
- 28 Jul 26 −18
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 24
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Aug 2026 · Analysed npm/@usejunior/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- UseJunior/safe-docx
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/UseJunior/safe-docx/.github/workflows/release.yml@refs/tags/v0.19.1
- Rekor log index:
- 2240024891
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:bbd0cb533bfe3cc95278ed98e1f9606e07210d68e8b1239e7964e302b38a04bfd73ac190dfd8a2e6f86190dd333c6a312c0085f41d8579c86b8875a69
- Discovery method:
- attestation_endpoint
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-8j4g-w8fx-2239 | CVE-2026-69207 | medium | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L | yes |
Dependencies 110 packages
110 packages in the resolved dependency tree · 106 deprecated · 39 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
accept_ai_edits ~264
Selectively accept tracked changes by revision id or author in the in-memory session, leaving all other (e.g. third-party reviewer) revisions byte-untouched. This does not write file_path; call save to persist the mutation. Provide revision_ids (array of w:id values) to target specific revisions, or author to accept every revision by one actor. Sweeps document.xml and supported side-story parts (footnotes, endnotes, comments). An ambiguous overlap — a targeted revision structurally containing, or contained by, a non-targeted revision (nested ins/del/move) — hard-errors with code AMBIGUOUS_REVISION_OVERLAP and a structured `overlaps` list unless normalize_first is set (best-effort, no byte-identical promise).
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | — | Accept every revision authored by this w:author. Convenience alternative to revision_ids. |
| file_path | string | yes | Path to the DOCX or ODT file. |
| normalize_first | boolean | — | Attempt best-effort resolution on an ambiguous (overlapping) revision graph instead of hard-erroring. No byte-identical guarantee. Default: false. |
| revision_ids | array | — | w:id values of the revisions to accept. Mutually preferred over author. |
No output schema declared.
No examples provided.
accept_changes ~47
Accept all tracked changes in the document body, producing a clean document with no revision markup. Returns acceptance stats.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
No output schema declared.
No examples provided.
add_comment ~214
Add a comment or threaded reply to a document. Provide target_paragraph_id + anchor_text for root comments, or parent_comment_id for replies. Supports DOCX and ODT (ODT backs comments with office:annotation; threaded replies are DOCX-only). Surface: revisionable + package-mutation — the body-story comment reference is tracked (w:ins), while comment text and author metadata are recorded in the save report non-revision change manifest.
| Name | Type | Req | Description |
|---|---|---|---|
| anchor_text | string | — | Text within the paragraph to anchor the comment to. If omitted, anchors to entire paragraph. |
| author | string | yes | Comment author name. |
| file_path | string | yes | Path to the DOCX or ODT file. |
| initials | string | — | Author initials (defaults to first letter of author name). |
| parent_comment_id | number | — | Parent comment ID for threaded replies. |
| target_paragraph_id | string | — | Paragraph ID to anchor the comment to (for root comments). |
| text | string | yes | Comment body text. |
No output schema declared.
No examples provided.
add_footnote ~172
Add a footnote anchored to a paragraph. Optionally position the reference after specific text using after_text. Note: [^N] markers in read_file output are display-only and not part of the editable text used by replace_text. Surface: revisionable + package-mutation — the footnote reference and note text are tracked (w:ins), while footnote-part creation and registration are recorded in the save report non-revision change manifest.
| Name | Type | Req | Description |
|---|---|---|---|
| after_text | string | — | Text after which to insert the footnote reference. If omitted, appends at end of paragraph. |
| file_path | string | yes | Path to the DOCX or ODT file. |
| target_paragraph_id | string | yes | Paragraph ID to anchor the footnote to. |
| text | string | yes | Footnote body text. |
No output schema declared.
No examples provided.
batch_edit ~147
Single-agent front door for applying multiple edit steps (replace_text, insert_paragraph) to a document in one call. Validates all steps first, rejects conflicts before applying anything, then executes valid steps sequentially. Accepts inline steps or a plan_file_path JSON array. Surface: revisionable — every applied step emits native OOXML tracked changes.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
| plan_file_path | string | — | Path to a .json file containing an array of edit steps. Mutually exclusive with steps. |
| steps | array | — | JSON array of edit steps. Each step needs step_id, operation, and operation-specific fields. |
No output schema declared.
No examples provided.
clear_formatting ~160
Clear specific run-level formatting (bold, italic, underline, highlight, color, font) from paragraphs. Surface: revisionable — clearing emits a native run-property-change revision (w:rPrChange).
| Name | Type | Req | Description |
|---|---|---|---|
| clear_bold | boolean | — | Remove bold formatting. |
| clear_color | boolean | — | Remove font color. |
| clear_font | boolean | — | Remove font family and size. |
| clear_highlight | boolean | — | Remove highlight formatting. |
| clear_italic | boolean | — | Remove italic formatting. |
| clear_underline | boolean | — | Remove underline formatting. |
| file_path | string | yes | Path to the DOCX or ODT file. |
| paragraph_ids | array | — | Paragraph IDs to clear formatting from. If omitted, clears from all paragraphs. |
No output schema declared.
No examples provided.
close_file ~98
Close an open file session, or close all sessions with explicit confirmation. Supports DOCX, ODT, and Google Docs.
| Name | Type | Req | Description |
|---|---|---|---|
| clear_all | boolean | — | — |
| confirm | boolean | — | — |
| file_path | string | — | Path to the DOCX or ODT file. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
No output schema declared.
No examples provided.
compare_documents ~284
Compare two documents and produce a tracked-changes output document. Provide original_file_path + revised_file_path for standalone comparison, or file_path to compare session edits against the original. DOCX and ODF (.odt) support both modes. DOCX stats count insertions/deletions as contiguous ranges, expose atom totals as insertedAtoms/deletedAtoms, and report formatChanges separately from modifiedParagraphs. ODF compares at inline granularity (a modified paragraph is marked up in place — only the changed spans are struck or inserted).
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | — | Author name for track changes. Default: 'Comparison' (DOCX) or the configured AI author (ODF). |
| compare_moves | boolean | — | Detect moved content (DOCX only). Default: true. |
| engine | string | — | Comparison engine (DOCX only). Default: 'auto'. |
| file_path | string | — | Path to the DOCX or ODT file. |
| ignore_formatting | boolean | — | Ignore formatting differences (DOCX only). Default: false. |
| original_file_path | string | — | Path to the original DOCX or .odt file. |
| revised_file_path | string | — | Path to the revised DOCX or .odt file. |
| save_to_local_path | string | yes | Path to save the tracked-changes output (DOCX or .odt). |
No output schema declared.
No examples provided.
convert_to_odt ~208
Convert a DOCX document to OpenDocument Text (.odt) using the native model-to-model converter (no LibreOffice involved). Writes the .odt (default: source path with the .odt extension), validates ODF packaging safety before writing, and returns the output path plus a `lossiness` summary itemizing every downgraded construct. Conversion is semantic and intentionally lossy: text, headings, bold/italic/underline, hyperlinks, lists, and tables are mapped; richer styling, tracked changes, comments, and headers/footers are not. DOCX in, ODT out — Google Docs and .odt inputs are not supported.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_overwrite | boolean | — | Overwrite output_path if it already exists. Default: false. |
| file_path | string | — | Path to the DOCX or ODT file. |
| output_path | string | — | Where to write the .odt. Defaults to the source path with the .odt extension. |
No output schema declared.
No examples provided.
delete_comment ~95
Delete a comment and all its threaded replies from the document. Cascade-deletes all descendants. Surface: revisionable + package-mutation — the body-story comment reference removal is tracked (w:del), while comment/reply text cleanup is recorded in the save report non-revision change manifest.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_id | number | yes | Comment ID to delete. |
| file_path | string | yes | Path to the DOCX or ODT file. |
No output schema declared.
No examples provided.
delete_footnote ~75
Delete a footnote and its reference from the document. Surface: revisionable — the reference and note text are removed as native OOXML tracked deletions (w:del).
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
| note_id | number | yes | Footnote ID to delete. |
No output schema declared.
No examples provided.
export ~227
Export a document to a portable rendering (Markdown, semantic HTML, or plain text). Writes an output file (default: source path with the format extension, e.g. .md, .html, or .txt) and returns its path, byte count, and the rendered content (under `content`). Intentionally lossy (no round-trip); HTML is the semantic tier, not pixel-faithful. DOCX only — Google Docs is not supported.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_overwrite | boolean | — | Overwrite output_path if it already exists. Default: false. |
| file_path | string | — | Path to the DOCX or ODT file. |
| format | string | — | Output format: 'markdown' (default, writes .md), 'html' (writes .html), or 'plaintext' (writes .txt). |
| include_markdown | boolean | — | Include the rendered content (under `content`) in the response. Default: true; set false for large documents. |
| output_path | string | — | Where to write the rendering. Defaults to the source path with the format extension. |
No output schema declared.
No examples provided.
extract_revisions ~100
Extract tracked changes as structured JSON with before/after text per paragraph, revision details, and comments. Supports pagination via offset and limit. Read-only - does not modify the document.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
| limit | number | — | Max entries per page (1-500). Default: 50. |
| offset | number | — | 0-based offset for pagination. Default: 0. |
No output schema declared.
No examples provided.
format_layout ~140
Apply layout controls (paragraph spacing, table row height, cell padding). Google Docs supports paragraph spacing only. Surface: revisionable — DOCX geometry edits emit native property-change revisions (w:pPrChange/w:trPrChange/w:tcPrChange).
| Name | Type | Req | Description |
|---|---|---|---|
| cell_padding | object | — | — |
| file_path | string | — | Path to the DOCX or ODT file. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
| paragraph_spacing | object | — | — |
| row_height | object | — | — |
| strict | boolean | — | — |
No output schema declared.
No examples provided.
get_comments ~99
Get all comments from the document with IDs, authors, dates, text, and anchored paragraph IDs. Range-anchored DOCX comments also expose optional end_paragraph_id, start_run_index, start_char_offset, end_run_index, and end_char_offset fields describing the covered span. Includes threaded replies (DOCX). Supports DOCX and ODT. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
No output schema declared.
No examples provided.
get_document_outline ~227
Get a compact structural map of a document's headings (DOCX only). Each entry is `{paragraph_id, text, level, source}`. Deterministic sources are `word_style`, `list_metadata`, and `outline_level`, selected in that precedence order and included by default. Heuristic sources are `run_in_header`, `title_with_period`, `title_with_colon`, `title_caps_centered`, and `title_bare`; set include_heuristic_headings=true to include them. JSON preserves levels 1-9; Markdown clamps visual ATX depth to 6. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | — | Path to the DOCX file. |
| format | string | — | Output format: 'json' (default, structured outline array) or 'markdown' (indented ATX outline under `content`). |
| include_heuristic_headings | boolean | — | When true, also include heuristic title/run-in/centered-caps headings alongside deterministic word_style, list_metadata, and outline_level headings. Default: false (all deterministic sources only). |
No output schema declared.
No examples provided.
get_file_status ~85
Get file/session metadata including edit count, normalization stats, and cache info. Supports DOCX, ODT, and Google Docs.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | — | Path to the DOCX or ODT file. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
No output schema declared.
No examples provided.
get_footnotes ~50
Get all footnotes from the document with IDs, display numbers, text, and anchored paragraph IDs. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
No output schema declared.
No examples provided.
grep ~228
Search paragraphs with regex. Use file_path for session-based search, file_paths for stateless multi-file search, or google_doc_id for Google Docs. ODT supported via file_path (single-file) only.
| Name | Type | Req | Description |
|---|---|---|---|
| case_sensitive | boolean | — | — |
| context_chars | number | — | — |
| dedupe_by_paragraph | boolean | — | — |
| file_path | string | — | Path to the DOCX or ODT file. |
| file_paths | array | — | Multiple file paths for stateless multi-file search. No session created. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
| include_context | boolean | — | When false, skip document view context (list labels, headers) for faster results. Default: true. |
| max_results | number | — | — |
| pattern | string | — | — |
| patterns | array | — | — |
| search_xml | boolean | — | When true, search raw XML (word/document.xml) instead of paragraph text. |
| whole_word | boolean | — | — |
No output schema declared.
No examples provided.
has_tracked_changes ~53
Check whether the document body contains tracked-change markers (insertions, deletions, moves, and property-change records). Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
No output schema declared.
No examples provided.
insert_paragraph ~282
Insert a paragraph before/after an anchor paragraph by paragraph id. Supports DOCX, ODT, and Google Docs. (ODT paragraph ids are positional and shift after insertion — re-read before further edits.) Surface: revisionable — DOCX insertions emit native OOXML tracked changes.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | — | Path to the DOCX or ODT file. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
| instruction | string | yes | — |
| new_string | string | yes | — |
| position | string | — | — |
| positional_anchor_node_id | string | yes | Anchor paragraph. Accepts a safe-docx `_bk_*` id, or (DOCX only) any other bookmark name — e.g. a host application's own stable paragraph bookmark — whose w:id-paired range covers exactly this one pa… |
| style_source_id | string | — | Paragraph anchor to clone formatting (pPr and template run) from instead of the positional anchor. Accepts a `_bk_*` ID, or (DOCX only) any other bookmark name whose w:id-paired range covers exactly… |
No output schema declared.
No examples provided.
read_file ~860
Read document content (DOCX, ODT, or Google Doc). Output is token-limited (~14k tokens) by default with pagination metadata (has_more, next_offset). Use offset/limit to paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| comment_rendering | string | — | How to render comments in read_file output. Use "paragraph_notes" (default) for paragraph-local comment threads, "inline_markers" to add `[cm-start:N]`/`[cm-end:N]` milestones in TOON output (combine… |
| file_path | string | — | Path to the DOCX or ODT file. |
| format | string | — | — |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
| include_fingerprint | boolean | — | When true and format="json", include a portable content_fingerprint ("sha256:nfkc:<32hex>") on each paragraph. Read-only metadata derived from the paragraph's normalized visible text; NOT an edit anc… |
| include_fingerprint_ordinal | boolean | — | When true together with include_fingerprint and format="json", add duplicate-disambiguation metadata to each paragraph: `content_fingerprint_ordinal` (1-based document-order position among paragraphs… |
| include_footnotes | boolean | — | Single-call body + footnotes retrieval. When true and format="json", the response gains a document-wide TOP-LEVEL `footnotes` array — each entry is {id, display_number, ref_paragraph_ids (an ARRAY of… |
| limit | number | — | Max paragraphs to return. When omitted, output is token-limited to ~14k tokens with pagination. |
| node_ids | array | — | Paragraph selectors. Each accepts a safe-docx `_bk_*` id, or (DOCX only) any other bookmark name — e.g. a host application's own stable paragraph bookmark — whose w:id-paired range covers exactly one… |
| offset | number | — | 1-based paragraph offset for pagination. Negative values count from end. |
| show_formatting | boolean | — | When true (default), shows inline formatting tags (<b>, <i>, <u>, <highlighting>, <a>). When false, emits plain text with no inline tags. |
No output schema declared.
No examples provided.
reject_ai_edits ~211
Selectively reject tracked changes by revision id or author in the in-memory session (restoring their pre-edit state), leaving all other revisions byte-untouched. This does not write file_path; call save to persist the mutation. Symmetric to accept_ai_edits: provide revision_ids or author, sweeps document.xml and supported side-story parts, and hard-errors on an ambiguous overlap (code AMBIGUOUS_REVISION_OVERLAP with a structured `overlaps` list) unless normalize_first is set.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | — | Reject every revision authored by this w:author. Convenience alternative to revision_ids. |
| file_path | string | yes | Path to the DOCX or ODT file. |
| normalize_first | boolean | — | Attempt best-effort resolution on an ambiguous (overlapping) revision graph instead of hard-erroring. No byte-identical guarantee. Default: false. |
| revision_ids | array | — | w:id values of the revisions to reject. Mutually preferred over author. |
No output schema declared.
No examples provided.
replace_text ~231
Replace text in a paragraph by provider paragraph id, preserving formatting where supported. Supports DOCX, ODT, and Google Docs. Surface: revisionable — DOCX edits emit native OOXML tracked changes (w:ins/w:del/w:rPrChange).
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | — | Path to the DOCX or ODT file. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
| instruction | string | yes | — |
| new_string | string | yes | — |
| normalize_first | boolean | — | Merge format-identical adjacent runs before searching. Useful when text is fragmented across runs. |
| old_string | string | yes | — |
| target_paragraph_id | string | yes | Paragraph anchor. Accepts a safe-docx `_bk_*` id, or (DOCX only) any other bookmark name — e.g. a host application's own stable paragraph bookmark — whose w:id-paired range covers exactly this one pa… |
No output schema declared.
No examples provided.
save ~475
Persist the current in-memory document session. For DOCX: saves clean and/or tracked changes output. For ODT: saves an .odt package. For Google Docs: checkpoint (default) returns revisionId, or snapshot exports as DOCX. Surface: revisionable — the save report lists both the AI revisions applied and a non-revision change manifest of any package-level mutations (comment/footnote side parts, relationships) that have no tracked-change wrapper.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_discard_preserved_revisions | boolean | — | Explicitly allow a clean artifact to auto-accept remaining revisions by the session AI author after accept_ai_edits/reject_ai_edits selectively left revisions unresolved. Default: false. |
| allow_overwrite | boolean | — | — |
| clean_bookmarks | boolean | — | Controls removal of internal bookmarks from DOCX output. Behavior is intentionally three-way: OMIT (recommended for tracked/persistence saves) preserves the document's own bookmarks — only safe-docx… |
| fail_on_rebuild_fallback | boolean | — | Deprecated and ignored (#126). The default save no longer runs the comparison reconstruction engine, so there is no rebuild fallback to guard against; accepted for backward compatibility only. |
| file_path | string | — | Path to the DOCX or ODT file. |
| google_doc_id | string | — | Google Doc ID or URL (alternative to file_path). Extract from URL: docs.google.com/document/d/{ID}/edit |
| save_format | string | — | — |
| save_to_local_path | string | yes | — |
| tracked_changes_author | string | — | — |
| tracked_changes_engine | string | — | Deprecated and ignored (#126). The redline is now the session's write-time tracked markup, serialized directly — there is no comparison engine to select. Use the compare_documents tool for comparison… |
| tracked_save_to_local_path | string | — | — |
No output schema declared.
No examples provided.
update_footnote ~91
Update the text content of an existing footnote. Surface: revisionable — note-text changes emit native OOXML tracked changes (w:ins/w:del) inside the footnote body.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the DOCX or ODT file. |
| new_text | string | yes | New footnote body text. |
| note_id | number | yes | Footnote ID to update. |
No output schema declared.
No examples provided.