关于 docmcp — Word & Excel files
docmcp 是一个 MCP 服务,可将结构化数据生成格式化的 Word 和 Excel 文件。它支持本地 stdio 模式和托管 HTTP 下载,并为希伯来语和阿拉伯语提供 RTL 排版。
主要功能
- 01生成含标题、列表和表格的 DOCX
- 02创建多工作表 XLSX 文件
- 03支持希伯来语和阿拉伯语 RTL
- 04提供限时托管下载链接
- 05查询月度用量和配额
适用场景
- 01根据结构化内容生成格式化 Word 报告
- 02创建带冻结表头和筛选器的电子表格
- 03生成希伯来语或阿拉伯语 RTL 文档
MCP 相关
向 MCP 客户端提供 `create_docx`、`create_xlsx` 和 `usage` 工具。本地可通过 stdio 运行,也可使用带 API 密钥认证的托管 HTTP 服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://docmcp.onrender.com/mcpclaude mcp add --transport http adirdavi-docmcp https://docmcp.onrender.com/mcp{"mcpServers":{"adirdavi-docmcp":{"type":"http","url":"https://docmcp.onrender.com/mcp"}}}在 Cursor 中打开{"servers":{"adirdavi-docmcp":{"type":"http","url":"https://docmcp.onrender.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"adirdavi-docmcp":{"type":"http","url":"https://docmcp.onrender.com/mcp"}}}{"mcpServers":{"adirdavi-docmcp":{"serverUrl":"https://docmcp.onrender.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://docmcp.onrender.com/mcp需要授权工具
详细介绍
docmcp
上线地址:https://docmcp.onrender.com — 在 POST /keys/free 免费获取密钥,每月可生成 10 份文档。
付费方案:$10/月可生成 100 份,$30/月可生成 500 份。配额位于 src/store.ts 中的 PLANS。
一个付费 MCP 服务,可将结构化数据转换为真正的 .docx 和 .xlsx 文件。
Agent 擅长写作,却不擅长文件格式——它们会输出 Markdown,然后寄希望于一切正常。
这个服务为它们提供了一个工具,可返回 Word 或 Excel 文件,其中包含真正的标题、表格、粗体表头、冻结窗格,并支持 RTL。
返回短时有效的下载 URL,而不是 base64 数据块:将 200KB 的 docx 内嵌到工具结果中,会耗费调用方约 70k 个令牌。
两种模式,一套代码:
--stdio— 本地客户端(Claude Desktop / Code)。无需身份验证、无配额、无过期时间;文件写入OUT_DIR,工具返回文件路径。- 默认模式 — 在
/mcp提供托管 HTTP 服务。需要 API 密钥,按配额计量,文件以 URL 形式提供,24 小时后过期。这就是产品。
本地运行
npm install
已在 Claude Desktop 中注册为 docmcp(输出 → ~/Documents/docmcp)。
要在其他地方注册:
{
"mcpServers": {
"docmcp": {
"command": "/usr/local/bin/node",
"args": ["<repo>/node_modules/tsx/dist/cli.mjs", "<repo>/src/index.ts", "--stdio"],
"env": { "DATABASE_URL": "postgres://…", "OUT_DIR": "<somewhere>" }
}
}
}
绝对路径很重要——客户端启动时使用精简的 PATH。
托管服务
npm start # http://localhost:8787/mcp
curl -X POST localhost:8787/keys/free
{
"mcpServers": {
"docmcp": {
"type": "http",
"url": "https://your-host/mcp",
"headers": { "Authorization": "Bearer dk_..." }
}
}
}
工具
| 工具 | 功能 |
|---|---|
create_docx | 标题、段落、项目符号列表/编号列表、表格、分页符;支持对希伯来语/阿拉伯语使用 rtl |
create_xlsx | 多工作表、粗体表头并冻结表头、自动筛选、调整列宽、数字保持为数字 |
usage | 本月已使用的调用次数 / 配额 |
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT | 8787 | |
BASE_URL | http://localhost:$PORT | 必须是公开 URL——它会出现在下载链接中 |
DATABASE_URL | — | **必填。**任何 Postgres(Koyeb、Neon、Supabase) |
OUT_DIR | out | 生成的文件,每小时清理一次,24 小时存活时间 |
STRIPE_SECRET_KEY | — | 不设置即可在不启用计费的情况下运行 |
STRIPE_WEBHOOK_SECRET | — | 用于 /stripe/webhook |
STRIPE_PRICE_STARTER, STRIPE_PRICE_PRO | — | /buy/:plan 对应的价格 ID |
方案和配额位于 src/store.ts 中的 PLANS。
部署
任何提供 Postgres URL 的 Docker 主机都可以。无需持久化磁盘: 生成的文件存放在容器文件系统中,反正 24 小时后就会过期,因此重启只会导致即将失效的链接失效。所有必须保留的数据—— 密钥、配额、IP 盐值——都存储在 Postgres 中。
目前使用 Render(Web 服务,免费层级)+ Neon(Postgres,免费,永不过期)。 特意选择两家服务提供商:状态数据存放在与本月托管容器的平台无关的位置。Render 会直接从 GitHub 构建 Dockerfile。
BASE_URL 必须是公开 URL——它会写入发给客户端的每个下载链接,因此设置错误会导致链接指向不存在的主机。你只能在首次部署后得知 URL,所以请在那时设置并重新部署。
Render 的免费层级在空闲 15 分钟后会进入休眠,唤醒需要 30–50 秒。这就是不绑定银行卡的代价;有客户付费后,可通过升级解决。
计费流程
/buy/starter → Stripe Checkout → webhook checkout.session.completed → 签发密钥 →
客户进入 /success 并在那里看到密钥。无需电子邮件服务提供商。
customer.subscription.deleted 会停用密钥。没有用户账户:密钥就是账户。
测试
npm test
测试涵盖两个生成器(包括参差不齐的表格行,以及工作表名称中带有 / 的情况——LLM 迟早会发送这两种内容)、xlsx 往返转换过程中的数字保留,以及配额是否会在达到方案上限时准确停止。
已知不足
- 不支持 PDF。 要生成高质量 PDF,需要无头 Chrome 或 LibreOffice,这会让部署体积增加 3 倍。真正缺少的是 Word 和 Excel——大家都已经支持 Markdown→PDF。等有付费用户提出需求时再添加。
- 密钥丢失后无法找回。 密钥只会在
/success页面显示一次。等首位客户提出需求时,再添加邮件发送功能或“通过邮件重新发送”路由。 - 文件存储在容器文件系统中。 这是有意为之——请参阅 Deploy。只有在 24 小时链接因重启失效确实给用户造成困扰时,才迁移到对象存储。
- 免费密钥有速率限制,但无法完全防止滥用。 每个 IP 每 24 小时可申请一个,另有全局每日上限(
FREE_KEYS_PER_DAY,默认值为 200)。不断切换 VPN 仍可绕过限制——没有办法阻止这种行为,而且任何地方的免费层都无法抵御蓄意攻击者。设置这些限制是为了控制最坏情况,而非彻底杜绝滥用。 /admin需要ADMIN_TOKEN。 如果未设置,该路由会返回 404,因此未配置的部署不会暴露它。访问/admin?token=…。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。