Huoshui File Converter
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Huoshui File Converterconvert notes.md to PDF"
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.
Huoshui File Converter
A secure MCP (Model Context Protocol) server for document format conversion within a specified working directory.
Features
๐ Sandbox Security: All operations restricted to a configured working directory
๐ Format Support: Convert between Markdown, DOCX, HTML, PDF, and TXT
๐ MCP Integration: Full MCP protocol support with prompts, resources, and tools
โ๏ธ Flexible Configuration: CLI arguments, environment variables, or current directory
๐ Smart Detection: Intelligent file format detection by content analysis
Related MCP server: doc-ops-mcp
Quick Start
Installation
Option 1: From MCP Registry (Recommended)
This server is available in the Model Context Protocol Registry. Install it using your MCP client.
mcp-name: io.github.huoshuiai42/huoshui-file-converter
Option 2: Using uvx
uvx huoshui-file-converterOption 3: Using pip
pip install huoshui-file-converterBasic Usage
# Use current directory
uvx huoshui-file-converter
# Specify working directory (recommended)
uvx huoshui-file-converter --dir "/path/to/documents"
# Short form
uvx huoshui-file-converter -d "~/Documents"MCP Client Configuration
For Claude Desktop or other MCP clients:
{
"mcpServers": {
"huoshui-converter": {
"command": "uvx",
"args": ["huoshui-file-converter", "--dir", "/Users/yourname/Documents"]
}
}
}Configuration Options
Priority Order
CLI Argument (highest priority):
--diror-dEnvironment Variable:
HUOSHUI_WORKING_DIRSmart Default: Documents folder if current directory is problematic
Current Directory (fallback)
Examples
# CLI argument (best for MCP clients)
uvx huoshui-file-converter --dir "/project/docs"
# Environment variable
export HUOSHUI_WORKING_DIR="/project/docs"
uvx huoshui-file-converter
# Current directory fallback
cd /project/docs
uvx huoshui-file-converterSupported Conversions
From | To |
Markdown | DOCX, HTML, PDF |
DOCX | Markdown, HTML, PDF |
HTML | Markdown, DOCX, PDF |
TXT | Markdown, DOCX, HTML, PDF |
MCP Tools & Resources
Tools
convert_document: Convert files between formatsdetect_format: Intelligent format detection
Resources
file_list: Browse directory contents (optimized for large directories)limit: Control number of files shown (default: 100)supported_only: Show only convertible files
file_get: Get detailed file informationconversion_capability_list: List supported conversions
Prompts
role_and_rules: AI assistant behavior guidelines
Performance Features
Fast Directory Listing: Extension-based format detection for large directories
Smart File Limits: Default 100-file limit prevents UI freezing
Large File Handling: Files >50MB are marked and handled specially
Selective Display: Option to show only supported file formats
Memory Efficient: Avoids reading file contents during directory browsing
Security Features
Path Validation: Prevents directory traversal attacks
Working Directory Restriction: All operations sandboxed to configured directory
Startup Validation: Checks directory existence and permissions
Relative Path Enforcement: Absolute paths are rejected
Command Line Options
$ uvx huoshui-file-converter --help
usage: huoshui-file-converter [-h] [--dir PATH] [--version]
Huoshui Document Converter - MCP Server for file conversion within a working directory
options:
-h, --help show this help message and exit
--dir PATH, -d PATH
Working directory for file operations (default: current directory or HUOSHUI_WORKING_DIR env var)
--version, -v show program's version number and exit
Examples:
uvx huoshui-file-converter # Use current directory
uvx huoshui-file-converter --dir /docs # Use specific directory
uvx huoshui-file-converter -d ./project # Use relative directory
Configuration Priority:
1. CLI argument (--dir/-d)
2. Environment variable (HUOSHUI_WORKING_DIR)
3. Current working directoryError Handling
The server validates the working directory on startup:
โ
Working directory configured: /Users/name/Documents
๐ Source: CLI argumentCommon errors and solutions:
Error | Solution |
Directory not found | Create directory or fix path |
No write access | Check permissions ( |
Path outside sandbox | Use relative paths only |
Development
Requirements
Python 3.8+
pypandoc
pandoc (system dependency)
LaTeX (for PDF conversion)
Testing
# Test configuration
uvx huoshui-file-converter --dir "/tmp/test"
# Check startup messages
# โ
Working directory configured: /tmp/test
# ๐ Source: CLI argumentDocumentation
License
[Your license here]
Available Tools
3 toolsconvert_documentA
Converts a specified file to a different format. The new file is saved in the same directory as the original.
Args: file_path: File path (absolute or relative to home directory) to_format: The target format to convert the file into
Returns: Dictionary with new_file_path key containing the absolute path of converted file
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | File path (absolute or relative to home directory) | |
| to_format | Yes | Target format (docx, markdown, html) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the converted file is saved in the same directory, which is useful. However, it does not mention error handling, permissions, or the range of supported conversions beyond the three formats listed in the schema.
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 concise with a clear structure (intro, args, returns). It is efficient but could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return value and the location of the new file, which is helpful given no output schema. However, it lacks details on error handling and allowed conversions, which limits completeness for an agent.
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 already provides full descriptions for both parameters (file_path and to_format) with 100% coverage. The description adds no new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts a file to a different format and saves the new file in the same directory, distinguishing it from siblings like detect_format and file_get.
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?
No explicit guidance on when to use this tool versus alternatives (detect_format, file_get). The description implies conversion use case but does not provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_formatA
Intelligently detects a file's true format by inspecting its contents, which is more reliable than trusting a file extension.
Args: file_path: File path (absolute or relative to home directory)
Returns: Dictionary with format key containing the detected file format
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | File path (absolute or relative to home directory) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses content inspection and return dictionary with format key; no annotations needed to supplement, but could mention if there are any limitations.
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?
Concise and well-structured with Args/Returns sections; every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, description fully explains purpose, inputs, and output; no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description repeats the parameter info, adding no new semantic depth beyond what the schema provides.
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?
Clearly states it detects a file's true format by inspecting contents, distinguishing it from siblings convert_document (converts) and file_get (retrieves).
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?
Describes when to use it (for reliable format detection) but no explicit when-not or alternatives; adequate but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_getB
Retrieves detailed information about a single file.
Args: path: File path (absolute or relative to home directory)
Returns: File resource with detailed information
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path (absolute or relative to home directory) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states it retrieves file info but doesn't describe what happens on errors, permissions needed, or return format details. The 'Returns' line is vague.
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 two clear sections: purpose and parameter/return. No unnecessary words, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and no output schema, the description provides basic information but lacks details on what constitutes 'detailed information', error handling, or any edge cases. It is adequate but not thorough.
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 input schema has 100% coverage for the path parameter with a description. The description's Args section duplicates that info without adding new semantics. Baseline 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 clearly states it retrieves detailed information about a single file. The verb 'Retrieves' and resource 'detailed information about a single file' are specific. Sibling tools are for conversion and format detection, so purpose is distinct.
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?
No guidance on when to use this tool versus alternatives or when not to use it. There is no mention of prerequisites or context for choosing this over siblings.
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.
3 tool updates
v0.1.1- First observed
convert_document - First observed
detect_format - First observed
file_get
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: file conversion, format detection, and file info retrieval. No overlap or ambiguity.
All tool names follow a consistent verb_noun snake_case pattern: convert_document, detect_format, file_get.
With 3 tools, the surface is well-scoped for a file conversion utility. Each tool earns its place without being overly sparse.
Covers core conversion workflow (detect + convert + info). Minor omissions like listing supported formats or batch conversion, but sufficient for common tasks.
Maintenance
Related MCP Connectors
Document-to-Markdown MCP server โ convert PDF, Office and HTML into LLM-ready Markdown.
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Generate PDF, Word (.docx) and PowerPoint (.pptx) documents from Markdown over MCP.
HTML-to-PDF MCP server โ render pixel-faithful PDFs from HTML.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for seamless document format conversion using Pandoc, supporting Markdown, HTML, PDF, DOCX (.docx), csv and more.1580MIT
- AlicenseBqualityDmaintenanceA universal MCP server for document processing, conversion, and automation. Handle PDF, DOCX, HTML, Markdown, and more through a unified API and toolset.1316 npm139MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that converts Markdown text to DOCX format using an external conversion service. It supports custom templates, multi-language output, and provides flexible file handling for both local and cloud-based deployments.7MIT
- AlicenseNot gradedqualityCmaintenanceA production-ready MCP server for converting documents and files to Markdown using Microsoft MarkItDown.MIT