Enhanced Word Document MCP Server
A consolidated MCP server for creating, reading, and manipulating Microsoft Word documents with 25 tools including search/replace, track changes, and document protection.
README
Enhanced Word Document MCP Server
A powerful, consolidated Model Context Protocol (MCP) server for creating, reading, and manipulating Microsoft Word documents (.docx). This enhanced version registers 25 tools for comprehensive Word document operations through a standardized interface.
<a href="https://glama.ai/mcp/servers/@GongRzhe/Office-Word-MCP-Server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@GongRzhe/Office-Word-MCP-Server/badge" alt="Office Word Server MCP server" /> </a>
Overview
Enhanced-Word-MCP-Server implements the Model Context Protocol with a focus on comprehensive document operations. It registers 25 tools, including:
- Session management for multi-document workflows
- Consolidated operations for better usability
- Enhanced functionality with regex support and advanced formatting
- Academic and professional workflow optimization
- Comprehensive error handling and validation
Example Usage
Creating Academic Documents
# Create document with proper structure
create_document("thesis.docx", title="AI in Healthcare", author="John Doe")
# Add structured content
add_text_content("thesis.docx", "Introduction", content_type="heading", level=1)
add_text_content("thesis.docx", "This paper explores...", content_type="paragraph")
# Footnotes/endnotes are not supported by python-docx and are disabled in this server.
Features Overview
šÆ Consolidated Tools (6 Tools)
Unified operations that replace multiple individual functions:
get_text- Unified text extraction (replaces 3 tools)manage_track_changes- Track changes management (replaces 2 tools)add_note- Footnote/endnote tool (currently disabled; python-docx limitation)add_text_content- Paragraph/heading creation (replaces 2 tools)get_sections- Section extraction (replaces 2 tools)manage_protection- Document protection (replaces 2 tools)
š Essential Document Tools (7 Tools)
Core document management functionality:
- Document Lifecycle:
create_document,copy_document,merge_documents - Content Operations:
enhanced_search_and_replace,add_table,add_picture - Export:
convert_to_pdf
š§ Advanced Features (6 Tools)
Specialized functionality for professional workflows:
- Collaboration:
manage_comments,extract_track_changes,generate_review_summary - Document Structure:
generate_table_of_contents - Security:
add_digital_signature,verify_document
Key Enhancements
š Enhanced Search & Replace
- Regex support for complex pattern matching
- Case-insensitive search options
- Whole word matching
- Advanced formatting application to replaced text
- Group substitutions for regex patterns
# Regex date format conversion
enhanced_search_and_replace("doc.docx",
find_text=r"(\d{4})-(\d{2})-(\d{2})",
replace_text=r"$2/$3/$1",
use_regex=True)
# Case-insensitive formatting
enhanced_search_and_replace("doc.docx",
find_text="important",
replace_text="CRITICAL",
match_case=False,
apply_formatting=True,
bold=True, color="red")
š Unified Text Extraction
# Extract full document with formatting
get_text("doc.docx", scope="all", include_formatting=True)
# Search within document
get_text("doc.docx", scope="search", search_term="methodology", match_case=False)
# Extract specific paragraph
get_text("doc.docx", scope="paragraph", paragraph_index=5)
š Flexible Section Management
# Extract all sections with formatting
get_sections("doc.docx", mode="overview", include_formatting=True)
# Get specific section content
get_sections("doc.docx", mode="content", section_title="Results")
š Advanced Protection Management
# Password protection
manage_protection("doc.docx", action="protect", protection_type="password", password="secure123")
# Restricted editing with editable sections (metadata + optional encryption depending on environment)
manage_protection("doc.docx", action="protect", protection_type="restricted",
password="review123", editable_sections=["Introduction", "Conclusion"])
Installation
NPX Installation (Recommended)
# Install via NPX (latest version)
npx enhanced-word-mcp-server
# Or install globally
npm install -g enhanced-word-mcp-server
Python Dependencies
The server requires Python 3.10+ with the following dependencies:
# Install Python dependencies (including MCP with CLI support)
pip install mcp[cli] python-docx msoffcrypto-tool docx2pdf
# Or install from requirements.txt if cloning the repository
pip install -r requirements.txt
Add to Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"word-mcp": {
"command": "npx",
"args": ["enhanced-word-mcp-server"]
}
}
}
Manual Installation
# Clone repository
git clone https://github.com/your-username/enhanced-word-mcp-server.git
cd enhanced-word-mcp-server
# Install dependencies
npm install
# Global installation
npm install -g .
Usage Examples
Academic Writing Workflow
# Create research paper structure
create_document("research_paper.docx", title="Machine Learning Analysis", author="Dr. Smith")
# Add structured content
add_text_content("research_paper.docx", "Abstract", content_type="heading", level=1)
add_text_content("research_paper.docx", "This study examines...", content_type="paragraph",
style="Normal", position="end")
# Footnotes/endnotes are disabled (python-docx limitation). Insert notes manually in Word if needed.
# Format academic terms
format_research_paper_terms("research_paper.docx")
# Extract structure for review
sections = get_sections("research_paper.docx", mode="overview", max_level=2)
Document Review Workflow
# Extract review elements
comments = manage_comments("draft.docx", action="list") # list-only (legacy in-text markers)
changes = extract_track_changes("draft.docx")
# Generate comprehensive review summary
summary = generate_review_summary("draft.docx")
# Manage track changes selectively
manage_track_changes("draft.docx", action="accept", change_type="insertions")
manage_track_changes("draft.docx", action="reject", change_type="deletions", author="Reviewer1")
Document Security Workflow
# Apply comprehensive protection
manage_protection("confidential.docx", action="protect",
protection_type="password", password="secure123")
# Add digital signature
add_digital_signature("contract.docx", signer_name="John Doe",
reason="Document approval")
# Verify document integrity
verification = verify_document("contract.docx")
Tool Reference
Consolidated Tools
get_text(filename, scope, **options)
Unified text extraction with multiple modes:
scope: "all" | "paragraph" | "search" | "range"include_formatting: Extract formatting informationsearch_term: Text to search for (when scope="search")paragraph_index: Specific paragraph (when scope="paragraph")
manage_track_changes(filename, action, **filters)
Comprehensive track changes management:
action: "accept" | "reject" | "extract"change_type: "all" | "insertions" | "deletions" | "formatting"author: Filter by specific authordate_range: Filter by date range
add_note(...)
Footnotes/endnotes are disabled in this server (python-docx limitation). Insert notes manually in Word.
add_text_content(filename, text, content_type, **options)
Unified content creation:
content_type: "paragraph" | "heading"level: Heading level (1-6)style: Apply document styleposition: "beginning" | "end" | "before" | "after"
get_sections(filename, mode, **options)
Advanced section extraction:
mode: "overview" | "content"section_title: Optional section to targetmax_level: Maximum heading leveloutput_format: "text" | "json"
manage_protection(filename, action, protection_type, **options)
Document protection management:
action: "protect" | "unprotect" | "verify" | "status"protection_type: "password" | "restricted" | "signature"password: Protection passwordeditable_sections: Section names editable under restricted mode
Safety Guardrails
enhanced_search_and_replace and get_text(scope="search") apply configurable limits to avoid runaway searches, oversized responses, and memory pressure:
EW_MAX_MATCHES_PER_CALL(default1000)EW_MAX_SEARCH_OUTPUT_CHARS(default200000)EW_MAX_REGEX_PATTERN_CHARS(default5000)EW_MAX_REGEX_SCAN_CHARS(default2000000)EW_MAX_DOC_BYTES_PER_OPERATION(default50000000)EW_MAX_UNDO_BYTES_TOTAL(default200000000)EW_LONG_SESSION_OP_LIMIT(default2000)EW_REGEX_TIMEOUT_MS(default0; if set and timeout runtime is unavailable, operation is refused explicitly)
When limits are hit, tools return explicit guardrail codes/messages, including:
LIMIT_EXCEEDEDREGEX_COMPLEXITY_BLOCKEDDOC_TOO_LARGEUNDO_BUDGET_EXCEEDEDSESSION_CONSISTENCY_WARNING
Mutation-heavy operations use fail-before-mutate semantics for preflight guardrail failures.
Session Consistency Contract
- Disk path is authoritative for document state.
document_idis a routing alias to file paths.- In-memory session metadata is advisory and may lag; tools read from file paths each call.
Error Handling
All tools provide comprehensive error handling:
# Typical error responses
{
"status": "error",
"message": "Document not found: nonexistent.docx",
"error_type": "FileNotFoundError",
"suggestions": ["Check file path", "Ensure file exists"]
}
Development
Project Structure
enhanced-word-mcp-server/
āāā word_document_server/
ā āāā main.py # MCP server entry point
ā āāā tools/ # Tool implementations
ā ā āāā document_tools.py # Document management
ā ā āāā content_tools.py # Content creation
ā ā āāā review_tools.py # Review and collaboration
ā ā āāā section_tools.py # Document structure
ā ā āāā protection_tools.py # Security features
ā ā āāā footnote_tools.py # Notes and references
ā āāā utils/ # Utility modules
āāā bin/
ā āāā enhanced-word-mcp-server.js # NPX entry point
āāā package.json
āāā README.md
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
Testing
# Run test suite
python test_enhanced_features.py
pytest -q -m "not stress"
# Run only end-to-end MCP stdio tests
pytest -q -m e2e
# Run stress/performance/soak tier (nightly/manual)
pytest -q -m stress --durations=30
# Test specific functionality
python -c "from word_document_server.tools.content_tools import enhanced_search_and_replace; print(enhanced_search_and_replace('test.docx', 'old', 'new'))"
License
MIT License - see LICENSE file for details.
Version History
v2.0.0 (Enhanced)
- šÆ 25 registered tools for comprehensive document operations
- š Enhanced search & replace with regex support
- š Consolidated operations for better usability
- š§ Improved error handling and validation
- š Comprehensive documentation with examples
v1.0.0 (Original)
- Initial release with 47 individual tools
- Basic Word document operations
- Simple MCP server implementation
Support
For issues, feature requests, or questions:
- š§ Create an issue on GitHub
- š Check the documentation and examples
- š Review error messages for troubleshooting guidance
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.