关于 OpenFormatDB
OpenFormatDB 的 MCP 服务帮助 Agent 识别文件格式、查询现有软件与文档,并在本地转换文件,不上传文件。使用仓库检出内容时,还可提交格式发现。
主要功能
- 01根据文件特征和元数据推测格式
- 02查询格式记录、软件和规范
- 03按名称及标识符搜索格式
- 04查找开源转换路径
- 05使用 WebAssembly 本地转换文件
- 06认领格式并发布发现
适用场景
- 01编写解析器前识别陌生文件
- 02查询格式文档和可用软件
- 03在支持的格式间转换本地文件
- 04从仓库检出内容贡献格式信息
MCP 相关
它向 MCP 客户端提供格式识别、查询、搜索、转换规划、本地转换和来源检查工具。连接仓库检出内容后,客户端还可认领格式并发布发现。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 6 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mime | string | 否 | 已知时的 MIME 类型,例如来自 `file --mime-type` |
| limit | integer | 否 | |
| extension | string | 否 | 文件名或扩展名,例如 report.doc 或 .doc |
| magic_hex | string | 否 | 文件的起始字节(十六进制),允许空格(通常 64 字节就足够) |
详细介绍
@openformatdb/mcp
OpenFormatDB 的 MCP 服务:在 Agent 编写解析器或逆向工程文件之前,它会先询问文件的格式、哪些软件已经能够读取、写入和转换该格式,以及该格式的文档记录完善到什么程度。
| 工具 | 功能 |
|---|---|
identify_file(magic_hex?, tail_hex?, extension?, mime?) | 按优先级列出候选格式:完整 PRONOM 签名(含优先级)、前缀、MIME 类型、扩展名。Agent 自行读取字节(xxd -p -l 1024 file;tail -c 512 file | xxd -p);文件不会离开本机 |
lookup_format(id | puid | wikidata | mime) | 完整记录:标识符、软件(开源软件优先;标记为 via 时继承自所属系列)、语法、规范、系列和版本、实时认领信息、建议 |
search_formats(query, category?, status?) | 按名称、别名、扩展名、MIME、PUID 或 QID 排序匹配结果 |
find_conversion(from, to?) | 查找从一种格式转换到另一种格式的最低成本开源工具链(优先无损),列出各步骤的命令和损失内容;格式可使用 ID 或扩展名。带有 engine 的步骤可通过 convert_file 执行 |
convert_file(path, to?, output?) | 使用编译为 WebAssembly 的开源转换器转换本机上的文件:ImageMagick、resvg、FFmpeg、Pandoc、7-Zip、GDAL、Assimp。不会上传任何内容;每种引擎(2 到 59 MB)首次使用时下载一次,固定版本并校验 SHA-256,存入 ~/.cache/openformatdb/engines(OFDB_ENGINES_DIR)。未指定 to 时,列出文件可转换成的格式。输出文件写在输入文件旁边,且绝不会覆盖现有文件 |
list_sources() | 汇总来源,并列出数量、许可证和快照日期 |
claim_format(id | name+category, who, contact, scope, days?) | 声明你正在编写某种格式的文档(最长 90 天),避免他人重复工作 |
publish_findings(id, patch, release_claim_of?) | 合并结构、语法、工具、转换、规范、标识符和验证信息;状态只会向前推进 |
convert_file 是唯一会连接网络的工具(首次下载引擎时),也是唯一会在代码仓库之外写入文件的工具(转换后的文件)。两个写入工具会修改代码仓库中的 data/formats/<id>.yaml,并打印用于发起拉取请求的 git 命令;它们不会运行 git。文本会依据 POLICY.md 筛查(不得移除 DRM、不得使用密钥、不得复制付费标准)。
安装
npx -y @openformatdb/mcp
claude mcp add openformatdb -- npx -y @openformatdb/mcp # Claude Code
发布
在 package.json、server.json 和 src/server.ts 中更新版本号,然后运行 Release MCP server 工作流:该工作流会执行测试、发布到 npm(可信发布),并以 org.openformatdb/openformatdb 的名义发布到 MCP Registry(密钥 MCP_REGISTRY_PRIVATE_KEY 的公钥可通过 https://openformatdb.org/.well-known/mcp-registry-auth 获取)。
运行
不在代码仓库中运行时,它会读取 openformatdb.org 的静态 API(只读;OFDB_API_URL 可指向其他位置)。在代码仓库中运行时,它会读取数据文件并可写入:
npm install
npm run mcp # stdio; data from this checkout
OFDB_REPO=/path/to/checkout npm run mcp
Claude Code:claude mcp add openformatdb -- node /path/to/openformatdb/packages/mcp/src/server.ts
需要 Node 22.18 或更高版本(可直接运行 TypeScript 源码)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。