mcpField
O
OpenFormatDB

OpenFormatDB

本地服务
openformatdb.org开发工具15 天前更新

关于 OpenFormatDB

OpenFormatDB 的 MCP 服务帮助 Agent 识别文件格式、查询现有软件与文档,并在本地转换文件,不上传文件。使用仓库检出内容时,还可提交格式发现。

主要功能

  1. 01根据文件特征和元数据推测格式
  2. 02查询格式记录、软件和规范
  3. 03按名称及标识符搜索格式
  4. 04查找开源转换路径
  5. 05使用 WebAssembly 本地转换文件
  6. 06认领格式并发布发现

适用场景

  1. 01编写解析器前识别陌生文件
  2. 02查询格式文档和可用软件
  3. 03在支持的格式间转换本地文件
  4. 04从仓库检出内容贡献格式信息

MCP 相关

它向 MCP 客户端提供格式识别、查询、搜索、转换规划、本地转换和来源检查工具。连接仓库检出内容后,客户端还可认领格式并发布发现。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"org-openformatdb-openformatdb": {
"command": "npx",
"args": [
"-y",
"@openformatdb/mcp"
]
}
}
}
启动命令npx -y @openformatdb/mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@openformatdb/mcp0.3.0

工具

7

收录的工具列表 · 更新于 6 天前

参数类型必填说明
mimestring否已知时的 MIME 类型,例如来自 `file --mime-type`
limitinteger否
extensionstring否文件名或扩展名,例如 report.doc 或 .doc
magic_hexstring否文件的起始字节(十六进制),允许空格(通常 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 源码)。

评论

支持 Markdown

第一次接触 MCP?

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

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