Office MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Office MCP ServerCreate an Excel file with sales data and a bar chart"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Office MCP Server
MCP server for creating and editing Word, Excel, and PowerPoint documents offline. Pure Python — no AppleScript, no COM, works on any platform.
Features
Word (.docx): create, read, add headings, paragraphs, tables, lists
Excel (.xlsx): create, read, write data, formulas, charts, cell formatting
PowerPoint (.pptx): create, read, add slides, text boxes
Related MCP server: docx-mcp
Install
pip install office-mcp-serverOr run directly with uvx:
uvx office-mcp-serverConfiguration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"office": {
"command": "uvx",
"args": ["office-mcp-server"]
}
}
}OpenCode / Claude Code
{
"mcpServers": {
"office": {
"command": "python",
"args": ["-m", "office_mcp_server.server"],
"cwd": "/path/to/office-mcp-server"
}
}
}Local development
git clone https://github.com/YOUR_USERNAME/office-mcp-server.git
cd office-mcp-server
pip install -e .Tools
Tool | Description |
| Create .docx file |
| Read .docx content |
| Add heading (level 1-6) |
| Add formatted paragraph |
| Add table with headers |
| Add bullet/numbered list |
| Create .xlsx file |
| Read .xlsx data |
| Write data to cells |
| Add formula (e.g., |
| Create bar/line/pie chart |
| Bold, color, alignment, border |
| Create .pptx file |
| Read slide content |
| Add slide with layout |
| Add text box to slide |
Example Usage
Ask your AI assistant:
"Create a Word document at ~/Desktop/report.docx with a title 'Q4 Report', add a heading 'Revenue', and a paragraph with the text 'Revenue increased by 25%'"
"Create an Excel file at ~/Desktop/data.xlsx, write headers Name/Score, add data rows, and create a bar chart"
"Create a PowerPoint at ~/Desktop/slides.pptx with title 'Pitch Deck', add 3 slides with content"
License
MIT
Available Tools
16 toolsadd_excel_chartA
Create a chart in an Excel sheet.
Args: path: Path to the .xlsx file sheet_name: Sheet name chart_type: bar, line, or pie data_range: Cell range (e.g., 'A1:B10') title: Chart title position: Cell to place chart (e.g., 'E5')
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No | ||
| position | No | E5 | |
| chart_type | Yes | ||
| data_range | Yes | ||
| sheet_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It says 'Create a chart', implying file modification, but does not disclose side effects (e.g., overwriting existing charts), return values, error handling, or permission requirements. Behavioral transparency is low for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a parameter list, with no unnecessary words. It front-loads the purpose and organizes the arguments cleanly, making it efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters and no output schema, the description covers the essential parameter meanings but omits behavioral context such as return value, file modification semantics, and error conditions. It is adequate for basic invocation but lacks depth for an agent to anticipate consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides brief explanations and examples for all six parameters (e.g., chart_type: bar, line, or pie; data_range: 'A1:B10'). This adds meaningful value over the bare schema titles, though it could be more explicit about allowed values or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('a chart in an Excel sheet'), clearly distinguishing it from sibling tools like add_excel_formula or write_excel_data. The action and object are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (adding a chart), but does not explicitly state when to use this tool versus alternatives, nor provide prerequisites (e.g., workbook must exist) or exclusions. It is adequate but leaves the when-to-use to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_excel_formulaA
Add a formula to an Excel cell.
Args: path: Path to the .xlsx file sheet_name: Sheet name cell: Cell reference (e.g., 'A4') formula: Excel formula (e.g., '=SUM(A1:A3)')
| Name | Required | Description | Default |
|---|---|---|---|
| cell | Yes | ||
| path | Yes | ||
| formula | Yes | ||
| sheet_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the action but does not disclose whether the file is modified in place, whether an existing cell value is overwritten, whether the formula is evaluated, or what happens if the sheet or cell is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and the parameter list is clean and scannable. Every sentence earns its place without redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully documents the required parameters and gives examples, so an agent can construct a valid call. However, with no annotations and no output schema, it omits important behavioral details such as return values, side effects, and error/overwrite behavior, leaving it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides a meaningful one-line explanation for each of the four parameters and includes concrete examples for 'cell' and 'formula.' This gives the agent substantially more semantic information than the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Add a formula to an Excel cell.' This clearly identifies what the tool does and distinguishes it from siblings like add_excel_chart or write_excel_data based on the object being added.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the tool's purpose: use this when a formula needs to be inserted into an Excel cell. However, there is no explicit guidance about when to prefer this over write_excel_data or when not to use it, and no alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_presentation_slideB
Add a slide to a PowerPoint presentation.
Args: path: Path to the .pptx file layout_index: Slide layout index (0=Title, 1=Title+Content, 6=Blank) title: Slide title content: Slide body content
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No | ||
| content | No | ||
| layout_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions the action and parameters, without stating side effects, file-modification behavior, error cases, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose, followed by a clean argument list. There is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are documented and defaults are visible, but the description omits important usage context such as whether the file must exist, how the file is affected, and what the expected outcome is. It is adequate but has clear gaps for a mutating tool with no annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively explains all four parameters, and the layout_index mapping (0=Title, 1=Title+Content, 6=Blank) is particularly useful beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add a slide to a PowerPoint presentation', which is a clear verb and resource. It does not explicitly differentiate from the sibling add_presentation_text, but the slide-level scope is recognizable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like create_presentation or add_presentation_text. It also does not state prerequisites such as whether the .pptx file must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_presentation_textA
Add a text box to a PowerPoint slide.
Args: path: Path to the .pptx file slide_index: Slide index (0-based) text: Text content left: Left position in inches top: Top position in inches width: Width in inches height: Height in inches font_size: Font size in points bold: Bold text alignment: left, center, right
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| bold | No | ||
| left | No | ||
| path | Yes | ||
| text | Yes | ||
| width | No | ||
| height | No | ||
| alignment | No | left | |
| font_size | No | ||
| slide_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It only says 'Add a text box' and lists arguments; it does not disclose that the .pptx file is modified in place, that existing slide content is preserved, or what happens when the slide index is out of range. For a mutation tool, this is a meaningful transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-sentence purpose is front-loaded, followed by a compact, scannable Args list with one entry per parameter. There is no redundant or promotional text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameter definitions are complete enough to construct a valid call, and the purpose is clear. However, missing usage context, side-effect disclosure, and ordering relative to create_presentation/add_presentation_slide make it slightly incomplete for nuanced selection and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the Args block compensates well: it gives units (inches, points), states that slide_index is 0-based, and enumerates alignment values ('left, center, right'). This adds the crucial semantic detail absent from the bare input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific action ('Add a text box') and resource ('a PowerPoint slide'), which clearly distinguishes this from sibling tools such as add_presentation_slide, create_presentation, and read_presentation. The named object leaves no ambiguity about what is being added.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for inserting text into PowerPoint slides by mentioning path and slide index, but it never states when to prefer this over alternatives or mentions prerequisites like an existing presentation. There are no explicit exclusions or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_word_headingA
Add a heading to a Word document.
Args: path: Path to the .docx file text: Heading text level: Heading level 1-6
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| text | Yes | ||
| level | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only says 'Add a heading' and lists arguments; it does not explain whether the file must already exist, whether the heading is inserted at a specific location, whether changes overwrite content, or what the tool returns. This leaves the agent without information about side effects or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-sentence purpose plus a three-line arg list. Every line adds necessary information, and there is no filler or repetition. The formatting is scannable and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no output schema and no annotations, the description is thin. It defines parameters but omits behavioral context such as whether an existing .docx is required, where the heading is added, and what the caller can expect in the response. An agent has enough to guess the call, but not enough to use it safely in all cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain all parameters, and it does: path is 'Path to the .docx file,' text is 'Heading text,' and level is 'Heading level 1-6.' This adds a useful range constraint for level that the schema does not provide. It doesn't add deeper constraints like path format or heading style, but it is sufficient for basic usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and object: 'Add a heading to a Word document.' This clearly distinguishes the tool from sibling mutation tools like add_word_paragraph, add_word_table, and add_word_list by targeting the heading resource. The argument list confirms the expected inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to choose this tool over alternatives such as add_word_paragraph or add_word_list. It only implies usage: use it when a heading is needed in a Word document. There is no 'when not to use' or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_word_listB
Add a bulleted or numbered list to a Word document.
Args: path: Path to the .docx file items: List items ordered: True for numbered list, False for bullet
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| items | Yes | ||
| ordered | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the basic mutation, adding a list, but does not say whether the list is appended to existing content, whether the file is created if missing, how errors are handled, or what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by a minimal parameter list. The only noticeable waste is the tautological 'items: List items' line, but overall the structure is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool, the essential invocation details are present, and the ordered default is communicated. However, with no annotations and no output schema, an agent is left to guess about file-existence requirements, append behavior, error semantics, and return values, making this minimally viable but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args block in the description must compensate. It gives useful terse explanations for all three parameters, especially 'ordered: True for numbered list, False for bullet.' However, 'items: List items' is essentially a tautology and no extra constraints or value formats are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Add a bulleted or numbered list to a Word document.' This clearly identifies the operation and differentiates it from sibling tools like add_word_heading, add_word_paragraph, and add_word_table without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied by the wording and by the sibling context: use this tool when you need a list in a Word document rather than a heading, paragraph, or table. However, there is no explicit guidance about prerequisites, such as whether the document must already exist, or about situations where an alternative would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_word_paragraphA
Add a paragraph to a Word document with optional formatting.
Args: path: Path to the .docx file text: Paragraph text bold: Bold text italic: Italic text font_size: Font size in points (0 = default) alignment: left, center, right, justify
| Name | Required | Description | Default |
|---|---|---|---|
| bold | No | ||
| path | Yes | ||
| text | Yes | ||
| italic | No | ||
| alignment | No | ||
| font_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it adds a paragraph, but does not mention file modification behavior, return values, error conditions, or whether the document must already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a one-sentence summary and then provides a clean, minimal argument list with no filler. Every line adds value because the schema itself lacks descriptive text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does and all parameter meanings, so it is minimally sufficient. However, with no annotations and no output schema, it omits return behavior, whether the file is modified in place, and any required preconditions such as the document already existing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by explaining all six parameters. It adds useful detail: path is to a .docx file, font_size is in points with 0 meaning default, and alignment has four explicit allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: adding a paragraph to a Word document with optional formatting. This distinguishes it from sibling tools like add_word_heading, add_word_table, and add_word_list even without explicitly naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites such as an existing document, and no exclusions. The description implies usage but provides no explicit decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_word_tableB
Add a table to a Word document.
Args: path: Path to the .docx file headers: Column headers rows: Data rows (list of lists)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| rows | Yes | ||
| headers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits itself. It states that a table is added, but it does not say whether the document must already exist, where the table is inserted, whether existing content is affected, or what happens on failure. For a mutating tool this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tight and front-loaded: one clear purpose sentence followed by a short Args list. There is no filler or repetition of unrelated details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool, the description names all required inputs and the basic action. Still, with no annotations and no output schema, it leaves practical invocation details unstated, such as whether the .docx file must already exist before calling this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the Args block carries the semantic burden. It adds minimal useful meaning: path is a .docx file, headers are column headers, rows are lists of lists. However, it does not explain expected relationships such as header/row length matching or formatting constraints, so it only partially compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Add a table to a Word document.' This clearly distinguishes the tool from siblings like add_word_heading, add_word_paragraph, and add_word_list, and there is no ambiguity about the resource being manipulated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, and it does not mention prerequisites or exclusions. An agent has to infer from the word 'table' that this is the right sibling choice, since no explicit routing or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_excel_workbookA
Create a new Excel workbook (.xlsx).
Args: path: Absolute file path for the new workbook sheet_name: Name for the first sheet
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet_name | No | Sheet1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of disclosing behavior. It states that a workbook is created, but does not disclose whether an existing file is overwritten, whether parent directories must exist, what permissions are required, or what side effects occur. This is a meaningful gap for a file-system mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main purpose, and the argument documentation is directly useful. There is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter creation tool, the description is mostly complete: it names the artifact type, the required path, and the optional sheet name. It lacks edge-case behavior like overwrite handling or return values, but the low complexity and single required parameter keep the gap relatively small.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description does compensate by explaining that path is an absolute file path and sheet_name is the name of the first sheet. However, it adds only modest meaning beyond the schema's field titles and leaves constraints such as file-name validity or sheet-name rules unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: create a new Excel workbook (.xlsx). This clearly distinguishes it from sibling tools like read_excel_workbook, write_excel_data, and create_word_document, so an agent can identify the tool's function at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when a new .xlsx workbook is needed, but it gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives like write_excel_data or read_excel_workbook, so an agent must infer routing from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_presentationB
Create a new PowerPoint presentation (.pptx).
Args: path: Absolute file path for the new presentation title: Optional title for the first slide
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It discloses that a new .pptx file is created, but does not mention what happens if the file already exists, whether directories are created, what is returned, or any side effects beyond file creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a clear one-line purpose followed by a short parameter list. It contains no filler, and each element adds useful semantic information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter creation tool, the essential call is adequately specified. However, with no annotations and no output schema, the description leaves out important contextual details such as overwrite behavior and expected return value, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It does: 'path' is clarified as an absolute file path, and 'title' is explained as an optional title for the first slide, which goes beyond the bare schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Create a new PowerPoint presentation (.pptx).' This distinguishes it from sibling tools like add_presentation_slide, add_presentation_text, and read_presentation at a basic level, though it does not explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Create a new PowerPoint presentation' implies this is the entry point before adding slides or text, and the sibling set shows Excel/Word alternatives. However, there is no explicit when-to-use, when-not-to-use, or alternative-tool guidance; the agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_word_documentA
Create a new Word document (.docx).
Args: path: Absolute file path for the new document title: Optional title heading to add
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says a new .docx is created and an optional title can be added; it does not disclose overwrite behavior, directory creation, heading level/styling, or return value. This is a thin behavioral profile for a file-creating mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: a one-sentence purpose followed by compact parameter definitions. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The two parameters are adequately covered for a simple tool, but the lack of behavioral disclosure about overwrite behavior, return value, or document structure leaves clear gaps. It is minimally viable but not fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by defining path as an 'absolute file path' and title as an 'optional title heading to add.' This adds meaning beyond the bare schema field names, even if heading-level details are omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new Word document (.docx).' The word 'new' distinguishes this from sibling tools like read_word_document and add_word_heading, which operate on existing documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives. One must infer from sibling names that add_word_* tools add content to an existing document and read_word_document reads one, but the description never states this or mentions when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
format_excel_cellsB
Apply formatting to Excel cells.
Args: path: Path to the .xlsx file sheet_name: Sheet name cell_range: Cell range (e.g., 'A1:C3') bold: Bold text font_size: Font size in points font_color: Hex color (e.g., 'FF0000') bg_color: Background hex color alignment: left, center, right border: Add thin border
| Name | Required | Description | Default |
|---|---|---|---|
| bold | No | ||
| path | Yes | ||
| border | No | ||
| bg_color | No | ||
| alignment | No | ||
| font_size | No | ||
| cell_range | Yes | ||
| font_color | No | ||
| sheet_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses neither that this modifies the file in-place, whether existing formatting is overwritten, whether the sheet must already exist, nor what the tool returns. The action 'Apply' implies mutation but omits side-effect details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with a single purpose sentence followed by a concise argument list. Every line adds information without filler. It is slightly repetitive because the parameters are essentially restated from the schema, but the added context for each parameter justifies its presence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is thin on behavioral context. It documents what each parameter is but not the expected behavior, error conditions, file mutation semantics, or return value. An agent could invoke it with correct parameter values but would not know what to expect as a result or side effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does meaningfully. It adds value by explaining path meaning, giving a cell range example, specifying font size units, identifying hex color format, and enumerating alignment choices. It falls short of a 5 because defaults and optionality are not clarified beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Apply formatting to Excel cells.' This clearly distinguishes the tool from siblings like read_excel_workbook, write_excel_data, add_excel_formula, and add_excel_chart. It could be slightly stronger by explicitly noting it operates on an existing workbook, but the meaning is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the word 'formatting'—an agent can infer this is for visual style changes rather than data writes or formulas. However, there is no explicit guidance on when to choose this over write_excel_data or add_excel_chart, nor any exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_excel_workbookA
Read an Excel workbook and return its data.
Args: path: Path to the .xlsx file sheet_name: Specific sheet to read (empty = all sheets)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that data is returned and that an empty sheet_name reads all sheets, but it does not clarify return format, error behavior, whether the file is opened read-only, or what happens with sheets that do not exist. The behavioral surface is too thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimally sized and well structured: one front-loaded sentence states the purpose, followed by a clean Args block. Every line contributes necessary information, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation, the essential invocation details are present: file path, sheet selection, and the all-sheets default. However, there is no output schema and no description of the returned data structure, so an agent cannot anticipate whether the result is a list of rows, a dictionary of sheets, or some other format. Error and edge-case behavior are also unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions for either parameter, so the description's Args section adds meaningful value: path is clarified as the path to the .xlsx file, and sheet_name is explained with the important default behavior 'empty = all sheets.' Both parameters receive concrete semantic guidance beyond their bare names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear verb and resource: 'Read an Excel workbook and return its data.' This immediately signals both the operation and the document type, distinguishing it from siblings like write_excel_data, read_presentation, and read_word_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The read verb implies the tool should be used when data needs to be extracted from an Excel file, and the sheet parameter guidance gives some usage context. However, the description does not explicitly state when to prefer this tool over alternatives or mention exclusions such as not using it for writing or modifying workbooks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_presentationA
Read a PowerPoint presentation and return slide content.
Args: path: Path to the .pptx file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states the tool reads a presentation and returns slide content, implying a non-mutating operation. However, it does not disclose output granularity, extraction limitations (e.g., text vs. images), or error behavior for invalid paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded: one sentence for the tool's purpose, followed by a clearly formatted Args section. Every part earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description covers the essential information: what it reads, what it returns, and what the argument means. Minor gaps remain around the exact format of the returned slide content and handling of invalid files, but these are not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining the path parameter as 'Path to the .pptx file,' which adds the file type/extension meaning absent from the schema's generic 'Path' field. It could add more detail about absolute/relative paths, but the schema marks the parameter as required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' with a clear resource ('PowerPoint presentation') and states the outcome ('return slide content'). This differentiates it from sibling tools like read_word_document and read_excel_workbook, and from creation tools like create_presentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied through the name and resource: it should be used for reading .pptx files rather than Word or Excel files. However, the description provides no explicit guidance on when to use this tool versus alternatives or any caveats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_word_documentA
Read a Word document and return its paragraphs and tables.
Args: path: Absolute path to the .docx file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It clearly communicates a read-only operation and the types of content returned. It does not mention error behavior, but for a simple read tool this is reasonably sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one direct sentence states the tool's behavior, followed by a minimal Args block. There is no filler or redundant repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read operation with no output schema, the description provides the required parameter details and explains the return contents. An agent has enough information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides 'path: string', while the description adds 'Absolute path to the .docx file', fully specifying the required parameter format and file type. This completely compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read'), a clear resource ('Word document'), and the expected output ('paragraphs and tables'). This distinguishes it from sibling tools like read_excel_workbook and read_presentation by format and content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it (when reading a .docx file), but it does not explicitly contrast it with alternatives or provide exclusion criteria. Usage context is inferable but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_excel_dataB
Write data to an Excel sheet.
Args: path: Path to the .xlsx file sheet_name: Target sheet name data: 2D array of values to write start_cell: Starting cell (e.g., 'A1')
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| path | Yes | ||
| sheet_name | Yes | ||
| start_cell | No | A1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'write data' without explaining whether it overwrites existing cells, requires an existing sheet, creates the file if absent, or affects formulas/formatting. This leaves critical side effects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: one purpose sentence followed by a terse, readable Args block. Every line adds value and there is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and no output schema, the description lacks essential context such as overwrite behavior, required file/sheet existence, return values, and error conditions. It gives parameter identity but not enough behavioral context for safe, correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by explaining all four parameters: 'Path to the .xlsx file', 'Target sheet name', '2D array of values to write', and 'Starting cell (e.g., 'A1')'. This adds meaning beyond the bare schema, though 'values' could be more precise about supported types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Write data to an Excel sheet') with a specific verb and resource. It does not explicitly differentiate from sibling tools like create_excel_workbook or add_excel_formula, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention, for example, that create_excel_workbook should be used for new files or add_excel_formula for formula insertion. The agent must infer usage solely from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
16 tool updates
v0.1.0- First observed
add_excel_chart - First observed
add_excel_formula - First observed
add_presentation_slide - First observed
add_presentation_text - First observed
add_word_heading - First observed
add_word_list - First observed
add_word_paragraph - First observed
add_word_table - First observed
create_excel_workbook - First observed
create_presentation - First observed
create_word_document - First observed
format_excel_cells - First observed
read_excel_workbook - First observed
read_presentation - First observed
read_word_document - First observed
write_excel_data
TDQS
Scored across 16 tools
Each tool targets a distinct action and file format, with clear boundaries between reading, writing, creating, adding, and formatting. Even within the same format, verbs and objects make the purpose unambiguous.
Tool names consistently follow a verb_noun pattern with format prefixes like excel, word, and presentation (e.g., read_excel_workbook, add_word_paragraph, create_presentation). The naming style is uniform throughout.
At 16 tools, the set is slightly above the typical 3-15 range, but the count is justified by covering three document formats: Excel, PowerPoint, and Word. Each tool serves a meaningful purpose in the overall Office workflow.
The toolset covers creation, reading, and appending content for all three formats, with good Excel manipulation support. However, there are notable gaps: no delete/remove operations and no in-place editing of existing Word or PowerPoint content, which limits full lifecycle management.
Maintenance
Related MCP Connectors
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Deterministic DOCX/PPTX/XLSX/PDF parser: track changes, comments, headers, footers, merged cells.
Composable APIs for document extraction, image transformation, and document & sheet generation.
Real .docx and .xlsx files from structured data, with automatic Hebrew/Arabic RTL.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI-powered Office automation server that enables creating, editing, and processing Word, Excel, and PowerPoint documents through natural language instructions using Python-based libraries.1MIT
- AlicenseBqualityDmaintenanceEnables comprehensive management of Microsoft Word documents with 30+ tools for reading, writing, formatting, template merging, image extraction, equation extraction, and style application.241MIT
- FlicenseNot gradedqualityDmaintenanceProvides tools to read PDFs, extract images, convert between PDF and DOCX, create DOCX from text, and generate PDFs from DOCX, text, or HTML.-
- AlicenseDqualityDmaintenanceEnables reading, writing, editing, and converting Office documents (ODT, DOCX, ODS, XLSX, PDF, etc.) using MCP tools, with no external dependencies.117 npmMIT