JidoSeal

com.jidoseal由 jidoseal.com 发布v0.2.0更新于 Oct 30, 2026

Checks a Markdown folder's OKF frontmatter tier, locally. No-egress is a vendor claim: see README.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

扫描本地 Markdown 笔记文件夹的 OKF v0.2 frontmatter 层级,列出缺失字段,并检查文档可信度与 git 变更。

可以做什么
  • 扫描 Markdown 文件夹,得出 OKF v0.2 层级(Bronze/Silver/Gold)、每个文件缺失的字段、覆盖率与评分
  • 检查单个文件或整个文件夹的可信度结论(stale、unverified、ok)及 OKF 一致性
  • 将 Markdown 文件与某个 git 提交对比,查看 frontmatter 与正文改动及其对可信度的影响
  • 在本地估算可选认证的费用,并在明确确认后返回 Stripe 结账链接
适用场景
适合维护 Markdown 知识库、希望助手审查其 frontmatter、告知每个文件升级到下一层级还缺什么,或在依赖某份文档前确认其是否仍然可信的场景。
运行要求
本地 stdio 进程;需要 Python 3.9+ 及 PyPI 上的 jidoseal-mcp 包(同时安装专有的 jidoseal 扫描引擎)。无需账号或 API 密钥。变更工具需要本机 git 程序。仅可选的付费结账需要联网。
安装前请注意
“不外传数据”是厂商自述,未经独立审计。扫描会在被扫描目录下的 .jidoseal 文件夹写入 manifest.json 与 progress.ndjson。可选结账仅在 confirm: true 时,将公司、姓名、邮箱、层级、评分、Merkle 根、扫描 id 和价格标志发送至 jidoseal.com 并转交 Stripe;它启动的是付费认证流程,本身不收款。层级为 JidoSeal 自定,并非 ISO 认证。

安装

在 SourceWeft 中

  1. 打开 控制台中的 JidoSeal,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

jidoseal-mcp

[Listed on mcpservers.org]

Check a folder of markdown notes against Open Knowledge Format (OKF) v0.2 — from inside Claude Code, Claude Desktop, Cursor, GitHub Copilot, OpenAI Codex, Gemini CLI, Zed, Cline, Continue, JetBrains AI Assistant or a local model, on your own machine.

Pick a folder, scan it. jidoseal-mcp is a local Model Context Protocol server that reads the YAML frontmatter of every *.md file under a folder, reports which tier the knowledge base reaches (Bronze / Silver / Gold), and lists — per file — the exact frontmatter fields missing for the next tier. The scan sends nothing over the network: no file, no file name, no file content. That is JidoSeal's own claim about its engine; below is how to check it.

bash
pip install jidoseal-mcpclaude mcp add jidoseal -- jidoseal-mcp     # Claude Code; every other tool is below

Then ask your assistant: "Scan ~/notes with JidoSeal and tell me what's missing for Silver."

New: State of OKF, October 2026. All 900 bundles listed on BundleDex, checked against OKF v0.2 on 2026-10-22: conformance, which of the two v0.2 texts each bundle's timestamps follow, trust fields, and a leaderboard, with the method and a page per bundle.

Try it in 60 seconds

Free and local; the scan engine is proprietary; JidoSeal also sells optional certificates.

Pick a folder, scan it. Watch the 76-second run first: Check an OKF v0.2 folder in 60 seconds (free, local). To try it on the three-file sample in this repository:

bash
git clone --depth 1 https://github.com/Jidoseal/jidoseal-mcp && cd jidoseal-mcp/examples/tiers/mixedpip install jidoseal-mcpclaude mcp add jidoseal -- jidoseal-mcp     # Claude Code; Cursor, Copilot, Codex, Gemini CLI, Zed and local models are belowclaude

(claude mcp add registers the server for the folder you run it in, so run it there, or add -s user.) Then ask: "Scan this folder with JidoSeal. Which tier does it reach, and what does each file need for Silver?"

The jidoseal_scan result it gets back, from a real run of jidoseal-mcp 0.1.4 (engine 0.1.4) on that folder on 2026-10-22 (UTC), trimmed to the summary and the Silver gaps:

jsonc
{  "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/}

The folder reaches no tier yet because notes.md has no frontmatter: a corpus's tier is that of its weakest file. AUTO marks a value JidoSeal can propose; NEEDS-CLIENT marks one only you can answer (here, owner).

Independent. OKF is an open specification from Google Cloud. JidoSeal is not affiliated with, sponsored by, or endorsed by Google or ISO. ISO names no fields: the Bronze/Silver/Gold tiers and their fields are defined by JidoSeal, as one way of evidencing selected ISO clauses. A JidoSeal tier or certificate is not an ISO certification.

Side effects and data, in brief

  • Reads: the *.md files under the folder you give it (hidden files and folders are skipped), plus <folder>/.jidoseal/config.yaml if present. The server refuses a folder that contains a symlink to a directory or to a file outside the folder.
  • Writes: <folder>/.jidoseal/manifest.json (replaced on each scan) and <folder>/.jidoseal/progress.ndjson (appended to). Nothing else; your notes are not modified.
  • Trust and changes tools: jidoseal_trust and jidoseal_changes read only and write nothing. jidoseal_changes runs the local git program, with transports disabled, to read the folder's history.
  • Network, scan and offer: none, by JidoSeal's own claim about its proprietary engine, not independently audited. The tests below check it on every change.
  • Network, checkout (optional, paid): jidoseal_start_checkout runs only with confirm: true. It sends eight fields to jidoseal.com: company, name and email as typed, the tier, a 0–100 score, the corpus's Merkle root, the local scan's id, and one flag saying which Bronze price applies. jidoseal.com copies them into the Stripe Checkout session it creates (the email as the session's customer email, all eight as session metadata), when the session is created, before any payment. No file contents, file names, per-file hashes or paths. No card data passes through this server.
  • Engine: the scan engine is the separate jidoseal package, under a proprietary licence. It ships as plain Python source and is pinned here to one version (0.1.4), with its sha256 in ENGINE-SHA256SUMS and an SBOM in sbom.cdx.json. So "nothing leaves your machine" is JidoSeal's own claim: you can check it with the commands under What leaves your machine and the tests in tests/, but it has not been independently audited.

What it checks

The scan is deterministic — presence of populated frontmatter fields, no model calls, no scoring by opinion. A field counts only if it has real content (title: with nothing after it earns nothing).

TierA file must have (populated)What it evidences
BronzetypeOKF v0.2 as written — type is its one required field
SilverBronze + title, description, timestamp, ownerISO 9001 §7.5.2, which asks for appropriate identification and description of a document and gives examples ("a title, date, author, or reference number"). These four fields are one reasonable way to evidence it.
GoldSilver + status, review_policy, reviewed_at, next_review_atISO 30401's kept-current knowledge governance. The standard sets no review interval; a stated review policy with real review dates is how you evidence it, and the cadence is yours to choose.

A corpus's tier is the tier of its weakest file. Coverage is the share of files that reach each tier. The full field reference — accepted aliases, what counts as "populated", what is excluded — is in docs/tiers.md.

A minimal Gold-tier file:

markdown
---type: policytitle: Leave policydescription: How leave accrues and how to request it.timestamp: 2026-09-01owner: dept:people-opsstatus: stablereview_policy: yearlyreviewed_at: 2026-09-01next_review_at: 2027-09-01---

Worked examples for each tier, and a mixed folder, are in examples/tiers/.

Tools

ToolWhat it doesNetwork
jidoseal_scanThe free Self-Check over a folder on this machine: corpus tier, per-file missing fields for the next tier (each marked AUTO — a value JidoSeal can propose — or NEEDS-CLIENT — only the owner can answer), coverage per tier, a 0–100 score, and a Merkle root of the corpus.none (JidoSeal's claim; see below)
jidoseal_certification_offerWhat optional certification would cost for this corpus, why, what it includes, and exactly which facts a purchase would send. Computes locally; starts nothing.none (same claim)
jidoseal_start_checkoutOnly on your explicit go-ahead, passed as confirm: true (without it, nothing is sent): asks jidoseal.com to create a Stripe Checkout session and returns the link for you to open. Takes no payment.jidoseal.com, which passes the fields to Stripe
jidoseal_trustBefore an agent relies on a document: stale, unverified or ok, with the reasons, from its OKF v0.2 trust and lifecycle fields (stale_after, status, verified, generated). Also its trust tier (§5.3), whether it meets OKF v0.2 conformance, and which text of v0.2 its timestamps follow. One file, or every *.md in a folder. Reads only. Plain Python in this package; does not use the scan engine.none
jidoseal_changesAfter an edit: every *.md that differs from a git commit (default HEAD, so the uncommitted edits and new files), what changed in its frontmatter and body, and what that did to its trust: a verified document whose text changed while verified did not, verified or type removed, generated.at not updated, status or stale_after changed. Reads only. Runs the local git with protocol.allow=never and no lazy fetch.none

Example jidoseal_scan result for examples/tiers/mixed (three files, one Gold, one Bronze, one with no frontmatter):

jsonc
{  "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 on a file means its frontmatter block exists but does not parse; no field write can close its gaps until it is fixed by hand.

Trust before you rely on a document

Ask: "Before you use ~/notes/policies/leave.md, check it with jidoseal_trust." or, after an agent has edited your notes, "Run jidoseal_changes on ~/notes: what did you change, and which verified documents did it leave unconfirmed?" A jidoseal_trust answer for one file:

jsonc
{  "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 changed on 2026-08-21 without a version bump: stale_after, sources[].last_modified and usage_window went from bare dates to datetimes with a UTC offset. Both forms are accepted, and which_0_2 says which one a document uses.

Install and wire it into your tool

Requires Python 3.9+. pip install jidoseal-mcp also installs jidoseal (the scan engine and CLI, pinned to the tested version) and puts a jidoseal-mcp command on your PATH. No account and no API key. The scan itself needs no network — it runs the same offline.

Every tool below launches the same local command, jidoseal-mcp, over stdio. Only the place you write it down differs.

Claude Code
bash
claude mcp add jidoseal -- jidoseal-mcp

or commit a project-scoped .mcp.json:

json
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp" } } }
Claude Desktop

Settings → Developer → Edit Config opens claude_desktop_config.json. Add:

json
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp", "args": [] } } }

Restart Claude Desktop afterwards.

Cursor

~/.cursor/mcp.json (or .cursor/mcp.json in a project):

json
{ "mcpServers": { "jidoseal": { "type": "stdio", "command": "jidoseal-mcp", "args": [] } } }
GitHub Copilot (VS Code agent mode, and Visual Studio, JetBrains, Eclipse, Xcode)

Copilot Chat uses MCP tools in Agent mode. In VS Code, add .vscode/mcp.json to the project (or run MCP: Open User Configuration for every project):

json
{ "servers": { "jidoseal": { "type": "stdio", "command": "jidoseal-mcp" } } }

Copilot in Visual Studio, JetBrains IDEs, Eclipse and Xcode takes the same servers entry in its own MCP settings. On a Copilot Business or Enterprise seat, your organization must have the "MCP servers in Copilot" policy turned on; it is off by default.

OpenAI Codex (CLI, IDE extension and app)
bash
codex mcp add jidoseal -- jidoseal-mcp

or in ~/.codex/config.toml:

toml
[mcp_servers.jidoseal]command = "jidoseal-mcp"
Gemini CLI
bash
gemini mcp add -s user jidoseal jidoseal-mcp

or in ~/.gemini/settings.json (or .gemini/settings.json in a project):

json
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp" } } }
Zed

In Zed's settings.json (or Settings → AI → MCP Servers → Add Local Server):

json
{ "context_servers": { "jidoseal": { "command": "jidoseal-mcp", "args": [], "env": {} } } }
Cline

MCP Servers → Configure → Configure MCP Servers, then add:

json
{ "mcpServers": { "jidoseal": { "type": "stdio", "command": "jidoseal-mcp", "args": [], "disabled": false } } }
Continue

.continue/mcpServers/jidoseal.yaml in your workspace (MCP tools run in Continue's agent mode):

yaml
name: JidoSealversion: 0.0.1schema: v1mcpServers:  - name: jidoseal    type: stdio    command: jidoseal-mcp
JetBrains AI Assistant

Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add → STDIO, and paste:

json
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp", "args": [] } } }
A local model

Any MCP client that can launch a stdio server and sits in front of a local model takes the same two facts — a name and a command:

json
{ "mcpServers": { "jidoseal": { "command": "jidoseal-mcp", "args": [], "env": {} } } }
No AI tool at all — just the command line
bash
pipx install jidoseal && jidoseal --root ~/notes

Same scan, same verdict, from a terminal. See the jidoseal CLI on PyPI.

If your host uses a different Python than the one you installed into, point it at the module: "command": "/path/to/python", "args": ["-m", "jidoseal_mcp"].

Check the wiring by hand, without any host:

bash
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

You should see an initialize result naming jidoseal, then the three tools.

Run it in CI

The CLI writes .jidoseal/manifest.json; a few lines turn it into a gate. See docs/ci.md for a GitHub Actions workflow that fails the build when any file falls below Silver.

What leaves your machine

A scan: JidoSeal's claim is that it sends nothing: not the files, not their names, not their contents. The engine that does the scan is proprietary, and nobody independent has audited this claim. It is built to be checkable: jidoseal_mcp.py, scan_result.py and offer.py import no socket, no urllib, no HTTP client, and neither does anything they pull in, including the ten engine modules the pinned jidoseal wheel contains. checkout_client.py is the one module that can reach the network, and it is imported only inside the checkout handler. git_changes.py, behind jidoseal_changes, is the one module that starts a program: the local git, with transports disabled (protocol.allow=never, GIT_NO_LAZY_FETCH=1), imported only inside its own handler.

A purchase, only if you choose one and the call carries confirm: true: the company, name and email you typed, the tier, a 0–100 score, the corpus's Merkle root, the local scan's id, and which Bronze price applies, sent to jidoseal.com. jidoseal.com copies them into the Stripe Checkout session it creates: the email as the session's customer email, and all eight as session metadata. That happens when the session is created, before any payment. No file contents, no file names, no per-file hashes, no paths, and no card data through this server (Stripe hosts the payment page). The Merkle root is a one-way digest.

Verify it yourself:

bash
strace -f -o /tmp/trace.txt -e trace=network jidoseal-mcp < your-jsonrpc-input   # no network syscalls during a scanbwrap --unshare-net --dev-bind / / jidoseal-mcp < your-jsonrpc-input             # the scan works with no network at all

The scan writes its own records — manifest.json and an appended progress.ndjson — under <folder>/.jidoseal/ and nowhere else. It never modifies your notes.

The test suite checks the same things on every change, against the pinned engine wheel after verifying its sha256 (see .github/workflows/tests.yml):

FileWhat it holds
tests/test_scan_isolation.pyThe scan opens and lists nothing outside the folder; folders with symlinks that lead out of it, or to directories, or that redirect .jidoseal/, are refused before the engine runs; and the installed jidoseal CLI (engine 0.1.4) refuses links out on its own, writing nothing.
tests/test_write_boundary.pyThe only files created or changed are the two under <folder>/.jidoseal/; notes are byte-for-byte unchanged.
tests/test_network_boundary.pyNo socket, DNS lookup or child process during a scan — in-process with sockets blocked, and end to end over stdio in a process that exits on any socket event.
tests/test_checkout_confirmation.pyCheckout makes no request without confirm: true, and with it sends exactly the eight fields above (HTTP mocked).
tests/test_import_graph.pyStatic check of every module on the scan path, the engine's included.
tests/test_trust_and_changes.pyjidoseal_trust and jidoseal_changes: verdicts, the two v0.2 timestamp texts, no writes, no socket, and git as the only program jidoseal_changes starts, always with transports disabled.
tests/test_packaging.pyThe engine pin, ENGINE-SHA256SUMS, the SBOM and the installed engine files all agree. No tool text or result shows the engine's unqualified no-egress line, and the checkout text names the Stripe step.

The jidoseal command-line tool refuses such folders too, from engine 0.1.4 (the version pinned here): a symlink to a file or directory outside the folder, or a symlinked .jidoseal/, stops the run before anything is read or written, and the command exits with status 2. It does not follow a symlinked directory inside the folder either, so each file is read once. This server is a little stricter: it refuses a symlinked directory even when it stays inside. The CLI's own no-network line is worded as JidoSeal's claim, like this server's. Engine 0.1.3 and earlier followed symlinks and printed an unqualified line, so use 0.1.4 or later.

Optional certification

Scanning is free and unlimited, and so are the fixes. If you want a dated certificate for the grade your folder reached, bound to the Merkle root of your corpus, with a public verification page and a listing in the public registry, that is a paid step on jidoseal.com; current prices are published there, one flat price per grade however many files. A person at JidoSeal signs it off from the grade, the score and that fingerprint only, never from your file contents.

Links

About this repository

This repository holds the source of the jidoseal-mcp package: an MCP server implemented on the Python standard library alone (no MCP SDK), speaking JSON-RPC 2.0 over stdio. It depends on the separately published jidoseal package for the scan engine, which is not part of this repository and is pinned to one tested version. Run the tests with pip install -e ".[test]" && pytest. Issues are welcome; please include the jidoseal-mcp and jidoseal versions and the smallest folder that reproduces a problem.

License

Apache-2.0 for the code in this repository — see LICENSE. The jidoseal engine it depends on is distributed separately under its own terms.

来源:README.md,提交 04779d7

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

5
  1. v0.2.0最新Oct 29, 2026
  2. v0.1.4Oct 1, 2026
  3. v0.1.3Oct 1, 2026
  4. v0.1.2Sep 23, 2026
  5. v0.1.1Sep 23, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分