Miramo
French rental law for tenants and landlords: rent caps, rental zones and unfurnished lease drafts.
作者による説明(英語の原文)
MCP compliance proxy between agent and tools: deterministic governance, fail-closed, audit trail.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"kcp-harness": {
"command": "npx",
"args": [
"-y",
"kcp-harness",
"serve"
]
}
}
}ターミナルでこれを実行します
claude mcp add kcp-harness -- npx -y kcp-harness serveプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"kcp-harness": {
"command": "npx",
"args": [
"-y",
"kcp-harness",
"serve"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"kcp-harness": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"kcp-harness",
"serve"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名はドメイン cantara.no で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.4.1)がレジストリに届いたのは4 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Miramo, Private Law Wiki, Gerro: госзакупки для ИИ / Russian public procurement
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
French rental law for tenants and landlords: rent caps, rental zones and unfurnished lease drafts.
Sourced answers, search and bank-case assessment for wiki.private.law by the Mothership runtime.
Госзакупки РФ в ИИ-чате: поиск, обеспечения, документы. Russian public procurement for AI chats.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Deterministic knowledge governance for any AI agent.
*Your agent can read every file in your project. Can it prove why it read what it read?*
KCP Harness is an MCP compliance proxy that sits between an AI coding agent and its tools. It intercepts knowledge-related calls, routes them through the kcp-agent deterministic planner (14-gate cascade, no LLM), and produces compliance artifacts — decision traces, audit logs, budget ledgers — as a side effect of normal agent operation.
The agent can't bypass governance because it only talks to the proxy's MCP interface. The proxy decides what knowledge is accessible, tracks spend, and logs every decision. Fail-closed: if the harness can't verify a request, the agent gets nothing.
Agent (Claude Code / Cursor / Copilot / Windsurf / Cline / Crush / OpenClaw / ...)
│ │ MCP tool call v ┌─────────────────────────────────────────────────────────┐ │ kcp-harness │ │ │ │ classify → govern (14 gates) → execute → audit │ │ │ │ Side outputs: │ │ · Decision traces (per-request, deterministic) │ │ · Audit log (append-only JSONL) │ │ · Budget ledger (itemized, ceiling-enforced) │ │ · Temporal drift (plan validity over time) │ │ · Approval tickets (named-human sign-off, durable) │ │ · Confidence verdicts (post-synthesis gate) │ └─────────────────────────────────────────────────────────┘ │ v Knowledge manifests (knowledge.yaml)
[Documentation →](https://cantara.github.io/kcp-harness/)
Enterprises need agents that are *defensible* — auditable, reproducible, budget-controlled, temporally pinned. Today's agents can't prove why they read what they read. The harness adds a compliance layer without replacing the agent.
| What you keep | What the harness adds |
|---|---|
| Your agent (Claude Code, Cursor, Copilot, ...) | Deterministic knowledge selection |
| Your workflow (coding, reviewing, shipping) | Decision traces (14 gates per unit) |
| Your tools (MCP servers, shell, browser) | Budget enforcement (ceiling, per-currency) |
| Temporal governance (drift detection) | |
| Append-only audit log | |
| Replay / cross-examination | |
| Human-approval gates (named reviewer + policy citation) | |
| Confidence gating (post-synthesis, route-to-human) |
You sell the compliance layer. The agents are pluggable.
npm install -g kcp-harness
Or use without installing:
npx kcp-harness --help
Pre-built binaries (no Node/Deno required) for Linux x64/arm64, macOS x64/arm64, and Windows x64 — grab them from a release. To build one yourself:
npm ci && npm run build
deno compile --allow-read --allow-env --allow-net --allow-run \ --node-modules-dir=auto --output kcp-harness dist/cli.js
kcp-harness init # creates harness.yaml
kcp-harness integrate claude-code # or: pi, cursor, copilot, windsurf, cline, continue, crush, openclaw
Your agent now routes knowledge access through the harness. Every decision is logged.
| Agent | Config | Integration |
|---|---|---|
| Claude Code | .mcp.json + PreToolUse hooks | kcp-harness integrate claude-code |
| Cursor | .cursor/mcp.json + .mdc rules | kcp-harness integrate cursor |
| GitHub Copilot | .vscode/mcp.json (uses "servers" key) | kcp-harness integrate copilot |
| Windsurf | global config + .windsurfrules | kcp-harness integrate windsurf |
| Cline | MCP settings + .clinerules | kcp-harness integrate cline |
| Continue | .continue/mcpServers/*.yaml | kcp-harness integrate continue |
| Crush | crush.json + PrepareStep | kcp-harness integrate crush |
| OpenClaw | openclaw.json + plugin hooks | kcp-harness integrate openclaw |
| Pi | .pi/mcp.json + project skills | kcp-harness integrate pi |
Each agent has its own MCP config format, rules file, and quirks. The integrate command handles them all — one governance layer, any agent.
Every tool call flows through a five-stage pipeline:
1. RECEIVE MCP JSON-RPC request from agent
The classifier examines each tool call and determines whether it targets governed knowledge. Read("docs/api.md") where docs/ is governed? Route through the planner. Read("package.json") where package.json isn't governed? Pass through. KCP tools (kcp_plan, kcp_load) are always governed.
Two automated modes, plus a human gate that outranks both:
kcp_plan first. The harness caches the approved plan. Subsequent reads are checked against the cached plan — no re-planning.kcp_plan.governance.approvals rule are held for a named reviewer (pending), no matter what the automated paths would decide. Tickets survive restarts and resolve via the kcp-harness approvals CLI (or any custom ApprovalProvider channel). Resolutions require a named reviewer *and* a policy citation.Every knowledge unit is evaluated through 14 deterministic gates, in order:
audience → not_for → temporal → deprecated → supersession → relevance →
skill_eligibility → attestation → payment → access → strict → max_units → money_budget → context_budget
A unit must pass all gates. The gate that blocks it is recorded in the decision trace. Same inputs → same plan. No model involved.
For the skill_eligibility gate's subject matter — governed kind: skill units — the authoring conventions, linter, and conformance vectors live in Cantara/kcp-skill.
Once connected, agents can use these governance tools:
| Tool | Description |
|---|---|
kcp_plan | Deterministic load plan — which units, in what order, which skipped and why |
kcp_load | Plan + load eligible unit content |
kcp_trace | Full 14-gate decision trace |
kcp_validate | Lint a knowledge.yaml |
harness_status | Current governance state |
harness_session | Approved plans + known units for this session |
harness_budget | Itemized spend tracking |
harness_temporal_check | Plan drift detection |
harness_approvals | Human-approval tickets (pending / approved / dismissed / expired) |
harness_assess | Confidence-gate a synthesized answer before acting on it |
Append-only JSONL. Every decision — governed or pass-through — is logged with sequence number, timestamp, tool, targets, and governance decision:
cat .kcp-harness/audit.jsonl | jq 'select(.governed == true)'
Append-only itemized spend tracking. Per-currency running totals. Ceiling enforcement — a load that would exceed the budget is rejected atomically (no partial loads).
Plans are registered with a temporal watcher. On subsequent calls, the watcher re-evaluates against the current time. If units have drifted (expired, newly valid), the harness emits a drift event. Long-running sessions stay honest.
Calls matching an approval rule open a durable ticket (pending_review → approved | dismissed | expired, plus used for a consumed one-shot grant). The ticket store survives restarts — sessions are ephemeral, human review is not. Every resolution records *who* approved, *when*, and *which policy* it satisfies — evidence generated at approval time, never reconstructed from logs.
An approval is a bounded grant, never a standing permission. It covers the session that opened the ticket, the exact tool and target, and the call's arguments digest — and it lapses. Each rule sets grant: once | session | (default session), always capped by governance.approvals.grant_max (default 24h). A call outside a valid grant is denied, audited as grant_denied (expired, wrong_session, used, ...) and opens a *new* ticket. A standing permission is a policy rule, not a click. A grant's window is measured from the store's own clock, not the reviewer-supplied reviewedAt; the first valid resolution of a ticket wins (a dismissed ticket cannot be re-approved by an appended line); with approvals.require_signed_resolutions signatures are verified on every read, not only in resolve(); and approvals.require_args_binding refuses grants from tickets not bound to the call's arguments. What the ticket store does *not* protect — write access to its directory — is stated in the Ticket store trust model. See Governance Model.
harness_assess runs kcp-agent's post-synthesis assess() over a synthesized answer before it may be acted on. The planner gates *loading*, grounding gates *asserting*, this gates *acting*. Below-threshold verdicts on routed configs open an approval ticket with the full verdict embedded as evidence.
# harness.yaml
version: "1.0"
governance: domains:
policy: fail_closed: true audit_all: true max_units: 5 budget: amount: 1.00 currency: USDC
confidence: # optional post-synthesis gate (harness_assess) threshold: 0.7 severity: critical route_to_role: account-owner
approvals: # optional human-approval gates provider: file rules:
require_args_binding: true # refuse grants not bound to the call's arguments (recommended)
audit: path: ".kcp-harness/audit.jsonl"
kcp-harness serve [--config harness.yaml] Start the MCP proxy
kcp-harness init Create a harness.yaml template kcp-harness check [--config harness.yaml] Validate configuration kcp-harness integrate [options] Generate agent integration files kcp-harness integrate --list List supported agents kcp-harness export [options] Export compliance evidence (SOC 2 / ISO 27001) kcp-harness dashboard [options] Launch the live compliance dashboard kcp-harness approvals list [--state s] List human-approval tickets kcp-harness approvals approve --reviewer --policy-ref kcp-harness approvals dismiss --reviewer -
冒頭だけを表示しています。続きはリポジトリで読めます