Skip to main content
Glama
rcarmo

office-document-mcp-server

by rcarmo

word_generate_sow

Fill placeholders and tables in a SOW template using structured data to generate a draft statement of work.

Instructions

Generate a SOW document from a template and structured data.

IMPORTANT: This tool REQUIRES a template document. It fills placeholders and tables but does NOT generate prose sections (Introduction, Executive Summary, etc.). After using this tool, use patch_section to add narrative content to key sections.

Template-based workflow:

  1. Use copy_template to copy .github/skills/statement-of-work/templates/Agile.docx

  2. Use generate_sow to fill placeholders and tables

  3. Use patch_section to add Introduction, Business Context, etc.

  4. Use audit_completion to verify completeness

  5. Use cleanup_sow to remove template artifacts

Takes a SOW template and fills it with actual engagement data, stripping instructional boilerplate and replacing placeholders.

Example: generate_sow( template_path=".github/skills/statement-of-work/templates/Agile.docx", output_path="04. Artifacts/contoso-sow.docx", sow_data={ "customer_name": "Contoso", "customer_short_name": "Contoso", "project_name": "Cloud Migration", "provider_name": "Microsoft", "work_order_number": "WO-2026-001", "language": "English", "business_objectives": [ {"objective": "Migrate 15 apps to Azure", "activities": "Assessment, migration planning", "assumptions": "Apps are containerizable"} ], "epics": [ {"name": "Infrastructure Setup", "description": "Set up Azure landing zone", "assumptions": "Subscription available"} ], "out_of_scope": [ {"area": "Data migration", "description": "Historical data migration not included"} ], "technology_requirements": [ {"item": "Azure subscription", "version": "N/A", "ready_by": "Project start"} ], "assumptions": [ "Customer will provide access to existing systems", "Dedicated product owner available full-time" ] } )

Args: template_path: Path to the .docx template (REQUIRED - use copy_template first) output_path: Path for the output .docx file sow_data: Dictionary containing SOW content

Returns: Status dictionary with file path and next_tools suggestions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
template_pathYesPath to the .docx template (REQUIRED - use copy_template first)
output_pathYesPath for the output .docx file
sow_dataYesDictionary containing SOW content
modeNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so no contradiction. Description adds behavioral context: requires a template, fills placeholders/tables but not prose, strips boilerplate, returns status with next_tools suggestions. Exceeds 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with important notes in caps, a numbered workflow, and an example. Every sentence adds value; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description states return type (status dictionary with file path and next_tools suggestions). Covers all four parameters (three required with detail, mode mentioned in schema but not described; however, enum suffices). Explains constraints and integration with sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% (mode missing description). Description adds value beyond schema by detailing the sow_data structure with an example, and explains template_path must come from copy_template. The Args section maps to schema but provides additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a SOW document from a template and structured data, and explicitly notes it fills placeholders and tables but does not generate prose sections. This distinguishes it from siblings like word_patch_with_track_changes and word_create_sow_from_markdown.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a step-by-step workflow (copy_template -> generate_sow -> patch_section -> audit_completion -> cleanup_sow), explicitly tells when to use this tool (after copying template, before patching sections), and what it does not do (generate prose). Also includes an example.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rcarmo/python-office-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server