关于 JidoSeal
JidoSeal 是本地 MCP 服务,可按 Open Knowledge Format(OKF)v0.2 分级检查 Markdown 前置元数据。它报告文件夹覆盖情况和逐文件缺失字段,并提供只读的文档可信度与 Git 变更工具;README 将扫描引擎不联网描述为厂商声明,未经独立审计。
主要功能
- 01按 OKF 层级检查 Markdown 前置元数据
- 02报告文件夹层级与覆盖率
- 03列出各文件缺失字段
- 04评估文档可信度与时效性
- 05检查 Git 中的前置元数据和正文变更
适用场景
- 01检查笔记文件夹的 OKF 层级
- 02整理文档前发现缺失元数据
- 03复用政策文档前检查可信度
- 04审阅可能使验证失效的编辑
MCP 相关
JidoSeal 通过 stdio 作为本地 MCP 服务运行,提供扫描、可信度和变更工具。README 称扫描不会发起网络请求,同时说明这是厂商声明,未经独立审计。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| root | string | 是 | 要扫描的文件夹绝对路径。递归扫描其中的所有 *.md 文件。 |
| include_machine | boolean | 否 | 扫描所有 Markdown 文件,忽略此语料库在 .jidoseal/config.yaml 中配置的机器专用/临时文件排除项。请保持为 false:认证流程不会启用此项。 |
详细介绍
jidoseal-mcp
在自己的机器上,通过 Claude Code、Claude Desktop、Cursor、GitHub Copilot、OpenAI Codex、Gemini CLI、Zed、Cline、Continue、JetBrains AI Assistant 或本地模型,检查一个文件夹中的 Markdown 笔记是否符合 Open Knowledge Format(OKF)v0.2。
选择一个文件夹并扫描。jidoseal-mcp 是一个本地 Model Context Protocol 服务,会读取文件夹下每个 *.md 文件的 YAML frontmatter,报告知识库达到的等级(Bronze / Silver / Gold),并逐个列出每个文件晋级到下一等级所缺少的确切 frontmatter 字段。扫描不会通过网络发送任何内容:不发送文件、文件名或文件内容。这是 JidoSeal 对其引擎的说法;请查看下文,了解如何验证。
pip install jidoseal-mcp
claude mcp add jidoseal -- jidoseal-mcp # Claude Code; every other tool is below
然后询问你的助手:“用 JidoSeal 扫描 ~/notes,并告诉我晋级到 Silver 还缺少什么。”
最新内容:OKF 现状,2026 年 10 月。 在 2026-10-22 对 BundleDex 上列出的全部 900 个捆绑包按照 OKF v0.2 进行了检查:包括符合性、每个捆绑包的时间戳遵循两份 v0.2 文本中的哪一份、信任字段,以及排行榜,其中还包含方法说明和每个捆绑包的独立页面。
60 秒上手
免费且在本地运行;扫描引擎为专有软件;JidoSeal 还提供可选的证书。
选择一个文件夹并扫描。先观看这段 76 秒的演示:在 60 秒内检查符合 OKF v0.2 的文件夹(免费、本地运行)。要在此仓库中的三文件示例上试用:
git clone --depth 1 https://github.com/Jidoseal/jidoseal-mcp && cd jidoseal-mcp/examples/tiers/mixed
pip install jidoseal-mcp
claude mcp add jidoseal -- jidoseal-mcp # Claude Code; Cursor, Copilot, Codex, Gemini CLI, Zed and local models are below
claude
(claude mcp add 会为你运行命令的文件夹注册该服务,因此请在该文件夹中运行,或添加 -s user。)然后询问:“用 JidoSeal 扫描这个文件夹。它达到哪个等级?每个文件晋级到 Silver 还需要什么?”
它返回的 jidoseal_scan 结果来自 2026-10-22(UTC)对该文件夹运行 jidoseal-mcp 0.1.4(引擎 0.1.4)的实际结果,已精简为摘要和 Silver 所缺内容:
{
"corpus": { "file_count": 3, "tier": "none",
"coverage": { "bronze": 66.7, "silver": 33.3, "gold": 33.3 } },
"files": [
{ "name": "expenses.md", "tier": "bronze", "present": [ "type", "title" ],
"missing": { "silver": [ { "field": "description", "fix": "AUTO" },
{ "field": "timestamp", "fix": "AUTO" },
{ "field": "owner", "fix": "NEEDS-CLIENT" } ] } }, // gold gaps trimmed
{ "name": "leave-policy.md", "tier": "gold",
"missing": { "silver": [], "gold": [] } },
{ "name": "notes.md", "tier": "none", "present": [],
"missing": { "silver": [ { "field": "title", "fix": "AUTO" },
{ "field": "description", "fix": "AUTO" },
{ "field": "timestamp", "fix": "AUTO" },
{ "field": "owner", "fix": "NEEDS-CLIENT" } ],
// gold gaps trimmed
"bronze": [ { "field": "type", "fix": "AUTO", "value": "note", "confidence": "MEDIUM", "inferred": true } ] } }
],
"skipped": [],
"certified_eligible": false,
"score": 44
// … plus audit id, rubric, file hashes, Merkle root and the paths of the two files written under .jidoseal/
}
该文件夹目前尚未达到任何等级,因为 notes.md 没有 frontmatter:整个语料库的等级取决于其中等级最低的文件。AUTO 表示 JidoSeal 可以提出该值;NEEDS-CLIENT 表示只有你才能填写(此处为 owner)。
独立性说明。 OKF 是来自 Google Cloud 的开放规范。JidoSeal 与 Google 或 ISO 没有隶属、赞助或认可关系。ISO 未指定任何字段:Bronze / Silver / Gold 等级及其字段由 JidoSeal 定义,用作证明符合部分 ISO 条款的一种方式。JidoSeal 等级或证书不等同于 ISO 认证。
副作用和数据简述
- **读取:**你指定的文件夹下的
*.md文件(跳过隐藏文件和文件夹),以及(如果存在)<folder>/.jidoseal/config.yaml。如果文件夹中包含指向文件夹外部目录或文件的符号链接,服务会拒绝该文件夹。 - 写入:
<folder>/.jidoseal/manifest.json(每次扫描时替换)和<folder>/.jidoseal/progress.ndjson(追加写入)。不会写入其他内容;你的笔记不会被修改。 - 信任和变更工具:
jidoseal_trust和jidoseal_changes只读,不会写入任何内容。jidoseal_changes会在禁用传输功能的情况下运行本地git程序,以读取文件夹的历史记录。 - **网络、扫描和评估:**无。此说法来自 JidoSeal 对其专有引擎的声明,未经独立审计。下方的测试会在每次变更时检查这一点。
- 网络、结账(可选,付费):
jidoseal_start_checkout仅在confirm: true时运行。它会向 jidoseal.com 发送八个字段:按输入内容填写的公司、姓名和电子邮箱、等级、0–100 分数、语料库的 Merkle 根、本地扫描的 ID,以及一个用于说明适用哪种 Bronze 价格的标记。jidoseal.com 会在创建 Stripe Checkout 会话时、任何付款发生之前,将这些字段复制到创建的会话中(电子邮箱作为会话的客户电子邮箱,八个字段全部作为会话元数据)。不会发送文件内容、文件名、逐文件哈希或路径。此服务不会传递任何银行卡数据。 - **引擎:**扫描引擎是独立的
jidoseal包,采用专有许可证。它以纯 Python 源代码形式发布,并在此固定为一个版本(0.1.4),其 sha256 值见ENGINE-SHA256SUMS,SBOM 见sbom.cdx.json。因此,“任何内容都不会离开你的计算机”是 JidoSeal 自己的声明:你可以通过离开你的计算机的数据下的命令和tests/中的测试进行检查,但该声明未经独立审计。
检查内容
扫描结果是确定性的——只检查 frontmatter 字段是否存在且有内容,不调用模型,也不进行主观评分。字段只有在包含实际内容时才计入(仅有 title: 而后面没有内容则不计)。
| 等级 | 文件必须包含(且有内容) | 所能证明的内容 |
|---|---|---|
| Bronze | type | 按照 OKF v0.2 的原文规定——type 是其唯一必填字段 |
| Silver | Bronze + title、description、timestamp、owner | ISO 9001 §7.5.2 要求对文件进行适当的标识和描述,并举例说明(“标题、日期、作者或参考编号”)。这四个字段是证明符合该要求的一种合理方式。 |
| Gold | Silver + status、review_policy、reviewed_at、next_review_at | ISO 30401 中要求的知识治理持续更新。该标准没有规定审查间隔;注明审查政策并记录实际审查日期即可作为证明,审查频率由你决定。 |
语料库的等级由其中最弱的文件决定。覆盖率是达到各等级的文件所占比例。完整字段参考——包括接受的别名、“有内容”的判定标准和排除项——见 docs/tiers.md。
一个 Gold 级别的最简文件:
---
type: policy
title: Leave policy
description: How leave accrues and how to request it.
timestamp: 2026-09-01
owner: dept:people-ops
status: stable
review_policy: yearly
reviewed_at: 2026-09-01
next_review_at: 2027-09-01
---
各等级的示例以及混合文件夹示例见 examples/tiers/。
工具
| 工具 | 功能 | 网络 |
|---|---|---|
jidoseal_scan | 对此机器上的文件夹进行免费自检:语料库级别、下一等级所需的每个文件缺失的字段(每项标记为 AUTO——JidoSeal 可以提供建议的值,或 NEEDS-CLIENT——只有所有者才能回答)、各等级的覆盖率、0–100 分的评分,以及语料库的 Merkle 根。 | 无(JidoSeal 的说法;见下文) |
jidoseal_certification_offer | 说明此语料库的可选认证费用、原因、包含的内容,以及购买时会发送的具体信息。仅在本地计算;不会启动任何操作。 | 无(同上) |
jidoseal_start_checkout | 仅在你明确同意并传入 confirm: true 时执行(不传入则不会发送任何内容):请求 jidoseal.com 创建 Stripe Checkout 会话,并返回供你打开的链接。不收取费用。 | jidoseal.com,会将字段传给 Stripe |
jidoseal_trust | 在 Agent 依赖某份文档前,根据其 OKF v0.2 信任与生命周期字段(stale_after、status、verified、generated),给出 stale、unverified 或 ok,并说明原因。还会给出其信任等级(§5.3)、是否符合 OKF v0.2,以及其时间戳遵循 v0.2 的哪种文本格式。可检查单个文件,或文件夹中的所有 *.md 文件。只读。本包使用纯 Python;不使用扫描引擎。 | 无 |
jidoseal_changes | 编辑后,列出与某个 Git 提交(默认 HEAD,因此包括未提交的编辑和新文件)不同的所有 *.md 文件、其 frontmatter 和正文的变更,以及这些变更对信任状态的影响:已验证文档的文本发生变化但 verified 未变、移除了 verified 或 type、未更新 generated.at、更改了 status 或 stale_after。只读。运行本地 git,并设置 protocol.allow=never,且不执行延迟获取。 | 无 |
examples/tiers/mixed 的 jidoseal_scan 结果示例(三个文件,一个 Gold、一个 Bronze,还有一个没有 frontmatter):
{
"corpus": { "file_count": 3, "tier": "none",
"coverage": { "bronze": 66.7, "silver": 33.3, "gold": 33.3 } },
"score": 44,
"certified_eligible": false,
"files": [
{ "name": "expenses.md", "tier": "bronze",
"missing": { "silver": [ { "field": "description", "fix": "AUTO" },
{ "field": "timestamp", "fix": "AUTO" },
{ "field": "owner", "fix": "NEEDS-CLIENT" } ] } }
// …
]
}
文件中的 frontmatter_ok: false 表示其 frontmatter 块存在,但无法解析;在手动修复前,无法通过填写字段来补齐缺失项。
依赖文档前先检查信任状态
可以这样询问:“使用 ~/notes/policies/leave.md 之前,请用 jidoseal_trust 检查它。” 或者,在 Agent 编辑你的笔记后询问:“对 ~/notes 运行 jidoseal_changes:你改了什么?哪些已验证文档因此尚未得到确认?” jidoseal_trust 对单个文件的回答示例:
{
"verdict": "unverified",
"reasons": [ "content changed at 2026-10-01T00:00:00Z, after its latest verification at 2026-06-25T09:00:00Z" ],
"okf_conformant": true,
"trust_tier": "human-reviewed",
"status": "stable",
"stale": false,
"which_0_2": "2026-08-21"
// … plus each timestamp as written and which v0.2 text it follows
}
OKF v0.2 于 2026-08-21 发生变更,但未提升版本号:stale_after、sources[].last_modified 和 usage_window 从纯日期改为带 UTC 偏移量的日期时间。两种格式均受支持,which_0_2 会说明文档使用的是哪一种。
安装并接入工具
需要 Python 3.9+。pip install jidoseal-mcp 还会安装 jidoseal(扫描引擎和 CLI,固定为经过测试的版本),并将 jidoseal-mcp 命令添加到 PATH。无需账户,也无需 API 密钥。扫描本身不需要网络——离线运行即可。
下面的每个工具都会通过 stdio 启动同一个本地命令 jidoseal-mcp。不同之处仅在于配置写在哪里。
Claude Code
claude mcp add jidoseal -- jidoseal-mcp
或者提交一个项目级 .mcp.json:
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp" } } }
Claude Desktop
Settings → Developer → Edit Config 会打开 claude_desktop_config.json。添加:
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp", "args": [] } } }
之后重启 Claude Desktop。
Cursor
~/.cursor/mcp.json(或项目中的 .cursor/mcp.json):
{ "mcpServers": { "jidoseal": { "type": "stdio", "command": "jidoseal-mcp", "args": [] } } }
GitHub Copilot(VS Code Agent 模式,以及 Visual Studio、JetBrains、Eclipse、Xcode)
Copilot Chat 在 Agent 模式下使用 MCP 工具。在 VS Code 中,将 .vscode/mcp.json 添加到项目(或运行 MCP: Open User Configuration,以供所有项目使用):
{ "servers": { "jidoseal": { "type": "stdio", "command": "jidoseal-mcp" } } }
Visual Studio、JetBrains IDE、Eclipse 和 Xcode 中的 Copilot,在各自的 MCP 设置中使用相同的 servers 条目。如果使用 Copilot Business 或 Enterprise 席位,组织必须开启“Copilot 中的 MCP 服务”策略;该策略默认关闭。
OpenAI Codex(CLI、IDE 扩展和应用)
codex mcp add jidoseal -- jidoseal-mcp
或者写入 ~/.codex/config.toml:
[mcp_servers.jidoseal]
command = "jidoseal-mcp"
Gemini CLI
gemini mcp add -s user jidoseal jidoseal-mcp
或者写入 ~/.gemini/settings.json(或项目中的 .gemini/settings.json):
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp" } } }
Zed
在 Zed 的 settings.json 中(或选择 Settings → AI → MCP Servers → Add Local Server):
{ "context_servers": { "jidoseal": { "command": "jidoseal-mcp", "args": [], "env": {} } } }
Cline
选择 MCP Servers → Configure → Configure MCP Servers,然后添加:
{ "mcpServers": { "jidoseal": { "type": "stdio", "command": "jidoseal-mcp", "args": [], "disabled": false } } }
Continue
在工作区中创建 .continue/mcpServers/jidoseal.yaml(MCP 工具在 Continue 的 Agent 模式下运行):
name: JidoSeal
version: 0.0.1
schema: v1
mcpServers:
- name: jidoseal
type: stdio
command: jidoseal-mcp
JetBrains AI Assistant
选择 Settings → Tools → AI Assistant → Model Context Protocol(MCP)→ Add → STDIO,然后粘贴:
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp", "args": [] } } }
本地模型
任何能够启动 stdio 服务并连接到本地模型的 MCP 客户端,都需要相同的两项信息——名称和命令:
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp", "args": [], "env": {} } } }
完全不使用 AI 工具——仅使用命令行
pipx install jidoseal && jidoseal --root ~/notes
在终端中运行相同的扫描,获得相同的判定。参见 PyPI 上的 jidoseal CLI。
如果宿主使用的 Python 与安装时使用的不同,请将其指向该模块:"command": "/path/to/python", "args": ["-m", "jidoseal_mcp"]。
无需任何宿主,手动检查配置是否正确:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"x","version":"0"}}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| jidoseal-mcp
你应该会看到一个名为 jidoseal 的 initialize 结果,随后是三个工具。
在 CI 中运行
CLI 会写入 .jidoseal/manifest.json;只需几行代码即可将其设为门槛。参见 docs/ci.md,了解如何配置 GitHub Actions 工作流,在任何文件低于 Silver 时使构建失败。
哪些内容会离开你的设备
一次扫描: JidoSeal 声称它不会发送任何内容:不会发送文件、文件名或文件内容。执行扫描的引擎是专有的,没有任何独立机构审计过这一说法。它的设计便于检查:jidoseal_mcp.py、scan_result.py 和 offer.py 不会导入任何 socket、urllib 或 HTTP 客户端,它们引入的任何模块也不会,包括固定版本的 jidoseal wheel 中包含的十个引擎模块。checkout_client.py 是唯一能访问网络的模块,而且仅在结账处理程序内部导入。git_changes.py 位于 jidoseal_changes 后面,是唯一会启动程序的模块:它启动本地 git,并禁用传输(protocol.allow=never、GIT_NO_LAZY_FETCH=1),且仅在其自身的处理程序内部导入。
一次购买,仅当你选择购买且调用中带有 confirm: true 时:你输入的公司、姓名和电子邮件、套餐、0–100 分的评分、语料库的 Merkle 根、本地扫描的 ID,以及适用的 Bronze 价格,将发送至 jidoseal.com。jidoseal.com 会将这些信息复制到它创建的 Stripe Checkout 会话中:电子邮件作为会话的客户电子邮件,八项信息全部作为会话元数据。这会在创建会话时发生,早于任何付款。此服务不会传输文件内容、文件名、逐文件哈希、路径或银行卡数据(支付页面由 Stripe 托管)。Merkle 根是单向摘要。
请自行验证:
strace -f -o /tmp/trace.txt -e trace=network jidoseal-mcp < your-jsonrpc-input # no network syscalls during a scan
bwrap --unshare-net --dev-bind / / jidoseal-mcp < your-jsonrpc-input # the scan works with no network at all
扫描会将自己的记录——manifest.json 和追加写入的 progress.ndjson——保存到 <folder>/.jidoseal/ 中,不会写入其他位置。它绝不会修改你的笔记。
每次变更时,测试套件都会对固定版本的引擎 wheel 验证相同事项,并先核实其 sha256(参见 .github/workflows/tests.yml):
| 文件 | 内容 |
|---|---|
tests/test_scan_isolation.py | 扫描不会在文件夹之外打开或列出任何内容;对于包含指向文件夹外部、指向目录或重定向 .jidoseal/ 的符号链接的文件夹,会在引擎运行前拒绝;已安装的 jidoseal CLI(引擎 0.1.4)也会自行拒绝指向外部的链接,且不写入任何内容。 |
tests/test_write_boundary.py | 唯一创建或更改的文件,是 <folder>/.jidoseal/ 下的两个文件;笔记逐字节保持不变。 |
tests/test_network_boundary.py | 扫描期间不会发生 socket、DNS 查询或子进程调用——既通过阻止 socket 的进程内测试验证,也通过 stdio 端到端测试验证;后一测试在任何 socket 事件发生时都会退出。 |
tests/test_checkout_confirmation.py | 没有 confirm: true 时,结账不会发出请求;有该参数时,只会发送上述八项字段(HTTP 已模拟)。 |
tests/test_import_graph.py | 静态检查扫描路径上的所有模块,包括引擎模块。 |
tests/test_trust_and_changes.py | jidoseal_trust 和 jidoseal_changes:判定结果、两种 v0.2 时间戳文本、无写入、无 socket,以及 git 是 jidoseal_changes 唯一启动的程序,且始终禁用传输。 |
tests/test_packaging.py | 引擎固定版本、ENGINE-SHA256SUMS、SBOM 和已安装的引擎文件均一致。任何工具文本或结果都不会显示引擎未经限定的无外发连接声明,结账文本也会写明 Stripe 步骤。 |
从此处固定的 engine 0.1.4 版本开始,jidoseal 命令行工具也会拒绝此类文件夹:指向文件夹外文件或目录的符号链接,或符号链接形式的 .jidoseal/,都会在读取或写入任何内容之前停止运行,命令以状态码 2 退出。它也不会跟随文件夹内指向目录的符号链接,因此每个文件只会读取一次。本服务的限制稍严格一些:即使符号链接指向文件夹内的目录,也会拒绝。CLI 自己关于无网络的说明与本服务一样,表述为 JidoSeal 的声明。engine 0.1.3 及更早版本会跟随符号链接,并打印不带限定的说明,因此请使用 0.1.4 或更高版本。 |
可选认证
扫描免费且不限次数,修复也一样。如果你希望获得一份标注日期、对应文件夹所达到等级并绑定语料库 Merkle 根的证书,同时拥有公开验证页面并列入公开注册表,可在 jidoseal.com 付费办理;当前价格公布在该网站上,每个等级统一定价,不受文件数量影响。JidoSeal 的工作人员仅根据等级、分数和该指纹签发证书,绝不会查看你的文件内容。
链接
- 网站:https://jidoseal.com
- 已认证知识库的公开注册表:https://jidoseal.com/registry
- PyPI:
jidoseal-mcp·jidoseal - MCP Registry:
com.jidoseal/jidoseal-mcp - OKF 规范(Google Cloud,Apache-2.0):https://github.com/GoogleCloudPlatform/open-knowledge-format
- 联系方式:[email protected]
关于此代码仓库
此代码仓库包含 jidoseal-mcp 包的源代码:一个仅使用 Python 标准库实现的 MCP 服务(不使用 MCP SDK),通过 stdio 使用 JSON-RPC 2.0 通信。它依赖单独发布的 jidoseal 包来提供扫描引擎;该包不属于此代码仓库,并固定为一个经过测试的版本。运行 pip install -e ".[test]" && pytest 来执行测试。欢迎提交问题;请附上 jidoseal-mcp 和 jidoseal 的版本,以及能够复现问题的最小文件夹。
许可证
此代码仓库中的代码采用 Apache-2.0 许可证,详见 LICENSE。其依赖的 jidoseal 引擎单独发行,适用其自身条款。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。