Skip to main content
Glama

Document Operations MCP Server

npm version License: MIT Downloads

Language / 语言: English | 中文

Document Operations MCP Server - A universal MCP server for document processing, conversion, and automation. Handle PDF, DOCX, HTML, Markdown, and more through a unified API and toolset.

Demo

Video

https://github.com/user-attachments/assets/43dfeeec-8097-413e-8519-a7de98e31136

In this demo, we showcase how to:

  • Configure doc-ops-mcp in MCP clients

  • Convert DOCX documents to PDF format

  • Add default watermarks to converted PDF files

Related MCP server: document-reader-mcp

Table of Contents

  1. Quick Start

  2. System Architecture

  3. Optional Integration

  4. Features

  5. Open Source Licenses

  6. Future Roadmap

  7. Docker Deployment

  8. Development Guide

  9. Troubleshooting

  10. Contributing

1. Quick Start

First, add the Document Operations MCP server to your MCP client.

Standard config works in most MCP clients:

{
  "mcpServers": {
    "doc-ops-mcp": {
      "command": "npx",
      "args": ["-y", "doc-ops-mcp"],
      "env": {
        "OUTPUT_DIR": "/path/to/your/output/directory",
        "CACHE_DIR": "/path/to/your/cache/directory",
      }
    }
  }
}

Follow the MCP install guide, use the standard config above.

Follow the MCP install guide, use the standard config above.

Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx -y doc-ops-mcp.

For other MCP clients, use the standard config above and refer to your client's documentation for MCP server installation.

Configuration

The Document Operations MCP server supports configuration through environment variables. These can be provided in the MCP client configuration as part of the "env" object:

{
  "mcpServers": {
    "doc-ops-mcp": {
      "command": "npx",
      "args": ["-y", "doc-ops-mcp"],
      "env": {
        "OUTPUT_DIR": "/path/to/your/output/directory",
        "CACHE_DIR": "/path/to/your/cache/directory",
        "WATERMARK_IMAGE": "/path/to/watermark.png",
        "QR_CODE_IMAGE": "/path/to/qrcode.png"
      }
    }
  }
}

Supported Document Operations

Format

Convert to PDF

Convert to DOCX

Convert to HTML

Convert to Markdown

Content Rewriting

Watermark/QR Code

PDF

DOCX

HTML

Markdown

Rewriting Features:

  • Content Replacement: Support batch text replacement and regular expression replacement

  • Format Adjustment: Modify document structure, heading levels, and style formatting

  • Smart Rewriting: Content optimization while preserving original document format

Usage Examples

Format Conversion:

Convert /Users/docs/report.docx to PDF
Convert /Users/docs/article.md to HTML
Convert /Users/docs/presentation.html to DOCX
Convert /Users/docs/readme.md to PDF (with theme styling)

Document Rewriting:

Rewrite company names in /Users/docs/contract.md
Batch replace terminology in /Users/docs/manual.docx
Adjust heading levels in /Users/docs/article.html
Update dates and version numbers in /Users/docs/policy.md

PDF Enhancement:

Add watermark to /Users/docs/document.pdf
Add QR code to /Users/docs/report.pdf
Add company logo watermark to /Users/docs/invoice.pdf

Environment Variables

The server supports environment variables for controlling output paths and PDF enhancement features:

Core Directories

  • OUTPUT_DIR: Controls where all generated files are saved (default: ~/Documents)

  • CACHE_DIR: Directory for temporary and cache files (default: ~/.cache/doc-ops-mcp)

PDF Enhancement Features

  • WATERMARK_IMAGE: Default watermark image path for PDF files

    • Automatically added to all PDF conversions

    • Supported formats: PNG, JPG

    • If not set, default text watermark "doc-ops-mcp" will be used

  • QR_CODE_IMAGE: Default QR code image path for PDF files

    • Added to PDFs only when explicitly requested (addQrCode=true)

    • Supported formats: PNG, JPG

    • If not set, QR code functionality will be unavailable

Output Path Rules:

  1. If outputPath is not provided → files saved to OUTPUT_DIR with auto-generated names

  2. If outputPath is relative → resolved relative to OUTPUT_DIR

  3. If outputPath is absolute → used as-is, ignoring OUTPUT_DIR

See OUTPUT_PATH_CONTROL.md for detailed documentation.

2. System Architecture

Document Operations MCP Server adopts a pure JavaScript architecture design, providing complete document processing capabilities:

┌─────────────────────────────────────────────────────────────┐
│                    MCP Client Layer                         │
│           (Claude Desktop, Cursor, VS Code, etc.)           │
└─────────────────────┬───────────────────────────────────────┘
                      │ JSON-RPC 2.0
┌─────────────────────┴───────────────────────────────────────┐
│                 Doc-Ops-MCP Server                         │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────┐ │
│  │   Tool Router   │  │  Request        │  │  Response   │ │
│  │   & Handler     │  │  Validator      │  │  Formatter  │ │
│  └────────┬────────┘  └────────┬────────┘  └──────┬──────┘ │
│           │                    │                  │        │
│  ┌────────┴────────────────────┴──────────────────┴─────┐ │
│  │                Document Processing Engine             │ │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐   │ │
│  │  │  Document   │  │   Format    │  │   Style     │   │ │
│  │  │   Reader    │  │  Converter  │  │  Processor  │   │ │
│  │  └─────────────┘  └─────────────┘  └─────────────┘   │ │
│  │                                                        │ │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐   │ │
│  │  │    PDF      │  │  Watermark/ │  │ Conversion  │   │ │
│  │  │ Enhancement │  │   QR Code   │  │  Planner    │   │ │
│  │  └─────────────┘  └─────────────┘  └─────────────┘   │ │
└────┴───────────────────────────────────────────────────────┴─┘
                            │
┌───────────────────────────┴─────────────────────────────────┐
│                    Core Dependencies Layer                  │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐          │
│  │   pdf-lib   │  │word-extractor│  │   marked    │          │
│  │ (PDF Tools) │  │(DOCX Reader)│  │ (Markdown)  │          │
│  └─────────────┘  └─────────────┘  └─────────────┘          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐          │
│  │   cheerio   │  │    jszip    │  │    docx     │          │
│  │(HTML Parser)│  │(ZIP Handler)│  │(DOCX Gen.)  │          │
│  └─────────────┘  └─────────────┘  └─────────────┘          │
│  ┌─────────────┐  ┌─────────────┐                           │
│  │   xml2js    │  │Custom OOXML │                           │
│  │(XML Parser) │  │   Parser    │                           │
│  └─────────────┘  └─────────────┘                           │
└─────────────────────────────────────────────────────────────┘

Architecture Overview

Core Features:

  • Pure JavaScript implementation with no external system dependencies

  • Complete document reading, conversion, and style processing capabilities

  • Built-in PDF watermark and QR code addition functionality

  • Intelligent conversion planning and path optimization

Conversion Flow:

  • Direct Conversion: Supports direct conversion between most formats

  • Multi-step Conversion: Complex conversions achieved through intermediate formats

  • Style Preservation: Uses OOXML parser to ensure complete style integrity

3. Optional Integration

This server can work with playwright-mcp for enhanced PDF conversion capabilities. Please refer to the official playwright-mcp documentation for detailed configuration.

🔧 PDF Conversion Workflow

This server supports complete PDF conversion functionality:

  1. Document Parsing: Use OOXML parser to ensure complete style preservation

  2. Format Conversion: Convert documents to high-quality HTML format

  3. PDF Generation: Built-in converter or optionally work with playwright-mcp

  4. Enhancement Processing: Automatically add watermarks and QR codes (if configured)

How It Works

This server uses intelligent conversion architecture:

  1. Smart Planning: plan_conversion analyzes conversion requirements and selects optimal paths

  2. Format Conversion: Use specialized converters to handle various document formats

  3. Style Preservation: Ensure style integrity through OOXML parser

  4. Enhancement Processing: Automatically add watermarks, QR codes and other enhancements

  5. Optional Integration: Support working with playwright-mcp for enhanced capabilities

4. Features

MCP Tools

Core Document Tools

Tool Name

Description

Input Parameters

External Dependencies

read_document

Read document content

filePath: Document pathextractMetadata: Extract metadatapreserveFormatting: Preserve formatting

None

write_document

Write document content

content: Document contentoutputPath: Output file pathencoding: File encoding

None

convert_document

Smart document conversion

inputPath: Input file pathoutputPath: Output file pathpreserveFormatting: Preserve formatting

None

plan_conversion

Conversion planner

sourceFormat: Source formattargetFormat: Target formatpreserveStyles: Preserve stylesquality: Conversion quality

None

read_document

Read various document formats including PDF, DOCX, DOC, HTML, MD, and more.

Parameters:

  • filePath (string, required) - Document path to read

  • extractMetadata (boolean, optional) - Extract document metadata, defaults to false

  • preserveFormatting (boolean, optional) - Preserve formatting (HTML output), defaults to false

write_document

Write content to document files in specified formats.

Parameters:

  • content (string, required) - Content to write

  • outputPath (string, optional) - Output file path (auto-generated if not provided)

  • encoding (string, optional) - File encoding, defaults to utf-8

convert_document

Convert documents between formats with enhanced style preservation.

Parameters:

  • inputPath (string, required) - Input file path

  • outputPath (string, optional) - Output file path (auto-generated if not provided)

  • preserveFormatting (boolean, optional) - Preserve formatting, defaults to true

  • useInternalPlaywright (boolean, optional) - Use built-in Playwright for PDF conversion, defaults to false

convert_docx_to_pdf

Convert DOCX to PDF with automatic watermark addition (if configured).

Parameters:

  • docxPath (string, required) - DOCX file path

  • outputPath (string, optional) - Output PDF path (auto-generated if not provided)

  • addQrCode (boolean, optional) - Whether to add QR code, defaults to false

  • preserveFormatting (boolean, optional) - Preserve original formatting, defaults to true

  • chineseFont (string, optional) - Chinese font, defaults to Microsoft YaHei

convert_markdown_to_pdf

Convert Markdown to PDF with automatic watermark addition (if configured).

Parameters:

  • markdownPath (string, required) - Markdown file path

  • outputPath (string, optional) - Output PDF path (auto-generated if not provided)

  • theme (string, optional) - Theme style, defaults to "github"

  • includeTableOfContents (boolean, optional) - Include table of contents, defaults to false

  • addQrCode (boolean, optional) - Whether to add QR code, defaults to false

convert_markdown_to_html

Convert Markdown to HTML.

Parameters:

  • markdownPath (string, required) - Markdown file path

  • outputPath (string, optional) - Output HTML path (auto-generated if not provided)

  • theme (string, optional) - Theme style, defaults to "github"

  • includeTableOfContents (boolean, optional) - Include table of contents, defaults to false

convert_markdown_to_docx

Convert Markdown to DOCX.

Parameters:

  • markdownPath (string, required) - Markdown file path

  • outputPath (string, optional) - Output DOCX path (auto-generated if not provided)

convert_html_to_markdown

Convert HTML to Markdown.

Parameters:

  • htmlPath (string, required) - HTML file path

  • outputPath (string, optional) - Output Markdown path (auto-generated if not provided)

plan_conversion

🎯 Smart Conversion Planner - Analyze conversion requirements and generate optimal conversion plans.

Parameters:

  • sourceFormat (string, required) - Source file format (pdf, docx, html, markdown, md, txt, doc)

  • targetFormat (string, required) - Target file format (pdf, docx, html, markdown, md, txt, doc)

  • sourceFile (string, optional) - Source file path (for generating specific conversion parameters)

  • preserveStyles (boolean, optional) - Whether to preserve style formatting, defaults to true

  • includeImages (boolean, optional) - Whether to include images, defaults to true

  • theme (string, optional) - Conversion theme, defaults to github

  • quality (string, optional) - Conversion quality requirement (fast, balanced, high), defaults to balanced

process_pdf_post_conversion

Parameters:

  • playwrightPdfPath (string, required) - Generated PDF file path

  • targetPath (string, optional) - Target PDF file path (auto-generated if not provided)

  • addWatermark (boolean, optional) - Whether to add watermark, defaults to false

  • addQrCode (boolean, optional) - Whether to add QR code, defaults to false

  • watermarkImage (string, optional) - Watermark image path

  • qrCodePath (string, optional) - QR code image path

PDF Enhancement Tools

add_watermark

🎨 PDF Watermark Addition Tool - Add image or text watermarks to PDF documents.

Parameters:

  • pdfPath (string, required) - PDF file path

  • watermarkImage (string, optional) - Watermark image path (PNG/JPG)

  • watermarkText (string, optional) - Watermark text content

  • watermarkImageScale (number, optional) - Image scale ratio, defaults to 0.25

  • watermarkImageOpacity (number, optional) - Image opacity, defaults to 0.6

  • watermarkImagePosition (string, optional) - Image position, defaults to fullscreen

add_qrcode

📱 PDF QR Code Addition Tool - Add QR codes to PDF documents.

Parameters:

  • pdfPath (string, required) - PDF file path

  • qrCodePath (string, optional) - QR code image path

  • qrScale (number, optional) - QR code scale ratio, defaults to 0.15

  • qrOpacity (number, optional) - QR code opacity, defaults to 1.0

  • qrPosition (string, optional) - QR code position, defaults to bottom-center

  • addText (boolean, optional) - Whether to add explanatory text, defaults to true

System Requirements

System Requirements

  • Node.js ≥ 18.0.0

  • Zero external system dependencies - All processing via npm packages

  • Optional Integration: playwright-mcp for enhanced PDF conversion

Core Technology Stack

  • pdf-lib - PDF operations and enhancement

  • word-extractor - DOCX document text extraction

  • marked - Markdown parsing and rendering

  • cheerio - HTML parsing and manipulation

  • docx - DOCX document generation

  • jszip - ZIP file processing

  • xml2js - XML parsing and conversion

  • Custom OOXML Parser - Advanced DOCX style preservation

Installation

# Global installation
npm install -g doc-ops-mcp

# Or using pnpm
pnpm add -g doc-ops-mcp

# Or using bun
bun add -g doc-ops-mcp

Architecture Components

  • MCP Server Core: Handles JSON-RPC 2.0 communication and tool registration

  • Smart Router: Routes requests to optimal processing modules

  • Conversion Engine: Contains specialized converters for different document types

  • Style Processor: Ensures style preservation during format conversion

  • Security Module: Provides path validation and content security handling

5. Open Source Licenses

Project License

  • This Project: MIT License

  • Compatibility: Available for commercial and non-commercial use

Third-Party Dependencies

Library

Version

License

Purpose

pdf-lib

^1.17.1

MIT

PDF document manipulation

word-extractor

^1.0.4

MIT

DOCX document text extraction

marked

^15.0.12

MIT

Markdown parsing and rendering

cheerio

^1.0.0-rc.12

MIT

HTML parsing and manipulation

docx

^9.5.1

Apache-2.0

DOCX document generation

jszip

^3.10.1

MIT

ZIP file processing

xml2js

^0.6.2

MIT

XML parsing and conversion

License Compatibility

  • Commercial Use: All dependencies support commercial use

  • Distribution: Free to distribute and modify

  • Patent Protection: Apache-2.0 provides patent protection

  • ⚠️ Notice: Original license notices must be retained

6. Future Roadmap

Core Features

  • 🔄 Enhanced Conversion Quality: Improve style preservation for complex documents

  • 📊 Excel Support: Complete Excel read/write and conversion functionality

  • 🎨 Template System: Support for custom document templates

  • 🔍 OCR Integration: Image text recognition capabilities

System Improvements

  • 🌐 Multi-language Support: Internationalization and localization

  • 🔐 Security Enhancements: Document encryption and access control

  • Performance Optimization: Large file handling and memory optimization

  • 🔌 Plugin System: Extensible processor architecture

Version Roadmap

  • v2.0: Complete Excel support and template system

  • v3.0: OCR integration and multi-language support

  • v4.0: Advanced security features and plugin system

7. Docker Deployment

Quick Start

Using Pre-built Image

# Pull the latest image
docker pull docops/doc-ops-mcp:latest

# Run with default configuration
docker run -d \
  --name doc-ops-mcp \
  -p 3000:3000 \
  docops/doc-ops-mcp:latest

Building from Source

# Clone the repository
git clone https://github.com/JefferyMunoz/doc-ops-mcp.git
cd doc-ops-mcp

# Build the Docker image
docker build -t doc-ops-mcp .

# Run the container
docker run -d \
  --name doc-ops-mcp \
  -p 3000:3000 \
  -v $(pwd)/documents:/app/documents \
  doc-ops-mcp

Docker Compose Deployment

Create a docker-compose.yml file:

version: '3.8'

services:
  doc-ops-mcp:
    image: docops/doc-ops-mcp:latest
    container_name: doc-ops-mcp
    ports:
      - "3000:3000"
    volumes:
      - ./documents:/app/documents
      - ./config:/app/config
    environment:
      - NODE_ENV=production
      - PORT=3000
    restart: unless-stopped
    
  # Optional: Add Nginx for reverse proxy
  nginx:
    image: nginx:alpine
    container_name: doc-ops-nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - doc-ops-mcp
    restart: unless-stopped

Environment Variables

Variable

Description

Default

PORT

Server port

3000

NODE_ENV

Environment mode

production

LOG_LEVEL

Logging level

info

MAX_FILE_SIZE

Maximum file size (MB)

50

Volume Mounts

Mount local directories for persistent storage:

# Documents directory for file processing
docker run -d \
  --name doc-ops-mcp \
  -p 3000:3000 \
  -v $(pwd)/documents:/app/documents \
  -v $(pwd)/output:/app/output \
  doc-ops-mcp

Docker Configuration Examples

Production Deployment

# Production setup with Docker Swarm
docker swarm init
docker stack deploy -c docker-compose.yml doc-ops

# Scale the service
docker service scale doc-ops_mcp=3

Health Checks

The container includes built-in health checks:

# Check container health
docker ps

# View health check logs
docker inspect --format='{{.State.Health.Status}}' doc-ops-mcp

# Manual health check
docker exec doc-ops-mcp curl -f http://localhost:3000/health || exit 1

8. Development Guide

Local Development

# Clone the repository
git clone https://github.com/your-org/doc-ops-mcp.git
cd doc-ops-mcp

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build the project
npm run build

# Run tests
npm test

Project Structure

src/
├── index.ts          # MCP server entry point
├── tools/            # Tool implementations
│   ├── documentConverter.ts
│   ├── pdfTools.ts
│   └── ...
├── types/            # Type definitions
└── utils/            # Utility functions

Adding New Tools

  1. Create a new tool file in src/tools/

  2. Implement the tool logic

  3. Register the tool in src/index.ts

  4. Add test cases

  5. Update documentation

9. Troubleshooting

Common Issues

  1. Port conflicts: Change the host port in docker-compose.yml

  2. Permission issues: Ensure volume mounts have correct permissions

  3. Memory issues: Increase Docker memory allocation

Debug Mode

# Run with debug logging
docker run -d \
  --name doc-ops-mcp \
  -p 3000:3000 \
  -e LOG_LEVEL=debug \
  doc-ops-mcp

# View logs
docker logs -f doc-ops-mcp

10. Contributing

How to Contribute

  1. Fork the Project

  2. Create a Feature Branch (git checkout -b feature/AmazingFeature)

  3. Commit Your Changes (git commit -m 'Add some AmazingFeature')

  4. Push to the Branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

Intellectual Property License

By submitting a Pull Request, you agree that all contributions submitted through Pull Requests will be licensed under the MIT License. This means:

  • You grant the project maintainers and users the right to use, modify, and distribute your contributions under the MIT License

  • You confirm that you have the right to make these contributions

  • You understand that your contributions will become part of the open source project

  • You waive any claims to exclusive ownership of the contributed code

If you cannot agree to these terms, please do not submit a Pull Request.

Code Standards

  • Use TypeScript

  • Follow ESLint configuration

  • Add appropriate tests

  • Update relevant documentation

Reporting Issues

  • Use GitHub Issues

  • Provide detailed error information and reproduction steps

  • Include system environment information

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

13 tools
add_qrcodeB

Add QR code to PDF documents with friendly text below. QR code must be an image file (PNG/JPG). Priority: user provided path > environment variable QR_CODE_IMAGE

ParametersJSON Schema
NameRequiredDescriptionDefault
pdfPathYesPDF file path
qrCodePathNoQR code image path (PNG/JPG). Has highest priority. If not provided, uses QR_CODE_IMAGE environment variable.
qrScaleNoQR code scale ratio
qrOpacityNoQR code opacity
qrPositionNobottom-center
addTextNoAdd friendly text below QR code
customTextNoCustom text (default: 'Scan QR code for more information')

TDQS

B3.1/5.0
Behavior2/5

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 mentions the priority rule for QR code paths, which is useful context, but lacks critical behavioral details: it doesn't specify whether this operation modifies the original PDF or creates a new file, what permissions or prerequisites are needed, potential side effects, or error handling. For a tool that likely mutates PDFs, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately concise with two sentences that front-load the core purpose and include a key behavioral detail (priority rule). There's no wasted verbiage, though it could be slightly more structured by explicitly separating purpose from usage guidelines.

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

Completeness2/5

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

Given the tool's complexity (7 parameters, likely mutates PDFs) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., success status, file path), potential errors, or important behavioral aspects like file handling. For a tool with this level of functionality, more context is needed to be fully helpful to an agent.

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

Parameters3/5

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

The schema description coverage is high at 86%, so the schema already documents most parameters well. The description adds minimal value beyond the schema: it reiterates that QR code must be an image file (PNG/JPG) and mentions the priority rule, but doesn't provide additional semantic context like how 'friendly text' is formatted or what 'scale ratio' means practically. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Add QR code to PDF documents with friendly text below.' It specifies the resource (PDF documents) and the action (add QR code), though it doesn't explicitly differentiate from sibling tools like 'add_watermark' or 'process_pdf_post_conversion' which might have overlapping PDF modification functions.

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

Usage Guidelines3/5

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

The description provides some usage context by stating 'Priority: user provided path > environment variable QR_CODE_IMAGE,' which helps understand parameter precedence. However, it doesn't explicitly guide when to use this tool versus alternatives like 'add_watermark' for other PDF modifications or 'convert_document' for format changes, leaving usage decisions implied rather than clearly defined.

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

add_watermarkA

Add watermarks to PDF documents. Supports both text and image watermarks. Priority: user text > user image > environment variable image > default text "doc-ops-mcp"

ParametersJSON Schema
NameRequiredDescriptionDefault
pdfPathYesPDF file path
watermarkImageNoWatermark image path (PNG/JPG). Has higher priority than environment variable but lower than watermarkText.
watermarkTextNoWatermark text content. Has highest priority. If not provided, will use image or default text "doc-ops-mcp".
watermarkImageScaleNoImage scale ratio
watermarkImageOpacityNoImage opacity
watermarkImagePositionNofullscreen

TDQS

A4.2/5.0
Behavior3/5

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 effectively describes the priority system for watermark sources (text > image > environment variable > default), which is crucial behavioral context. However, it doesn't mention whether this operation modifies the original PDF or creates a new file, potential file size impacts, or error conditions.

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 perfectly front-loaded with the core purpose, followed by supporting details about watermark types and priority system. Every sentence earns its place by providing essential information without redundancy or fluff.

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

Completeness4/5

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

For a tool with no annotations and no output schema, the description does well by explaining the core functionality and parameter interactions. However, it doesn't describe what the tool returns (e.g., path to watermarked PDF, success/failure status) or potential side effects, leaving some gaps in completeness.

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?

With 83% schema description coverage, the baseline is 3. The description adds significant value by explaining the priority hierarchy among watermarkText, watermarkImage, and fallback options, which clarifies the interaction between parameters beyond what the individual parameter descriptions provide in the schema.

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 specific action ('add watermarks') and resource ('PDF documents'), and distinguishes this tool from siblings by specifying its unique watermarking functionality. Unlike sibling tools focused on conversion, reading, writing, or QR codes, this tool is explicitly for watermarking PDFs.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool (for adding watermarks to PDFs) and implicitly distinguishes it from siblings that handle different document operations. However, it lacks explicit guidance on when NOT to use it or named alternatives for similar tasks.

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

convert_documentA

Convert documents between formats with enhanced style preservation. Output directory is controlled by OUTPUT_DIR environment variable. All output files will be automatically saved to the directory specified by OUTPUT_DIR with auto-generated names. ⚠️ IMPORTANT: For Markdown to HTML conversion with style preservation, use 'convert_markdown_to_html' tool instead for better results with themes and styling. For creating Word documents from content, use 'create_word_document' tool to avoid conversion loops.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputPathYesInput file path
targetFormatNoTarget format: pdf, html, docx, markdown, md, txt (optional, auto-detected from input if not specified)
preserveFormattingNoPreserve formatting
useInternalPlaywrightNoUse built-in Playwright for PDF conversion

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and adds valuable behavioral context: it discloses that output directory is controlled by OUTPUT_DIR environment variable, files are auto-saved with auto-generated names, and warns about conversion loops for Word documents. This goes beyond basic functionality to describe operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is well-structured with three focused sentences: core functionality, operational behavior, and usage guidance. Each sentence earns its place, though the warning emoji and formatting could be slightly more concise.

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

Completeness4/5

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

For a conversion tool with 4 parameters, 100% schema coverage, but no annotations or output schema, the description provides good completeness: it explains the core purpose, behavioral context (output handling), and clear usage guidelines. The main gap is lack of information about return values or error handling.

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

Parameters3/5

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 4 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool converts documents between formats with enhanced style preservation, providing a specific verb (convert) and resource (documents). It distinguishes from some siblings by mentioning specific alternatives, though not all sibling tools are addressed.

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?

The description provides explicit guidance on when to use alternative tools instead: 'convert_markdown_to_html' for Markdown to HTML with themes/styling and 'create_word_document' for creating Word documents from content. This clearly defines when-not-to-use scenarios with named alternatives.

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

convert_docx_to_pdfB

Enhanced DOCX to PDF conversion with perfect Word style replication and Playwright integration. Watermark can be added by setting addWatermark=true (uses WATERMARK_IMAGE environment variable or default text "doc-ops-mcp"). QR code can be added by setting addQrCode=true (requires QR_CODE_IMAGE environment variable). Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names.

ParametersJSON Schema
NameRequiredDescriptionDefault
docxPathYesDOCX file path to convert
preserveFormattingNoPreserve original formatting
chineseFontNoChinese font family to useMicrosoft YaHei
addWatermarkNoAdd watermark to PDF (uses WATERMARK_IMAGE environment variable or default text "doc-ops-mcp")
addQrCodeNoAdd QR code to PDF (requires QR_CODE_IMAGE environment variable)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that files are automatically saved to OUTPUT_DIR with auto-generated names, which is useful behavioral context. However, it doesn't mention error handling, performance characteristics, or what happens if environment variables are missing, leaving gaps 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.

Conciseness4/5

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

The description is appropriately sized with three sentences that efficiently cover conversion purpose, optional features, and output behavior. It's front-loaded with the core functionality, though some repetition with schema details slightly reduces efficiency.

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

Completeness3/5

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

For a 5-parameter mutation tool with no annotations and no output schema, the description is moderately complete. It covers the conversion process and output location but lacks details on error cases, return values, or integration with sibling tools, leaving room for improvement.

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

Parameters3/5

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 5 parameters thoroughly. The description adds minimal value by repeating some parameter details (e.g., watermark/QR code environment variables) but doesn't provide additional semantic context beyond what's in the schema.

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

Purpose4/5

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

The description clearly states the tool converts DOCX to PDF with style replication and Playwright integration, which is a specific verb+resource. However, it doesn't explicitly distinguish from sibling tools like 'convert_document' or 'convert_markdown_to_pdf', which appear to handle different conversion types.

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

Usage Guidelines2/5

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

The description mentions watermark and QR code capabilities but provides no guidance on when to use this tool versus alternatives like 'add_qrcode' or 'add_watermark' standalone tools. It lacks explicit when/when-not instructions or prerequisites for effective use.

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

convert_html_to_markdownB

Enhanced HTML to Markdown conversion with style preservation. Converts HTML files to clean Markdown format while preserving structure, links, images, tables, and formatting. Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlPathYesHTML file path to convert
preserveStylesNoPreserve HTML formatting and styles
includeCSSNoInclude CSS styles as comments in Markdown
debugNoEnable debug output

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses key behavioral traits: the tool saves files automatically to OUTPUT_DIR with auto-generated names, which is crucial operational context. However, it doesn't mention error handling, performance characteristics, or what happens if OUTPUT_DIR isn't set, leaving gaps in behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately sized with three sentences that each serve a purpose: stating the core functionality, describing preservation features, and explaining output behavior. It's front-loaded with the main purpose, though the second sentence could be more concise by combining structure and formatting mentions.

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

Completeness3/5

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

For a conversion tool with 4 parameters, 100% schema coverage, and no output schema, the description is moderately complete. It covers what the tool does and output behavior but lacks information about return values, error conditions, or performance expectations that would help an agent use it effectively in complex workflows.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter semantics beyond the schema, mentioning 'style preservation' which relates to preserveStyles parameter, but doesn't provide additional context about parameter interactions or practical implications of the boolean flags.

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's purpose with specific verbs ('converts HTML files to clean Markdown format') and resources ('HTML files'), distinguishing it from sibling tools like convert_markdown_to_html or convert_document by specifying the exact conversion direction and format preservation features.

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

Usage Guidelines2/5

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 convert_document or convert_markdown_to_html. It mentions output directory control via environment variable, but this is operational detail rather than usage context or exclusion criteria.

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

convert_markdown_to_docxA

Enhanced Markdown to DOCX conversion with professional styling and theme support. Preserves formatting, supports tables, lists, headings, and inline formatting with beautiful Word document output. Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names.

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownPathYesMarkdown file path to convert
themeNoTheme to applyprofessional
includeTableOfContentsNoGenerate table of contents
preserveStylesNoPreserve Markdown formatting and styles

TDQS

A3.8/5.0
Behavior4/5

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 effectively describes key behaviors: it preserves formatting, supports specific elements (tables, lists, headings), uses an output directory via environment variable, and auto-generates filenames. However, it does not mention error handling, file size limits, or performance considerations, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the core purpose and key features. However, the second sentence could be more streamlined, as it lists formatting elements redundantly (e.g., 'preserves formatting' and 'supports tables, lists, headings, and inline formatting' overlap slightly). Overall, it is efficient with minimal waste.

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

Completeness3/5

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

Given the complexity (conversion tool with multiple parameters) and no annotations or output schema, the description is moderately complete. It covers the main purpose, key features, and output behavior, but lacks details on error cases, return values, or advanced usage scenarios, which would be helpful for an AI agent.

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

Parameters3/5

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

The input schema has 100% description coverage, so the baseline is 3. The description adds minimal parameter semantics beyond the schema, mentioning theme support and output directory control, but does not elaborate on parameter interactions or provide additional context for the parameters listed in the schema.

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's purpose: converting Markdown files to DOCX format with professional styling and theme support. It specifies the exact transformation (Markdown to DOCX) and distinguishes it from sibling tools like convert_markdown_to_html and convert_markdown_to_pdf by focusing on DOCX output with styling features.

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

Usage Guidelines3/5

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

The description implies usage by mentioning theme support and output directory control, but it does not explicitly state when to use this tool versus alternatives like convert_markdown_to_pdf or create_word_document. It provides some context (e.g., for professional styling) but lacks clear exclusions or comparisons with siblings.

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

convert_markdown_to_htmlA

Enhanced Markdown to HTML conversion with beautiful styling and theme support. Supports GitHub, Academic, Modern, and Default themes with complete style preservation. Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names.

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownPathYesMarkdown file path to convert
themeNoTheme to applygithub
includeTableOfContentsNoGenerate table of contents
customCSSNoAdditional custom CSS styles

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: files are automatically saved to OUTPUT_DIR with auto-generated names, and it supports multiple themes. However, it doesn't cover error handling, performance, or what happens if OUTPUT_DIR is missing. It adds useful context but isn't comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately sized with three sentences that are front-loaded with the core purpose. Each sentence adds value: the first states the tool's function, the second details themes, and the third explains file handling. There's no wasted text, though it could be slightly more structured.

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

Completeness3/5

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

Given no annotations and no output schema, the description is moderately complete. It covers the tool's purpose, themes, and file-saving behavior, but lacks details on output format, error cases, or prerequisites. For a conversion tool with 4 parameters, it's adequate but has gaps in behavioral context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value beyond the schema, mentioning theme support and OUTPUT_DIR (which isn't a parameter but an environment variable). It doesn't explain parameter interactions or provide additional semantics, so the baseline 3 is appropriate.

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's purpose: 'Enhanced Markdown to HTML conversion with beautiful styling and theme support.' It specifies the verb ('conversion'), resource ('Markdown to HTML'), and distinguishes from siblings like 'convert_markdown_to_docx' or 'convert_markdown_to_pdf' by focusing on HTML output with styling features.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: for converting Markdown to HTML with styling and theme options. It doesn't explicitly state when not to use it or name alternatives, but the context implies it's for HTML output specifically, not other formats like DOCX or PDF offered by siblings.

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

convert_markdown_to_pdfA

Enhanced Markdown to PDF conversion with beautiful styling and theme support. Watermark can be added by setting addWatermark=true (uses WATERMARK_IMAGE environment variable or default text "doc-ops-mcp"). QR code can be added by setting addQrCode=true (requires QR_CODE_IMAGE environment variable). Requires playwright-mcp for final PDF generation. Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names.

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownPathYesMarkdown file path to convert
themeNoTheme to applygithub
includeTableOfContentsNoGenerate table of contents
addWatermarkNoAdd watermark to PDF (uses WATERMARK_IMAGE environment variable or default text "doc-ops-mcp")
addQrCodeNoAdd QR code to PDF (requires QR_CODE_IMAGE environment variable)

TDQS

A4.1/5.0
Behavior4/5

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 effectively describes key behaviors: automatic file saving to OUTPUT_DIR with auto-generated names, dependencies on environment variables (WATERMARK_IMAGE, QR_CODE_IMAGE, OUTPUT_DIR), and the requirement for playwright-mcp. However, it doesn't mention error handling, performance characteristics, or whether the operation is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the core purpose. However, it could be more structured—environment variable details are scattered throughout, and the sentence about output directory placement feels tacked on. Most sentences earn their place, but minor reorganization would improve clarity.

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

Completeness4/5

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

For a conversion tool with no annotations and no output schema, the description does well to cover key behaviors like file handling and dependencies. It explains what happens to the output (saved automatically) and prerequisites (playwright-mcp). The main gap is lack of information about return values or error responses, which would be helpful given the absence of an output schema.

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

Parameters3/5

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 parameters thoroughly. The description adds minimal value beyond the schema—it repeats watermark and QR code environment variable details but doesn't provide additional context about parameter interactions or usage examples. Baseline 3 is appropriate when the schema does most of the work.

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's purpose: converting Markdown to PDF with enhanced styling and theme support. It specifies the exact transformation (Markdown→PDF) and distinguishes itself from siblings like convert_markdown_to_docx or convert_markdown_to_html by focusing on PDF output with specific features like watermarks and QR codes.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: for PDF conversion with styling options. It mentions alternatives implicitly by noting requirements like playwright-mcp and environment variables, but doesn't explicitly compare to siblings like convert_docx_to_pdf or convert_markdown_to_docx, which would have strengthened the guidance.

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

create_word_documentB

Create a Word document directly from content with beautiful formatting. This tool is specifically designed for creating Word documents from scratch, avoiding conversion loops. Supports HTML content with automatic styling and formatting. Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to write to Word document (supports HTML)
titleNoDocument titleDocument
preserveFormattingNoPreserve HTML formatting and styles

TDQS

B3.4/5.0
Behavior3/5

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 files are automatically saved to OUTPUT_DIR with auto-generated names, which is useful behavioral context. However, it lacks details on permissions, error handling, rate limits, or what happens if OUTPUT_DIR is missing. The description doesn't contradict annotations (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is front-loaded with the main purpose and key features (HTML support, automatic formatting). It uses four sentences efficiently, with no redundant information. However, the last sentence about OUTPUT_DIR could be integrated more smoothly, and it's slightly verbose in explaining file saving.

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

Completeness3/5

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

Given no annotations and no output schema, the description provides basic purpose and behavioral details (auto-saving, HTML support). It covers the core functionality but lacks information on return values, error cases, or advanced usage scenarios. For a creation tool with 3 parameters, it's adequate but has clear gaps in completeness.

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

Parameters3/5

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 parameters. The description adds that content supports HTML and mentions automatic styling/formatting, which aligns with the schema's preserveFormatting parameter. It doesn't provide additional syntax or format details beyond the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool creates Word documents from content with formatting, specifying it's for creating from scratch and supports HTML. It distinguishes from siblings like convert_document or write_document by emphasizing direct creation without conversion loops. However, it doesn't explicitly contrast with all siblings (e.g., convert_markdown_to_docx).

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

Usage Guidelines3/5

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

The description implies usage for creating Word documents from scratch with HTML content, avoiding conversion loops. It doesn't explicitly state when not to use it or name alternatives among siblings, though the context suggests it's for direct creation rather than conversion tools. No prerequisites or exclusions are mentioned.

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

plan_conversionA

🎯 MANDATORY FIRST STEP - Smart Document Conversion Planner - ⚠️ CRITICAL: This tool MUST be executed BEFORE any document conversion operation! When users request any format conversion (e.g., 'convert MD to PDF', 'DOCX to HTML'), you MUST call this tool first to get the optimal conversion plan, then follow the plan's steps exactly. This ensures proper conversion workflow and handles complex multi-step conversions. For PDF conversions, note that playwright-mcp integration is required for final PDF generation, followed by process_pdf_post_conversion for watermarks/QR codes. Supports all format conversion path planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceFormatYesSource file format (e.g.: pdf, docx, html, markdown, md, txt)
targetFormatYesTarget file format (e.g.: pdf, docx, html, markdown, md, txt)
sourceFileNoSource file path (optional, used to generate specific conversion parameters)
preserveStylesNoWhether to preserve style formatting
includeImagesNoWhether to include images
themeNoConversion theme (applicable to HTML/DOCX output)github
qualityNoConversion quality requirementsbalanced

TDQS

A4.2/5.0
Behavior4/5

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 effectively communicates critical behavioral traits: the mandatory sequencing requirement ('MUST be executed BEFORE'), the workflow nature ('get the optimal conversion plan, then follow the plan's steps exactly'), and integration dependencies ('playwright-mcp integration is required for final PDF generation'). However, it doesn't mention rate limits, error handling, or performance characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is appropriately front-loaded with the critical 'MANDATORY FIRST STEP' information, but contains some redundancy (e.g., repeating format conversion examples) and could be more streamlined. The emojis and formatting add visual emphasis but don't necessarily improve conciseness. Most sentences earn their place, but some phrasing could be tightened.

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

Completeness4/5

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

Given the complexity of a 7-parameter planning tool with no annotations and no output schema, the description does a good job explaining the tool's role in the workflow, mandatory sequencing, and integration points. However, it doesn't describe what the output plan looks like or how to interpret it, which is a significant gap since there's no output schema to compensate.

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

Parameters3/5

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

The schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions and enums. It mentions format conversion generally but provides no additional syntax, format details, or parameter usage guidance beyond the structured schema.

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 explicitly states the tool's purpose as a 'Smart Document Conversion Planner' that must be executed before any document conversion operation. It specifies the verb ('plan') and resource ('conversion'), and clearly distinguishes it from sibling tools by emphasizing it's a mandatory first step rather than a direct conversion tool like convert_document or convert_markdown_to_pdf.

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?

The description provides explicit usage guidelines: 'MUST be executed BEFORE any document conversion operation' and 'When users request any format conversion... you MUST call this tool first.' It also mentions specific follow-up tools for PDF conversions (playwright-mcp integration and process_pdf_post_conversion), giving clear alternatives and sequencing instructions.

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

process_pdf_post_conversionA

🔧 PDF Post-Processing Unified Tool - ⚠️ IMPORTANT: This is a necessary follow-up step for playwright-mcp's browser_pdf_save command! After using playwright-mcp to generate PDF, this tool must be called immediately to complete final processing. Features include: 1) Automatically move PDF from playwright temporary path to target location 2) Uniformly add watermarks and QR codes 3) Clean up temporary files. Workflow: playwright-mcp:browser_pdf_save → doc-ops-mcp:process_pdf_post_conversion

ParametersJSON Schema
NameRequiredDescriptionDefault
playwrightPdfPathYesPDF file path generated by playwright-mcp (usually in temporary directory)
targetPathNoTarget PDF file path (optional, will be auto-generated if not provided). If not absolute path, will be resolved relative to OUTPUT_DIR environment variable
addWatermarkNoWhether to add watermark (will be automatically added if WATERMARK_IMAGE environment variable is set)
addQrCodeNoWhether to add QR code (will be automatically added if QR_CODE_IMAGE environment variable is set)
watermarkImageNoWatermark image path (overrides environment variable)
watermarkTextNoWatermark text content
watermarkImageScaleNoWatermark image scale ratio
watermarkImageOpacityNoWatermark image opacity
watermarkImagePositionNoWatermark image positionfullscreen
qrCodePathNoQR code image path (overrides environment variable)
qrScaleNoQR code scale ratio
qrOpacityNoQR code opacity
qrPositionNoQR code positionbottom-center
customTextNoCustom text below QR codeScan QR code for more information

TDQS

A4.3/5.0
Behavior4/5

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 effectively describes the tool's workflow dependencies, mandatory sequencing, and three core behaviors (move, add features, clean up). However, it doesn't mention potential side effects like file overwriting, permission requirements, or error handling for missing environment variables.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately sized and front-loaded with the most critical information (workflow dependency). However, the emoji usage and formatting (🔧, ⚠️) add visual noise without semantic value, and the numbered feature list could be more concise. Every sentence earns its place by conveying essential workflow information.

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

Completeness4/5

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

Given the tool's complexity (14 parameters, no annotations, no output schema), the description provides good contextual completeness by explaining the mandatory workflow sequence and core operations. However, it doesn't describe the return value or error conditions, which would be helpful given the absence of an output schema and annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description doesn't add meaningful parameter semantics beyond what's already documented in the schema - it mentions watermarks and QR codes generally but provides no additional details about parameter interactions, defaults, or environment variable precedence that aren't already in the schema descriptions.

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's purpose as a 'necessary follow-up step' that performs three specific functions: moving PDFs, adding watermarks/QR codes, and cleaning temporary files. It explicitly distinguishes this from sibling tools by mentioning it's specifically for post-processing PDFs generated by playwright-mcp, unlike general conversion or watermarking tools in the sibling list.

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?

The description provides explicit usage guidance: it must be called 'immediately' after playwright-mcp's browser_pdf_save command, creating a clear workflow dependency. It also distinguishes when to use this tool versus alternatives by positioning it as a required follow-up to a specific playwright-mcp command, not as a standalone watermarking or QR code tool.

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

read_documentC

Read various document formats (DOCX, DOC, TXT, MD, HTML, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesDocument path to read
extractMetadataNoExtract document metadata
preserveFormattingNoPreserve formatting (HTML output)

TDQS

C2.9/5.0
Behavior2/5

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 mentions reading various formats but doesn't specify what 'read' entails (e.g., returning text content, handling errors for unsupported formats, or performance considerations). It lacks details on permissions needed, rate limits, or output behavior, which is a significant gap for a tool with no 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('read') and resource ('various document formats'), and the list of formats is concise. Every part of the sentence earns its place by clarifying scope.

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

Completeness2/5

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

Given no annotations, no output schema, and a tool that reads documents (which could involve complex format handling), the description is incomplete. It doesn't explain what the tool returns (e.g., text content, metadata structure), error conditions, or limitations (e.g., file size constraints). For a tool with 3 parameters and potential format-specific behaviors, more context is needed.

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

Parameters3/5

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 three parameters (filePath, extractMetadata, preserveFormatting). The description adds no additional meaning about parameters, such as format-specific behaviors or how 'preserveFormatting' interacts with different file types. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb 'read' and the resource 'various document formats', listing specific file types (DOCX, DOC, TXT, MD, HTML, etc.). It distinguishes from sibling tools like 'write_document' and 'convert_document' by focusing on reading rather than writing or conversion. However, it doesn't explicitly differentiate from all siblings (e.g., 'process_pdf_post_conversion' might also involve reading).

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

Usage Guidelines2/5

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 choose this over 'convert_document' for format handling, or when to use it in conjunction with other tools like 'add_watermark'. There's no context about prerequisites, such as file accessibility or format limitations beyond the listed types.

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

write_documentC

Write content to document files in specified formats. Output directory is controlled by OUTPUT_DIR environment variable. Files will be automatically saved to OUTPUT_DIR with auto-generated names based on content type (HTML, Markdown, or plain text). Supports intelligent format detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to write
encodingNoFile encodingutf-8
titleNoDocument title (optional, used for filename generation)
formatNoForce specific format: html, md, txt, docx (optional, auto-detected if not specified)

TDQS

C2.9/5.0
Behavior2/5

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 reveals that files are automatically saved to OUTPUT_DIR with auto-generated names and supports format detection, which is helpful. However, it lacks critical details: it doesn't specify whether this is a write-only operation (no read-back), what happens if OUTPUT_DIR doesn't exist, potential file overwriting risks, or error handling. For a file-writing tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is appropriately concise with three sentences that efficiently cover the core functionality, output behavior, and format support. It's front-loaded with the main purpose and avoids unnecessary repetition. However, the third sentence about 'intelligent format detection' could be integrated more smoothly, slightly affecting flow.

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

Completeness3/5

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

Given the tool's complexity (file writing with multiple parameters), lack of annotations, and no output schema, the description is moderately complete. It covers the basic operation and output directory behavior but misses key contextual details like error handling, file naming specifics, or interaction with sibling tools. It's adequate for a simple write operation but lacks depth for robust agent use.

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

Parameters3/5

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 four parameters thoroughly. The description adds marginal value by mentioning 'auto-generated names based on content type' and 'intelligent format detection,' which loosely relates to the 'format' and 'title' parameters but doesn't provide additional syntax or format details beyond what the schema specifies. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Write content to document files in specified formats.' It specifies the action (write), resource (document files), and scope (multiple formats). However, it doesn't explicitly differentiate from sibling tools like 'create_word_document' or 'convert_document', which reduces it from 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.

Usage Guidelines2/5

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

The description provides minimal usage guidance. It mentions that files are saved to OUTPUT_DIR with auto-generated names, but offers no explicit advice on when to use this tool versus alternatives like 'create_word_document' or 'convert_document' from the sibling list. There's no mention of prerequisites or when-not-to-use scenarios.

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.

  1. 13 tool updates
    • First observedadd_qrcode
    • First observedadd_watermark
    • First observedconvert_document
    • First observedconvert_docx_to_pdf
    • First observedconvert_html_to_markdown
    • First observedconvert_markdown_to_docx
    • First observedconvert_markdown_to_html
    • First observedconvert_markdown_to_pdf
    • First observedcreate_word_document
    • First observedplan_conversion
    • First observedprocess_pdf_post_conversion
    • First observedread_document
    • First observedwrite_document

TDQS

B3.4/5.0
Disambiguation3/5

The tool set has clear functional distinctions between major categories (conversion, enhancement, planning, reading/writing), but there is significant overlap and confusion within conversion tools. For example, 'convert_document' is a general tool that overlaps with specific converters like 'convert_markdown_to_html', and the descriptions explicitly warn against using it for certain tasks, creating ambiguity about when to choose which tool. The planning and post-processing tools have distinct purposes but add complexity to the workflow.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., 'add_qrcode', 'convert_document', 'read_document'), which is clear and predictable. However, there are minor deviations: 'plan_conversion' uses a noun_verb structure, and 'process_pdf_post_conversion' is a longer, less standard name. Overall, the naming is mostly consistent and readable, with only a few outliers.

Tool Count4/5

With 13 tools, the count is reasonable for a document operations server covering conversion, enhancement, and management tasks. It's slightly on the higher side but justified by the domain complexity. However, some tools like 'plan_conversion' and 'process_pdf_post_conversion' add procedural steps that might inflate the count unnecessarily, making it borderline heavy but still appropriate.

Completeness4/5

The tool surface covers a wide range of document operations, including reading, writing, converting between multiple formats, adding watermarks/QR codes, and planning workflows. There are no obvious major gaps for core document handling. However, the reliance on external tools like 'playwright-mcp' for PDF generation and the need for mandatory planning steps introduce dependencies that could limit standalone completeness, though the server itself provides good coverage.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

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/Tele-AI/doc-ops-mcp'

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