Markitdown MCP服务器执行器
 
一个Apify Actor,为以下对象提供模型上下文协议(MCP)服务器 标记下来,微软的轻量级Python实用程序,用于将各种文件格式转换为Markdown。
概述
此Actor将Markitdown MCP服务器包装为Apify Actor,使其易于部署和用作按事件付费服务。Markitdown将各种文件格式转换为Markdown,使其适用于大型语言模型(LLM)和文本分析管道。
支持的文件格式
- 文件:PDF、PowerPoint、Word、Excel
- 媒体:图像(带EXIF元数据和OCR)、音频(带转录)
- Web内容:HTML、YouTube网址
- 数据格式:CSV、JSON、XML
- 档案:ZIP文件、EPub
特性
- MCP协议:实现与MCP客户端无缝集成的模型上下文协议
- 可流式HTTP传输:使用现代可流式HTTP传输进行高效通信
- 按活动付费:仅通过Apify的按事件付费系统对实际工具使用收费
- 会话管理:自动会话超时和不活动后的清理
- 待机模式:在Apify的待机模式下运行,以实现即时可用性
运作原理
Actor运行一个代理服务器,该服务器:
- 通过STDIO传输连接到Markitdown MCP服务器
- 在以下位置公开可流式传输的HTTP端点
/mcp - 在客户端和Markitdown服务器之间转发MCP请求/响应
- 通过Apify的按事件付费系统收取工具使用费
可用工具
convert_to_markdown
将各种文件格式转换为Markdown。
参数:
uri(string):要转换的文件的URI。支持:
- http:// 和 https:// -远程文件 - file:// -本地文件 - data: -数据URI
例子:
{
"uri": "https://example.com/document.pdf"
}用法
1.部署Actor
将此Actor部署到Apify或在待机模式下在本地运行它。
2.配置您的MCP客户端
将以下配置添加到您的MCP客户端(例如,VS Code、Claude Desktop):
{
"mcpServers": {
"markitdown-mcp-server": {
"type": "http",
"url": "https://YOUR_ACTOR_URL/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}3.使用工具
配置后,您可以使用 convert_to_markdown MCP客户端中的工具:
Convert this PDF to markdown: https://example.com/document.pdf环境变量
SESSION_TIMEOUT_SECS(默认值:300):终止空闲会话前的会话超时(秒)
定价
Actor使用Apify的按事件付费系统,费率如下(可在中配置 .actor/pay_per_event.json):
- CONVERT_TO_MARKDOWN:每次转换0.01美元
- 工具列表:每次上市0.0001美元
- 资源列表:每次上市0.0001美元
- RESOURCE_READ:每次阅读0.001美元
- 提示列表:每次上市0.0001美元
- PROMPT_GET:每次0.001美元
地方发展
先决条件
- Python 3.10或更高版本
- 依赖管理诗
- Docker(可选,用于容器化开发)
安装
- 克隆存储库:
git clone https://github.com/Yash-Kavaiya/Markitdown-MCP-actor.git
cd Markitdown-MCP-actor- 安装依赖项:
poetry install- 在本地运行Actor:
poetry run python -m src在待机模式下运行
要在待机模式下运行Actor(MCP服务器操作所需):
export APIFY_META_ORIGIN=STANDBY
export ACTOR_STANDBY_URL=http://localhost:5001
poetry run python -m srcMCP端点将在以下位置可用: http://localhost:5001/mcp
项目结构
Markitdown-MCP-actor/
├── .actor/ # Apify Actor configuration
│ ├── actor.json # Actor metadata and settings
│ ├── pay_per_event.json # Pricing configuration
│ ├── Dockerfile # Docker image definition
│ └── .actorignore # Files to exclude from build
├── src/ # Source code
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Main entry point
│ ├── const.py # Constants and configuration
│ ├── models.py # Data models
│ ├── server.py # ProxyServer implementation
│ ├── mcp_gateway.py # MCP gateway logic
│ └── event_store.py # Event store for session management
├── pyproject.toml # Python dependencies and settings
├── .gitignore # Git ignore rules
└── README.md # This file定制
充电策略
您可以通过编辑自定义充电策略 .actor/pay_per_event.json默认配置收费:
- 每次转换0.01美元(主操作)
- 元数据操作(列出工具、资源、提示)的最低费用
会话超时
调整 SESSION_TIMEOUT_SECS 环境变量,用于控制会话在不活动期间保持活动的时间。默认值为300秒(5分钟)。
工具白名单
Actor使用中定义的工具白名单 src/const.py:
TOOL_WHITELIST = {
'convert_to_markdown': ('CONVERT_TO_MARKDOWN', 1),
}如果底层Markitdown MCP服务器公开了更多工具,您可以添加更多工具。
建筑
Actor实现了一个代理架构:
MCP Client (VS Code, Claude, etc.)
↓ (Streamable HTTP)
Proxy Server (This Actor)
↓ (STDIO)
Markitdown MCP Server
↓
Markitdown Library关键部件:
- 代理服务器:管理HTTP服务器和会话生命周期
- MCP网关:代理MCP请求并处理收费
- 事件存储:维护会话历史记录以确保可恢复性
- 会话管理器:处理流式HTTP传输
相关链接
许可证
阿帕奇-2.0
贡献
欢迎投稿!请随时提交拉取请求。
支持
对于问题和疑问:
- 打开一个问题
- 联系方式: Apify控制台
致谢
- 微软Markitdown -底层转换工具
- Apify -演员平台和基础设施
- MCP代理 -代理实现的启示
