mcpField
D
docmcp — Word & Excel files

docmcp — Word & Excel files

远程服务
docmcp.onrender.com生产力08 周前更新

关于 docmcp — Word & Excel files

docmcp 是一个 MCP 服务,可将结构化数据生成格式化的 Word 和 Excel 文件。它支持本地 stdio 模式和托管 HTTP 下载,并为希伯来语和阿拉伯语提供 RTL 排版。

主要功能

  1. 01生成含标题、列表和表格的 DOCX
  2. 02创建多工作表 XLSX 文件
  3. 03支持希伯来语和阿拉伯语 RTL
  4. 04提供限时托管下载链接
  5. 05查询月度用量和配额

适用场景

  1. 01根据结构化内容生成格式化 Word 报告
  2. 02创建带冻结表头和筛选器的电子表格
  3. 03生成希伯来语或阿拉伯语 RTL 文档

MCP 相关

向 MCP 客户端提供 `create_docx`、`create_xlsx` 和 `usage` 工具。本地可通过 stdio 运行,也可使用带 API 密钥认证的托管 HTTP 服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://docmcp.onrender.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://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本月已使用的调用次数 / 配额

环境变量

变量默认值说明
PORT8787
BASE_URLhttp://localhost:$PORT必须是公开 URL——它会出现在下载链接中
DATABASE_URL—**必填。**任何 Postgres(Koyeb、Neon、Supabase)
OUT_DIRout生成的文件,每小时清理一次,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=…。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。