Word Document Reader MCP Server
Click on "Install 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., "@Word Document Reader MCP Serverread the quarterly report at /docs/reports/q3-2024.docx and extract all tables"
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.
Word Document Reader MCP Server
A powerful Word document reading MCP server with table extraction, image OCR analysis, large document optimization, and intelligent caching.
๐ Core Features
1. Document Content Extraction
โ Word document (.docx/.doc) text extraction
โ Support for mixed Chinese-English documents
โ Preserve original formatting and structure
2. Table Extraction
โ Automatically identify and extract tables from Word documents
โ Convert to structured data format
โ Preserve table row/column structure information
โ Support complex table parsing
3. Image OCR Analysis
โ Extract embedded images from Word documents
โ High-precision OCR recognition using Tesseract.js v5
โ Support mixed Chinese-English text recognition (95%+ accuracy)
โ Intelligent image preprocessing for better recognition
โ Support multiple image formats (JPG, PNG, GIF, BMP, WebP)
4. Large Document Optimization
โ Automatic detection of large documents (>10MB or >100 pages)
โ Worker thread parallel processing, utilizing multi-core CPUs
โ Chunked processing to avoid memory overflow
โ 60%+ speed improvement
5. Intelligent Caching System
โ File system persistent caching
โ Smart cache invalidation based on file modification time
โ Cache statistics and management support
โ 90%+ speed improvement for repeated document processing
6. Full-text Index Search
โ Millisecond-level search with inverted index
โ Intelligent Chinese-English word segmentation
โ Relevance scoring and sorting
โ Support document type filtering
Related MCP server: Document Reader MCP Server
๐ฆ Installation and Usage
1. Install Dependencies
npm install2. Start Server
# Start full-featured version
npm start
# Or start basic version (without advanced features)
npm run start:basic3. Run Tests
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate test coverage report
npm run test:coverageread_word_document
Read and analyze Word documents
{
"name": "read_word_document",
"arguments": {
"filePath": "path/to/document.docx",
"memoryKey": "my-document",
"documentType": "api-doc",
"extractTables": true,
"extractImages": true,
"useCache": true,
"outputDir": "./output"
}
}search_documents
Full-text index search
{
"name": "search_documents",
"arguments": {
"query": "search keywords",
"documentType": "api-doc",
"limit": 10
}
}get_cache_stats
Get cache statistics
{
"name": "get_cache_stats"
}clear_cache
Clear cache
{
"name": "clear_cache",
"arguments": {
"type": "all" // "all", "document", "index"
}
}list_stored_documents
List stored documents
{
"name": "list_stored_documents",
"arguments": {
"documentType": "api-doc"
}
}get_stored_document
Get specific document content
{
"name": "get_stored_document",
"arguments": {
"memoryKey": "document-key"
}
}clear_memory
Clear memory content
{
"name": "clear_memory",
"arguments": {
"memoryKey": "specific-key" // Optional, clear all if not provided
}
}๐ Project Structure
word-doc-mcp/
โโโ server.js # Main server file (with all features)
โโโ server-basic.js # Basic server (compatibility)
โโโ package.json # Project configuration and dependencies
โโโ config.json # Server configuration file
โโโ tests/ # Test directory
โ โโโ setup.js # Test environment setup
โ โโโ unit/ # Unit tests
โ โ โโโ services/ # Service layer tests
โ โโโ integration/ # Integration tests
โ โ โโโ tools/ # Tool tests
โ โ โโโ cache/ # Cache tests
โ โโโ fixtures/ # Test data
โ โโโ documents/ # Test documents
โ โโโ mock-data.js # Mock data
โโโ .cache/ # Cache directory (auto-created)
โโโ output/ # Output directory (auto-created)
โโโ node_modules/ # Dependenciesโ๏ธ Configuration
Edit the config.json file to customize server behavior:
{
"processing": {
"maxFileSize": 10485760,
"maxPages": 100,
"chunkSize": 1048576,
"parallelProcessing": true
},
"cache": {
"enabled": true,
"defaultTTL": 3600,
"cacheDirectory": "./.cache"
},
"ocr": {
"enabled": true,
"languages": ["chi_sim", "eng"]
}
}๐งช Testing
Test Framework
Using Node.js built-in test framework, following these standards:
Unit Tests: Test individual components and functions
Integration Tests: Test interactions between tools
End-to-End Tests: Test complete workflows
Running Tests
# Run all tests
npm test
# Run specific test file
node --test tests/unit/services/DocumentIndexer.test.js
# Run integration tests
node --test tests/integration/
# Generate coverage report
npm run test:coverageTest Coverage
โ Functional tests for all MCP tools
โ Complete cache system tests
โ Error handling and edge cases
โ Performance and concurrency tests
โ End-to-end workflow tests
๐ Performance Metrics
Large Document Processing: 60%+ speed improvement (parallel processing)
Repeated Document Processing: 90%+ speed improvement (caching)
OCR Recognition Accuracy: 95%+ (image preprocessing)
Memory Usage Optimization: 40% reduction (streaming processing)
Search Response Time: <100ms (full-text index)
๐ก๏ธ Security Considerations
Input file size limits
File type validation
Cache data isolation
Error handling and logging
Automatic temporary file cleanup
๐ Version Compatibility
Backward Compatibility
โ Maintain full compatibility with original API
โ Existing tool functionality unchanged
โ Optional configuration with reasonable defaults
โ Provide basic version to ensure compatibility
System Requirements
Minimum Requirements:
Node.js 16+
4GB RAM
1GB disk space
Recommended Configuration:
Node.js 18+
8GB+ RAM
Multi-core CPU
SSD storage
๐ Troubleshooting
Common Issues
Module Installation Failure
npm cache clean --force npm installOCR Recognition Failure
Ensure sufficient memory (8GB+ recommended)
Check supported image formats
Review error logs
Slow Large Document Processing
Enable parallel processing
Adjust chunkSize configuration
Use SSD storage
Memory Insufficient
node --max-old-space-size=4096 server.js
๐ Changelog
v2.0.0
โ Add table extraction functionality
โ Add image OCR analysis
โ Implement large document parallel processing
โ Add intelligent caching system
โ Implement full-text index search
โ Complete testing framework
v1.0.0
โ Basic Word document reading
โ Memory storage management
โ Simple search functionality
๐ค Contributing
Issues and Pull Requests are welcome!
Development Guidelines
Fork the project
Create feature branch
Write test cases
Ensure all tests pass
Submit Pull Request
๐ License
MIT License
Quick Start: npm install && npm start
Available Tools
7 toolsclear_cacheC
ๆธ ็ฉบๆๆ็ผๅญ
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ๆธ ้ค็ฑปๅ๏ผall, document, index | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'ๆธ ็ฉบๆๆ็ผๅญ' implies a destructive operation that removes cached data, but it doesn't specify what types of data are affected, whether this requires special permissions, if the operation is reversible, what side effects might occur, or what happens after execution. For a potentially destructive tool, this is insufficient behavioral context.
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 extremely concise - just four Chinese characters that directly convey the core function. There's zero wasted language or unnecessary elaboration. It's front-loaded with the essential information in the most compact form possible.
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 cache-clearing operation with no annotations and no output schema, the description is incomplete. It doesn't address important contextual questions: What does 'cache' refer to in this system? What are the consequences of clearing it? Are there different cache types? What confirmation or result should be expected? The single sentence leaves too many practical questions unanswered.
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 description mentions 'all cache' which implies comprehensive clearing, but the input schema shows a 'type' parameter with three options (all, document, index). The description doesn't explain these options or their differences. With 100% schema description coverage, the baseline is 3, but the description adds minimal value beyond what's already in 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 'ๆธ ็ฉบๆๆ็ผๅญ' (Clear all cache) clearly states the action (clear) and target (cache), making the purpose immediately understandable. It doesn't specifically distinguish from sibling tools like 'clear_memory' or 'get_cache_stats', but the verb+resource combination is unambiguous for what this tool does.
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 provides no guidance on when to use this tool versus alternatives. There's no mention of when this operation is appropriate, what prerequisites might exist, or how it differs from sibling tools like 'clear_memory' or 'get_cache_stats'. The user must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_memoryC
ๆธ ้คๆๅฎ็ๅ ๅญๅ ๅฎน
| Name | Required | Description | Default |
|---|---|---|---|
| memoryKey | No | ่ฆๆธ ้ค็ๅ ๅญ้ฎๅ๏ผๅฆๆไธๆไพๅๆธ ้คๆๆ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'ๆธ ้ค' (clear) implies a destructive operation, but the description doesn't specify whether this is reversible, what permissions are required, whether it affects system performance, or what happens when memoryKey is omitted. The description mentions the optional parameter behavior but lacks critical behavioral context.
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 extremely concise - a single Chinese phrase that directly states the tool's function. There's zero wasted language, and it's front-loaded with the core action. This is appropriate conciseness for a simple tool.
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 destructive tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'memory' means in this context, what gets cleared, whether the operation is safe/reversible, what happens when all memory is cleared, or what the tool returns. Given the complexity of a memory-clearing operation, more context is needed.
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 description implies parameter semantics by mentioning 'ๆๅฎ็' (specified), which aligns with the optional memoryKey parameter. With 100% schema description coverage and only one parameter, the description adds minimal but appropriate context about the parameter's purpose without duplicating schema information.
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 'ๆธ ้คๆๅฎ็ๅ ๅญๅ ๅฎน' (Clear specified memory content) states the verb (clear) and resource (memory content), but it's vague about what 'memory content' means in this context. It doesn't distinguish this tool from sibling tools like 'clear_cache' or explain what type of memory is being cleared.
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 provides no guidance on when to use this tool versus alternatives like 'clear_cache' or other sibling tools. There's no mention of prerequisites, typical use cases, or when this tool would be preferred over other memory/cache management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cache_statsB
่ทๅ็ผๅญ็ป่ฎกไฟกๆฏ
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 the action ('get') but doesn't add any context about what the statistics include, whether it's a read-only operation, performance implications, or rate limits. This leaves significant gaps for a tool that likely provides system-level data.
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, efficient sentence in Chinese ('่ทๅ็ผๅญ็ป่ฎกไฟกๆฏ') that directly states the purpose without any wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the cache statistics include (e.g., hit rates, memory usage), the format of the return value, or any behavioral traits. For a tool that likely provides detailed system data, this leaves too much unspecified.
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 tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter details, and it correctly implies no inputs are required, earning a high baseline score.
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 '่ทๅ็ผๅญ็ป่ฎกไฟกๆฏ' (Get cache statistics) clearly states the verb 'get' and the resource 'cache statistics', providing a specific purpose. However, it doesn't differentiate from sibling tools like 'clear_cache' or 'get_stored_document', which prevents a perfect score.
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 provides no guidance on when to use this tool versus alternatives like 'clear_cache' or 'get_stored_document'. There's no mention of context, prerequisites, or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stored_documentC
่ทๅๅทฒๅญๅจ็ๆๆกฃๅ ๅฎน
| Name | Required | Description | Default |
|---|---|---|---|
| memoryKey | 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 of behavioral disclosure. It states the tool retrieves content but doesn't describe what happens if the document doesn't exist (e.g., errors), whether it requires authentication, rate limits, or the format of returned content. For a read operation with zero annotation coverage, this leaves significant gaps in understanding 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 a single, efficient sentence in Chinese that directly states the tool's purpose. It's appropriately sized and front-loaded with the core action. There's no wasted text, though it could be slightly more informative without losing conciseness.
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?
Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain what 'stored' means in context (e.g., from a cache or database), what content is returned (e.g., text, binary), or error handling. For a tool with one parameter but rich behavioral unknowns, this minimal description is inadequate.
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 description coverage is 100%, with the single parameter 'memoryKey' documented as '่ฆ่ทๅ็ๆๆกฃๅ ๅญ้ฎๅ' (the memory key name of the document to retrieve). The description doesn't add any meaning beyond this, such as explaining what a 'memoryKey' represents or providing examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
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 the tool's purpose as '่ทๅๅทฒๅญๅจ็ๆๆกฃๅ ๅฎน' (get stored document content), which clearly indicates it retrieves document content. However, it doesn't distinguish this from sibling tools like 'list_stored_documents' (which likely lists metadata) or 'read_word_document' (which may read from a different source). The verb+resource is clear but lacks sibling differentiation.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a stored document), exclusions, or comparisons to siblings like 'search_documents' or 'read_word_document'. Without such context, the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stored_documentsC
ๅๅบๆๆๅทฒๅญๅจ็ๆๆกฃ
| Name | Required | Description | Default |
|---|---|---|---|
| documentType | No | ็ญ้็นๅฎ็ฑปๅ็ๆๆกฃ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions listing documents but doesn't describe pagination behavior, rate limits, authentication requirements, or what 'stored' means in this context. The description is too minimal to adequately inform the agent about how this tool behaves.
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, efficient sentence that gets straight to the point with zero wasted words. It's perfectly concise and front-loaded with the core functionality.
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 list operation with no annotations and no output schema, the description is insufficient. It doesn't explain what information is returned about each document, whether results are paginated, or how 'documentType' filtering affects the output. The agent would need to guess about the tool's behavior and output format.
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 100% description coverage with a well-documented enum parameter. The description doesn't add any parameter information beyond what's in the schema, but since the schema already fully documents the single optional parameter, the baseline score of 3 is appropriate.
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 'ๅๅบๆๆๅทฒๅญๅจ็ๆๆกฃ' (List all stored documents) clearly states the verb (list) and resource (stored documents). It's specific about scope ('all'), but doesn't differentiate from sibling tools like 'search_documents' or 'get_stored_document', which prevents a perfect score.
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 provides no guidance on when to use this tool versus alternatives like 'search_documents' (for filtered searches) or 'get_stored_document' (for retrieving a single document). It simply states what the tool does without context about appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_word_documentC
ๅขๅผบ็Wordๆๆกฃ่ฏปๅๅจ๏ผๆฏๆ่กจๆ ผๆๅใๅพ็OCRๅๆๅ็ผๅญไผๅ
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Wordๆๆกฃ็ๆไปถ่ทฏๅพ | |
| memoryKey | No | ็จไบๅญๅจ็ๅ ๅญ้ฎๅ๏ผไพฟไบๅ็ปญๆฃ็ดข | default |
| documentType | No | ๆๆกฃ็ฑปๅ | common-doc |
| extractTables | No | ๆฏๅฆๆๅ่กจๆ ผ | |
| extractImages | No | ๆฏๅฆๆๅๅพ็ๅนถ่ฟ่กOCRๅๆ | |
| useCache | No | ๆฏๅฆไฝฟ็จ็ผๅญ | |
| outputDir | No | ๅพ็ๅไธดๆถๆไปถ่พๅบ็ฎๅฝ | ./output |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'cache optimization' but doesn't explain caching behavior (e.g., cache duration, invalidation). It doesn't disclose performance characteristics, error handling, or what 'enhanced' means operationally. The description adds some context about extraction capabilities but leaves critical behavioral traits 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 a single, efficient sentence that front-loads the core purpose ('enhanced Word document reader') followed by key features. Every phrase adds value, though it could be slightly more structured by separating core function from optional capabilities.
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 7-parameter tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns (document content? structured data? metadata?), how extracted tables/images are formatted, or what 'memoryKey' storage enables. The agent lacks critical information about the tool's outputs and behavioral guarantees.
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 100%, so the schema already documents all 7 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters (e.g., how 'extractImages' interacts with 'outputDir') or provide usage examples. Baseline 3 is appropriate when schema does the heavy lifting.
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 tool's function as an 'enhanced Word document reader' with specific capabilities (table extraction, image OCR analysis, cache optimization). It distinguishes itself from basic readers by mentioning these advanced features, though it doesn't explicitly differentiate from sibling tools like 'get_stored_document' or 'search_documents' which might have overlapping functionality.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when this enhanced reader is preferable over simpler tools, nor does it reference any sibling tools for comparison. The agent must infer usage from the feature list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentsC
ๅ จๆ็ดขๅผๆ็ดข๏ผๆฏๆไธญ่ฑๆๆททๅๆ็ดข
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ๆ็ดขๅ ณ้ฎ่ฏ | |
| documentType | No | ้ๅถๆ็ดข็ๆๆกฃ็ฑปๅ | |
| limit | 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 mentions 'full-text index search' and language support, but lacks critical behavioral details: it doesn't disclose whether this is a read-only operation, how results are returned (e.g., pagination, sorting), performance characteristics, or error handling. For a search tool with no annotations, this is inadequate.
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 very concise with a single sentence, which is efficient. However, it's under-specified rather than optimally conciseโit could benefit from slightly more detail without becoming verbose. It's front-loaded but lacks depth.
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?
Given the complexity of a search tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., search results format), how to interpret outputs, or any limitations. This leaves significant gaps for an AI agent to use the tool effectively.
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 description adds no parameter semantics beyond what the input schema provides. The schema has 100% description coverage, clearly documenting 'query', 'documentType', and 'limit' with enums and defaults. The description doesn't explain parameter interactions or provide additional context, so it meets the baseline of 3.
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 the tool performs 'full-text index search' and supports 'Chinese-English mixed search', which provides a basic purpose. However, it doesn't specify what resource is being searched (documents, files, etc.) or distinguish it from sibling tools like 'list_stored_documents' or 'get_stored_document'. The purpose is somewhat vague about scope.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer this over 'list_stored_documents' (which might list without search) or 'get_stored_document' (which retrieves a specific document), nor does it specify any prerequisites or exclusions for usage.
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. Dates show when Glama detected each change.
7 tool updates
v1.0.0- Added
clear_cache - Added
clear_memory - Added
get_cache_stats - Added
get_stored_document - Added
list_stored_documents - Added
read_word_document - Added
search_documents
7 tool updates
- Removed
clear_cache - Removed
clear_memory - Removed
get_cache_stats - Removed
get_stored_document - Removed
list_stored_documents - Removed
read_word_document - Removed
search_documents
7 tool updates
- First observed
clear_cache - First observed
clear_memory - First observed
get_cache_stats - First observed
get_stored_document - First observed
list_stored_documents - First observed
read_word_document - First observed
search_documents
TDQS
Most tools have distinct purposes, but there is some potential overlap between 'clear_cache' and 'clear_memory' as both involve clearing operations, which could cause confusion without clear context in their descriptions. The other tools like 'read_word_document', 'search_documents', and document listing/storage tools are well-differentiated.
All tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., 'clear_cache', 'get_stored_document', 'list_stored_documents'), making them predictable and easy to understand. There are no deviations in naming conventions.
With 7 tools, the server is well-scoped for a Word Document Reader, covering core operations like reading, searching, listing, storing, and cache management. Each tool appears to serve a specific and necessary function without being overly sparse or bloated.
The tool set covers key document handling workflows, including reading, searching, listing, and storage, with added cache management. A minor gap exists in document modification or deletion tools, but the core functionality for a reader is largely complete, allowing agents to perform essential tasks effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deterministic DOCX/PPTX/XLSX/PDF parser: track changes, comments, headers, footers, merged cells.
Verified OCR with per-value coordinates, plus a workspace agents can file documents into and query.
High-fidelity PDF to structured Markdown conversion and document field extraction.
Parse PDF/Word/PPT/HTML to Markdown; tables as JSON, image extraction, RAG chunking, page ranges.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive document processing, including reading, converting, and manipulating various document formats with advanced text and HTML processing capabilities.1615319MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading and processing various document formats including Word, PDF, RTF, and text files. Supports extracting media elements like images and links, with features for PDF page range selection and automatic text encoding detection.8MIT
- AlicenseBqualityDmaintenanceEnables comprehensive management of Microsoft Word documents with 30+ tools for reading, writing, formatting, template merging, image extraction, equation extraction, and style application.241MIT
- AlicenseAqualityDmaintenanceProvides comprehensive read/write access to Word documents, including comments, track changes, and reply threads.91MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/little2512/word-doc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server