@tiwater/office-mcp 0.17.34 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/office/README.md CHANGED
@@ -40,9 +40,9 @@ Structural worksheet row deletion is exposed as `xlsx_delete_rows`. Each change
40
40
  contains only `sheet`, `startRow`, and `count`; unsupported dependent workbook
41
41
  structures fail atomically and are reported by the provider receipt.
42
42
 
43
- DOCX mutations accept revision-bound native object references. Physical table,
44
- row, column, paragraph, run, drawing, and body indexes are not public mutation
45
- addresses.
43
+ DOCX observation and mutation use the OpenXML part URI and native object path
44
+ directly. Content edits keep unaffected addresses usable. After a structural
45
+ edit, callers re-list only the changed parent when they need its new children.
46
46
 
47
47
  Table-row copying is a distinct bulk table responsibility: the caller selects
48
48
  current source and target tables, bounded row regions, excluded source rows,
@@ -3,15 +3,7 @@
3
3
  "$id": "tiwater.office-mcp-input/docx_apply_font_policy",
4
4
  "type": "object",
5
5
  "properties": {
6
- "targetDocument": {
7
- "type": "object",
8
- "properties": {
9
- "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
10
- "revision": { "type": "string", "pattern": "^docx-rev-v1-[0-9a-f]{64}$" }
11
- },
12
- "required": ["input", "revision"],
13
- "additionalProperties": false
14
- },
6
+ "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
15
7
  "policy": {
16
8
  "type": "string",
17
9
  "minLength": 1,
@@ -26,6 +18,6 @@
26
18
  "x-tiwater-file-effect": false
27
19
  }
28
20
  },
29
- "required": ["targetDocument", "policy", "output", "receiptOutput"],
21
+ "required": ["input", "policy", "output", "receiptOutput"],
30
22
  "additionalProperties": false
31
23
  }
@@ -3,15 +3,7 @@
3
3
  "$id": "tiwater.office-mcp-input/docx_apply_toc_style_policy",
4
4
  "type": "object",
5
5
  "properties": {
6
- "targetDocument": {
7
- "type": "object",
8
- "properties": {
9
- "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
10
- "revision": { "type": "string", "pattern": "^docx-rev-v1-[0-9a-f]{64}$" }
11
- },
12
- "required": ["input", "revision"],
13
- "additionalProperties": false
14
- },
6
+ "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
15
7
  "italic": { "type": "boolean" },
16
8
  "indentCharactersPerLevel": { "type": "integer", "minimum": 0, "maximum": 21474836 },
17
9
  "output": { "type": "string", "minLength": 1, "x-tiwater-file-role": "write" },
@@ -22,6 +14,6 @@
22
14
  "x-tiwater-file-effect": false
23
15
  }
24
16
  },
25
- "required": ["targetDocument", "italic", "indentCharactersPerLevel", "output", "receiptOutput"],
17
+ "required": ["input", "italic", "indentCharactersPerLevel", "output", "receiptOutput"],
26
18
  "additionalProperties": false
27
19
  }
@@ -1,70 +1,106 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "tiwater.office-mcp-input/docx_copy_content",
4
3
  "type": "object",
5
4
  "properties": {
6
- "targetDocument": {
7
- "type": "object",
8
- "properties": {
9
- "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
10
- "revision": { "type": "string", "pattern": "^docx-rev-v1-[0-9a-f]{64}$" }
11
- },
12
- "required": ["input", "revision"],
13
- "additionalProperties": false
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
14
9
  },
15
10
  "changes": {
16
- "type": "array",
17
11
  "minItems": 1,
12
+ "type": "array",
18
13
  "items": {
19
14
  "type": "object",
20
15
  "properties": {
21
- "targetRef": {
22
- "type": "string",
23
- "pattern": "^dox1_[0-9a-f]{64}$",
24
- "description": "Target plain-text paragraph or cell ref whose content is replaced while its container formatting is retained. Paragraph bookmarks are preserved; targets containing fields, drawings, nested tables, controls, links, or other non-text content are rejected."
25
- },
26
- "sourceDocument": {
16
+ "target": {
27
17
  "type": "object",
28
18
  "properties": {
29
- "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
30
- "revision": { "type": "string", "pattern": "^docx-rev-v1-[0-9a-f]{64}$" }
19
+ "part": {
20
+ "type": "string",
21
+ "minLength": 1
22
+ },
23
+ "path": {
24
+ "type": "string",
25
+ "pattern": "^\\/"
26
+ }
31
27
  },
32
- "required": ["input", "revision"],
28
+ "required": [
29
+ "part",
30
+ "path"
31
+ ],
33
32
  "additionalProperties": false
34
33
  },
34
+ "sourceInput": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "x-tiwater-file-role": "read"
38
+ },
35
39
  "sourceSelections": {
36
- "type": "array",
37
40
  "minItems": 1,
38
- "description": "Ordered source content copied into the target paragraph or cell. Select a whole observed object by ref alone, or select an exact substring by adding range to an observed run or text ref. Multiple selections are copied in this array order.",
41
+ "type": "array",
39
42
  "items": {
40
43
  "type": "object",
41
44
  "properties": {
42
- "ref": {
43
- "type": "string",
44
- "pattern": "^dox1_[0-9a-f]{64}$",
45
- "description": "Observed source object ref. When range is present this must be a run or text ref, not a paragraph, cell, row, or table ref."
45
+ "address": {
46
+ "type": "object",
47
+ "properties": {
48
+ "part": {
49
+ "type": "string",
50
+ "minLength": 1
51
+ },
52
+ "path": {
53
+ "type": "string",
54
+ "pattern": "^\\/"
55
+ }
56
+ },
57
+ "required": [
58
+ "part",
59
+ "path"
60
+ ],
61
+ "additionalProperties": false
46
62
  },
47
63
  "range": {
48
64
  "type": "object",
49
- "description": "Zero-based substring within the selected run or text object. Omit range to copy the whole selected object.",
50
65
  "properties": {
51
- "start": { "type": "integer", "minimum": 0, "maximum": 2147483647 },
52
- "length": { "type": "integer", "exclusiveMinimum": 0, "maximum": 2147483647 }
66
+ "start": {
67
+ "type": "integer",
68
+ "minimum": 0,
69
+ "maximum": 9007199254740991
70
+ },
71
+ "length": {
72
+ "type": "integer",
73
+ "exclusiveMinimum": 0,
74
+ "maximum": 9007199254740991
75
+ }
53
76
  },
54
- "required": ["start", "length"],
77
+ "required": [
78
+ "start",
79
+ "length"
80
+ ],
55
81
  "additionalProperties": false
56
82
  }
57
83
  },
58
- "required": ["ref"],
84
+ "required": [
85
+ "address"
86
+ ],
59
87
  "additionalProperties": false
60
88
  }
61
89
  }
62
90
  },
63
- "required": ["targetRef", "sourceDocument", "sourceSelections"],
91
+ "required": [
92
+ "target",
93
+ "sourceInput",
94
+ "sourceSelections"
95
+ ],
64
96
  "additionalProperties": false
65
97
  }
66
98
  },
67
- "output": { "type": "string", "minLength": 1, "x-tiwater-file-role": "write" },
99
+ "output": {
100
+ "type": "string",
101
+ "minLength": 1,
102
+ "x-tiwater-file-role": "write"
103
+ },
68
104
  "receiptOutput": {
69
105
  "type": "string",
70
106
  "minLength": 1,
@@ -72,6 +108,12 @@
72
108
  "x-tiwater-file-effect": false
73
109
  }
74
110
  },
75
- "required": ["targetDocument", "changes", "output", "receiptOutput"],
76
- "additionalProperties": false
111
+ "required": [
112
+ "input",
113
+ "changes",
114
+ "output",
115
+ "receiptOutput"
116
+ ],
117
+ "additionalProperties": false,
118
+ "$id": "tiwater.office-mcp-input/docx_copy_content"
77
119
  }
@@ -1,65 +1,80 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "tiwater.office-mcp-input/docx_copy_object",
4
3
  "type": "object",
5
4
  "properties": {
6
- "targetDocument": {
7
- "type": "object",
8
- "properties": {
9
- "input": {
10
- "type": "string",
11
- "minLength": 1,
12
- "x-tiwater-file-role": "read"
13
- },
14
- "revision": {
15
- "type": "string",
16
- "minLength": 1,
17
- "description": "Exact revision id returned by the current observation."
18
- }
19
- },
20
- "required": ["input", "revision"],
21
- "additionalProperties": false
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
22
9
  },
23
10
  "changes": {
24
- "type": "array",
25
11
  "minItems": 1,
12
+ "type": "array",
26
13
  "items": {
27
14
  "type": "object",
28
15
  "properties": {
29
- "sourceDocument": {
16
+ "sourceInput": {
17
+ "type": "string",
18
+ "minLength": 1,
19
+ "x-tiwater-file-role": "read"
20
+ },
21
+ "sources": {
22
+ "minItems": 1,
23
+ "type": "array",
24
+ "items": {
25
+ "type": "object",
26
+ "properties": {
27
+ "part": {
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "path": {
32
+ "type": "string",
33
+ "pattern": "^\\/"
34
+ }
35
+ },
36
+ "required": [
37
+ "part",
38
+ "path"
39
+ ],
40
+ "additionalProperties": false
41
+ }
42
+ },
43
+ "targetParent": {
30
44
  "type": "object",
31
45
  "properties": {
32
- "input": {
46
+ "part": {
33
47
  "type": "string",
34
- "minLength": 1,
35
- "x-tiwater-file-role": "read"
48
+ "minLength": 1
36
49
  },
37
- "revision": {
50
+ "path": {
38
51
  "type": "string",
39
- "minLength": 1,
40
- "description": "Exact revision id returned by the source observation."
52
+ "pattern": "^\\/"
41
53
  }
42
54
  },
43
- "required": ["input", "revision"],
55
+ "required": [
56
+ "part",
57
+ "path"
58
+ ],
44
59
  "additionalProperties": false
45
60
  },
46
- "sourceRefs": {
47
- "type": "array",
48
- "minItems": 1,
49
- "items": {
50
- "type": "string",
51
- "pattern": "^dox1_[0-9a-f]{64}$"
52
- }
53
- },
54
- "targetParentRef": {
55
- "type": "string",
56
- "pattern": "^dox1_[0-9a-f]{64}$",
57
- "description": "Revision-bound parent ref returned as parentRef on its direct children."
58
- },
59
- "beforeRef": {
60
- "type": "string",
61
- "pattern": "^dox1_[0-9a-f]{64}$",
62
- "description": "Optional direct child whose returned parentRef equals targetParentRef."
61
+ "before": {
62
+ "type": "object",
63
+ "properties": {
64
+ "part": {
65
+ "type": "string",
66
+ "minLength": 1
67
+ },
68
+ "path": {
69
+ "type": "string",
70
+ "pattern": "^\\/"
71
+ }
72
+ },
73
+ "required": [
74
+ "part",
75
+ "path"
76
+ ],
77
+ "additionalProperties": false
63
78
  },
64
79
  "repeat": {
65
80
  "type": "integer",
@@ -67,24 +82,32 @@
67
82
  "maximum": 1000
68
83
  }
69
84
  },
70
- "required": ["sourceDocument", "sourceRefs", "targetParentRef"],
85
+ "required": [
86
+ "sourceInput",
87
+ "sources",
88
+ "targetParent"
89
+ ],
71
90
  "additionalProperties": false
72
91
  }
73
92
  },
74
93
  "output": {
75
94
  "type": "string",
76
95
  "minLength": 1,
77
- "x-tiwater-file-role": "write",
78
- "description": "New DOCX output path; an existing path is rejected."
96
+ "x-tiwater-file-role": "write"
79
97
  },
80
98
  "receiptOutput": {
81
99
  "type": "string",
82
100
  "minLength": 1,
83
101
  "x-tiwater-file-role": "write",
84
- "x-tiwater-file-effect": false,
85
- "description": "New JSON receipt path; an existing path is rejected."
102
+ "x-tiwater-file-effect": false
86
103
  }
87
104
  },
88
- "required": ["targetDocument", "changes", "output", "receiptOutput"],
89
- "additionalProperties": false
105
+ "required": [
106
+ "input",
107
+ "changes",
108
+ "output",
109
+ "receiptOutput"
110
+ ],
111
+ "additionalProperties": false,
112
+ "$id": "tiwater.office-mcp-input/docx_copy_object"
90
113
  }
@@ -1,58 +1,65 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "tiwater.office-mcp-input/docx_delete_object",
4
3
  "type": "object",
5
4
  "properties": {
6
- "targetDocument": {
7
- "type": "object",
8
- "properties": {
9
- "input": {
10
- "type": "string",
11
- "minLength": 1,
12
- "x-tiwater-file-role": "read"
13
- },
14
- "revision": {
15
- "type": "string",
16
- "minLength": 1,
17
- "description": "Exact revision id returned by the current observation."
18
- }
19
- },
20
- "required": ["input", "revision"],
21
- "additionalProperties": false
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
22
9
  },
23
10
  "changes": {
24
- "type": "array",
25
11
  "minItems": 1,
12
+ "type": "array",
26
13
  "items": {
27
14
  "type": "object",
28
15
  "properties": {
29
- "refs": {
30
- "type": "array",
16
+ "addresses": {
31
17
  "minItems": 1,
18
+ "type": "array",
32
19
  "items": {
33
- "type": "string",
34
- "pattern": "^dox1_[0-9a-f]{64}$"
20
+ "type": "object",
21
+ "properties": {
22
+ "part": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "path": {
27
+ "type": "string",
28
+ "pattern": "^\\/"
29
+ }
30
+ },
31
+ "required": [
32
+ "part",
33
+ "path"
34
+ ],
35
+ "additionalProperties": false
35
36
  }
36
37
  }
37
38
  },
38
- "required": ["refs"],
39
+ "required": [
40
+ "addresses"
41
+ ],
39
42
  "additionalProperties": false
40
43
  }
41
44
  },
42
45
  "output": {
43
46
  "type": "string",
44
47
  "minLength": 1,
45
- "x-tiwater-file-role": "write",
46
- "description": "New DOCX output path; an existing path is rejected."
48
+ "x-tiwater-file-role": "write"
47
49
  },
48
50
  "receiptOutput": {
49
51
  "type": "string",
50
52
  "minLength": 1,
51
53
  "x-tiwater-file-role": "write",
52
- "x-tiwater-file-effect": false,
53
- "description": "New JSON receipt path; an existing path is rejected."
54
+ "x-tiwater-file-effect": false
54
55
  }
55
56
  },
56
- "required": ["targetDocument", "changes", "output", "receiptOutput"],
57
- "additionalProperties": false
57
+ "required": [
58
+ "input",
59
+ "changes",
60
+ "output",
61
+ "receiptOutput"
62
+ ],
63
+ "additionalProperties": false,
64
+ "$id": "tiwater.office-mcp-input/docx_delete_object"
58
65
  }
@@ -8,7 +8,7 @@
8
8
  "x-tiwater-file-role": "read"
9
9
  },
10
10
  "kinds": {
11
- "description": "Open XML object kinds to list in native document order. Request only the kinds needed by the current local traversal, then follow returned refs through parentRef-scoped child pages. Text previews describe already located objects; they do not identify a document or select a source. Returned parentRef is the valid targetParentRef for inserting beside that object.",
11
+ "minItems": 1,
12
12
  "type": "array",
13
13
  "items": {
14
14
  "type": "string",
@@ -23,33 +23,47 @@
23
23
  "drawing"
24
24
  ]
25
25
  },
26
- "minItems": 1
26
+ "description": "OpenXML object kinds to list in document order."
27
27
  },
28
28
  "scope": {
29
- "description": "Exact story-part URI such as /word/document.xml. This is not a table nativePath or ancestor filter.",
30
29
  "type": "string",
31
- "minLength": 1
30
+ "minLength": 1,
31
+ "description": "Optional OpenXML part URI."
32
32
  },
33
- "parentRef": {
34
- "description": "Optional revision-bound parent object ref. Returns only its nearest published child objects; when omitted, returns nearest children of each selected story part. This is never recursive descendant search.",
35
- "type": "string",
36
- "pattern": "^dox1_[0-9a-f]{64}$"
33
+ "parent": {
34
+ "type": "object",
35
+ "properties": {
36
+ "part": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "path": {
41
+ "type": "string",
42
+ "pattern": "^\\/"
43
+ }
44
+ },
45
+ "required": [
46
+ "part",
47
+ "path"
48
+ ],
49
+ "additionalProperties": false,
50
+ "description": "Optional parent OpenXML address. Only nearest published children are returned."
37
51
  },
38
52
  "limit": {
39
- "description": "Maximum identities in this small page. Follow continuation in native order when the same structural inventory is required, then use returned refs to descend into the selected object.",
40
53
  "default": 50,
41
54
  "type": "integer",
42
55
  "minimum": 1,
43
56
  "maximum": 100
44
57
  },
45
- "continuation": {
46
- "type": "string",
47
- "minLength": 1
58
+ "offset": {
59
+ "default": 0,
60
+ "type": "integer",
61
+ "minimum": 0,
62
+ "maximum": 9007199254740991
48
63
  },
49
64
  "output": {
50
65
  "type": "string",
51
66
  "minLength": 1,
52
- "description": "Absolute path for a new JSON artifact containing this exact object page for later reuse.",
53
67
  "x-tiwater-file-role": "write"
54
68
  }
55
69
  },
@@ -1,36 +1,65 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "tiwater.office-mcp-input/docx_merge_cells",
4
3
  "type": "object",
5
4
  "properties": {
6
- "targetDocument": {
7
- "type": "object",
8
- "properties": {
9
- "input": { "type": "string", "minLength": 1, "x-tiwater-file-role": "read" },
10
- "revision": { "type": "string", "minLength": 1 }
11
- },
12
- "required": ["input", "revision"],
13
- "additionalProperties": false
5
+ "input": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "x-tiwater-file-role": "read"
14
9
  },
15
10
  "changes": {
16
- "type": "array",
17
11
  "minItems": 1,
12
+ "type": "array",
18
13
  "items": {
19
14
  "type": "object",
20
15
  "properties": {
21
- "cellRefs": {
22
- "type": "array",
16
+ "cells": {
23
17
  "minItems": 2,
24
- "items": { "type": "string", "pattern": "^dox1_[0-9a-f]{64}$" }
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "part": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "path": {
27
+ "type": "string",
28
+ "pattern": "^\\/"
29
+ }
30
+ },
31
+ "required": [
32
+ "part",
33
+ "path"
34
+ ],
35
+ "additionalProperties": false
36
+ }
25
37
  }
26
38
  },
27
- "required": ["cellRefs"],
39
+ "required": [
40
+ "cells"
41
+ ],
28
42
  "additionalProperties": false
29
43
  }
30
44
  },
31
- "output": { "type": "string", "minLength": 1, "x-tiwater-file-role": "write" },
32
- "receiptOutput": { "type": "string", "minLength": 1, "x-tiwater-file-role": "write", "x-tiwater-file-effect": false }
45
+ "output": {
46
+ "type": "string",
47
+ "minLength": 1,
48
+ "x-tiwater-file-role": "write"
49
+ },
50
+ "receiptOutput": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "x-tiwater-file-role": "write",
54
+ "x-tiwater-file-effect": false
55
+ }
33
56
  },
34
- "required": ["targetDocument", "changes", "output", "receiptOutput"],
35
- "additionalProperties": false
57
+ "required": [
58
+ "input",
59
+ "changes",
60
+ "output",
61
+ "receiptOutput"
62
+ ],
63
+ "additionalProperties": false,
64
+ "$id": "tiwater.office-mcp-input/docx_merge_cells"
36
65
  }