MCP Markdown Conversion Server
# MCP Server To Markdown 
[](https://twitter.com/FradSer)
[](https://smithery.ai/server/@FradSer/mcp-server-to-markdown)
English | [简体中文](README.zh-CN.md)
A powerful Model Context Protocol (MCP) server that leverages Cloudflare AI services to convert various file formats into Markdown descriptions. This server provides a standardized interface for seamless file conversion and description generation.
## Key Features
- Seamless integration with Cloudflare AI services
- Efficient Markdown description generation
- Comprehensive file format support
- Native Cloudflare tomarkdown API integration
- User-friendly MCP interface
- Cross-platform compatibility
## Supported File Formats
| Category | File Extensions |
|----------|----------------|
| Documents | .pdf |
| Images | .jpeg, .jpg, .png, .webp, .svg |
| Web Content | .html |
| Data | .xml, .csv |
| Spreadsheets | .xlsx, .xlsm, .xlsb, .xls, .et, .ods, .numbers |
## System Requirements
- Node.js 18 or later
- Valid Cloudflare API Token
- Active Cloudflare Account ID
## Installation
### Installing via Smithery
To install Markdown转换服务器 for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@FradSer/mcp-server-to-markdown):
```bash
npx -y @smithery/cli install @FradSer/mcp-server-to-markdown --client claude
```
### Manual Installation
Install globally using npm:
```bash
npm install -g mcp-server-to-markdown
```
## MCP Client Configuration
### Cursor Integration
1. Navigate to Cursor settings
2. Select "MCP" from the sidebar
3. Choose "Add new global MCP server"
4. Apply the following configuration:
```json
{
"mcpServers": {
"to-markdown": {
"command": "mcp-server-to-markdown",
"args": [
"CLOUDFLARE_API_TOKEN": "your_api_token"
"CLOUDFLARE_ACCOUNT_ID": "your_account_id"
]
}
}
}
```
### Claude Desktop Setup
Add the following to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"to-markdown": {
"command": "mcp-server-to-markdown",
"args": [
"CLOUDFLARE_API_TOKEN": "your_api_token"
"CLOUDFLARE_ACCOUNT_ID": "your_account_id"
]
}
}
}
```
### ChatWise Configuration
1. Launch ChatWise
2. Access Settings
3. Select Tools section
4. Click "+" to add new tool
5. Configure with these parameters:
- Type: `stdio`
- ID: `to-markdown`
- Command: `mcp-server-to-markdown`
- Args:
```
CLOUDFLARE_API_TOKEN=your_api_token
CLOUDFLARE_ACCOUNT_ID=your_account_id
```
## API Reference
### to-markdown Tool
Converts various file formats to Markdown descriptions.
**Input Parameters:**
- `filePaths`: Array<string> (required) - List of file paths to process
**Response Structure:**
```json
[
{
"filename": "example.pdf",
"mimeType": "application/pdf",
"description": "Generated Markdown description",
"tokens": 123
}
]
```
## Development Guide
### Getting Started
1. Clone and setup environment:
```bash
git clone <repository-url>
cd mcp-server-to-markdown
cp .env.example .env
```
2. Configure Cloudflare credentials:
```plaintext
CLOUDFLARE_API_TOKEN=your_api_token
CLOUDFLARE_ACCOUNT_ID=your_account_id
```
3. Install dependencies and build:
```bash
npm install
npm run build
```
### Project Structure
```
.
├── src/ # Source code
├── dist/ # Compiled output
├── types.ts # Type definitions
└── .env # Environment configuration
```
### Available Scripts
- `npm run build` - Build TypeScript code
- `npm run inspect` - Run with MCP inspector
## Usage Example
```typescript
const result = await toMarkdown({
filePaths: [
"/path/to/document.pdf",
"/path/to/image.jpg"
]
});
```
## License
MIT License
This project is maintained by [Frad LEE](https://twitter.com/FradSer)
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or overlap between tools. The single tool 'to-markdown' has a clearly defined and distinct purpose: converting various file formats to markdown descriptions.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'to-markdown' follows a clear verb-object pattern that is appropriate for its function.
A single tool is too few for a server with a broad scope like 'Markdown Conversion Server' that handles multiple file types. This thin surface may force agents to rely on this one tool for all conversion tasks, lacking specialized operations for different formats or scenarios.
The tool set is severely incomplete for the server's purpose. While 'to-markdown' covers conversion, there are obvious gaps such as no tools for validating markdown, handling conversion errors, or providing metadata about supported formats, which limits agent workflows.