关于 tooldash-mcp
tooldash-mcp 是本地 MCP 服务,为 AI Agent 提供 PDF 和文本工具,无需上传文件或进行网络调用。它适用于在 MCP 客户端中处理文档的用户,并提供防止意外覆盖文件的保护。
主要功能
- 01查看 PDF 页数与元数据
- 02合并 PDF 文件
- 03提取指定 PDF 页面
- 04清理并规范化文本
- 05将文件访问限制在指定目录
适用场景
- 01查看文档页数和元数据
- 02合并报告与封面
- 03从指定页面生成 PDF 摘录
- 04清理复制的文本以便复用
MCP 相关
通过本地运行的服务向 MCP 客户端提供 PDF 和文本工具。客户端可使用 npx 启动,也可从代码克隆目录运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| path | string | 是 | 要检查的 PDF。可以是绝对路径,也可以是相对于客户端工作目录的路径。 |
详细介绍
ToolDash MCP
为 AI Agent 提供离线 PDF 和文本工具。 一个 MCP 服务,可让 Claude Desktop、Cursor、VS Code 及任何其他 MCP 客户端合并 PDF、提取页面、检查文档并清理文本——所有操作都在你自己的设备上完成。
不上传。不需要 API 密钥。不需要账户。完全不进行任何网络调用:PDF 操作由 pdf-lib 在本地完成,因此机密合同不会离开你的笔记本电脑。
工具
| 工具 | 功能 | 会写入文件吗? |
|---|---|---|
pdf_info | PDF 的页数、每页尺寸和元数据 | 否 |
merge_pdfs | 按给定顺序将两个或多个 PDF 合并为一个 | 是 |
extract_pdf_pages | 将所选页面("1-3,7,10-12")复制到新的 PDF 中 | 是 |
clean_text | 合并空白字符、移除不可见字符、规范化标点,可选择移除 URL | 否 |
除非传入 overwrite: true,两个会写入文件的工具都不会替换现有文件,因此 Agent 重试调用时不会悄悄破坏文档。
要求
Node.js 20 或更高版本。
安装
无需安装——MCP 客户端会按需通过 npx 运行它。将服务添加到客户端配置中,然后重启客户端。
Claude Desktop
编辑 claude_desktop_config.json:
- macOS —
~/Library/Application Support/Claude/claude_desktop_config.json - Windows —
%APPDATA%\Claude\claude_desktop_config.json - Linux —
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"tooldash": {
"command": "npx",
"args": ["-y", "tooldash-mcp"]
}
}
}
重启 Claude Desktop。工具会显示在聊天框的工具图标下。
Cursor
在项目中创建 .cursor/mcp.json(或为所有项目创建 ~/.cursor/mcp.json):
{
"mcpServers": {
"tooldash": {
"command": "npx",
"args": ["-y", "tooldash-mcp"]
}
}
}
然后在 Settings → MCP 下启用该服务。
VS Code(GitHub Copilot Agent 模式)
创建 .vscode/mcp.json:
{
"servers": {
"tooldash": {
"type": "stdio",
"command": "npx",
"args": ["-y", "tooldash-mcp"]
}
}
}
从克隆的仓库运行
git clone https://github.com/LassiB999/tooldash-mcp.git
cd tooldash-mcp
npm install
npm test
然后将客户端指向 node /absolute/path/to/tooldash-mcp/server.js,而不是 npx。
路径可以是绝对路径、相对于客户端工作目录的路径,也可以以 ~ 开头。路径两端的引号会被去除,因此粘贴为 "/home/you/file.pdf" 的路径仍然有效。
限制文件访问
该服务可以在用户账户有权限的任何位置读取和写入文件。若要将其限制在某个目录中,请设置 TOOLDASH_MCP_ROOT——目录之外的任何路径都会被拒绝,并返回清晰的错误信息:
{
"mcpServers": {
"tooldash": {
"command": "npx",
"args": ["-y", "tooldash-mcp"],
"env": { "TOOLDASH_MCP_ROOT": "/home/you/Documents/pdfs" }
}
}
}
使用示例
用自然语言向助手提出请求——“合并这两个 PDF,并把结果放到我的桌面上”——它就会填写下面的调用内容。这里提供原始 JSON,方便测试。
pdf_info
{ "path": "/home/you/Documents/report.pdf" }
report.pdf: 12 page(s), 248.3 KB. Title: "Q3 Report".
merge_pdfs
{
"inputPaths": ["/home/you/Documents/cover.pdf", "/home/you/Documents/report.pdf"],
"outputPath": "/home/you/Documents/final.pdf",
"overwrite": false
}
extract_pdf_pages
页码从 1 开始。页面顺序会保留,因此 "3,1-2" 会先给出第 3 页。像 "5-1" 这样的降序范围会将这些页面倒序排列。
{
"inputPath": "/home/you/Documents/report.pdf",
"pages": "1-3,7,10-12",
"outputPath": "/home/you/Documents/excerpt.pdf"
}
clean_text
{
"text": "Hello world \r\n\r\n\r\n\r\nSecond line ",
"collapseBlankLines": true,
"normalizeQuotes": false,
"removeUrls": false
}
removeUrls 会移除所有 http/https URL。该服务处于离线状态,无法区分有效链接和失效链接——它不会假装能够判断。
如何处理失败
对于错误输入,服务会返回模型可以处理的易读错误结果,而不会崩溃:文件缺失、PDF 受密码保护、页码超出文档范围,或输出路径已存在时,都会分别返回说明下一步该怎么做的信息。服务会继续运行。
诊断信息只会写入 stderr。stdout 只承载协议帧,不包含其他内容——任何内容泄漏到其中都会导致测试失败。
开发
npm test # 15 end-to-end tests: a real MCP client over stdio, on real PDFs
npm run inspect # open the MCP Inspector against this server
由 ToolDash 提供支持
ToolDash 是一组免费的浏览器实用工具,涵盖 PDF、文本、图像、颜色、开发者和计算器工具,所有操作都在浏览器标签页中完成,不会上传任何内容。此服务将相同的理念带到了你的编辑器中。
- tooldash.app — 完整的工具集合
- PDF Factory — 这些 PDF 工具所仿照的浏览器 PDF 工作室
- Al-Katib — 阿拉伯语键盘和书写板
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。