mcpField
J
JidoSeal

JidoSeal

本地服务
jidoseal.com记忆与知识16 天前更新

关于 JidoSeal

JidoSeal 是本地 MCP 服务,可按 Open Knowledge Format(OKF)v0.2 分级检查 Markdown 前置元数据。它报告文件夹覆盖情况和逐文件缺失字段,并提供只读的文档可信度与 Git 变更工具;README 将扫描引擎不联网描述为厂商声明,未经独立审计。

主要功能

  1. 01按 OKF 层级检查 Markdown 前置元数据
  2. 02报告文件夹层级与覆盖率
  3. 03列出各文件缺失字段
  4. 04评估文档可信度与时效性
  5. 05检查 Git 中的前置元数据和正文变更

适用场景

  1. 01检查笔记文件夹的 OKF 层级
  2. 02整理文档前发现缺失元数据
  3. 03复用政策文档前检查可信度
  4. 04审阅可能使验证失效的编辑

MCP 相关

JidoSeal 通过 stdio 作为本地 MCP 服务运行,提供扫描、可信度和变更工具。README 称扫描不会发起网络请求,同时说明这是厂商声明,未经独立审计。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"com-jidoseal-jidoseal": {
"command": "uvx",
"args": [
"jidoseal-mcp"
]
}
}
}
启动命令uvx jidoseal-mcp

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

安装包
pypijidoseal-mcp0.2.0

工具

3

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

参数类型必填说明
rootstring是要扫描的文件夹绝对路径。递归扫描其中的所有 *.md 文件。
include_machineboolean否扫描所有 Markdown 文件,忽略此语料库在 .jidoseal/config.yaml 中配置的机器专用/临时文件排除项。请保持为 false:认证流程不会启用此项。

详细介绍

jidoseal-mcp

已在 mcpservers.org 上收录

在自己的机器上,通过 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: 而后面没有内容则不计)。

等级文件必须包含(且有内容)所能证明的内容
Bronzetype按照 OKF v0.2 的原文规定——type 是其唯一必填字段
SilverBronze + title、description、timestamp、ownerISO 9001 §7.5.2 要求对文件进行适当的标识和描述,并举例说明(“标题、日期、作者或参考编号”)。这四个字段是证明符合该要求的一种合理方式。
GoldSilver + status、review_policy、reviewed_at、next_review_atISO 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.pyjidoseal_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 的工作人员仅根据等级、分数和该指纹签发证书,绝不会查看你的文件内容。

链接

关于此代码仓库

此代码仓库包含 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 引擎单独发行,适用其自身条款。

评论

支持 Markdown

第一次接触 MCP?

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

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