Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Shpbl Canary Chain

БесплатноНе проверен

Canary evidence chain: mints canary markers into the package's own synthetic test data and detects those markers reappearing in operator-supplied text. Referenc

GitHubEmbed

Описание

Canary evidence chain: mints canary markers into the package's own synthetic test data and detects those markers reappearing in operator-supplied text. Reference implementation of the public SHPBL behaviour specification.

README

Mints canary markers into synthetic data this package generates itself, then proves — with a payload-free, hash-linked evidence chain — when one of those markers reappears in text you control.

MIT licensed · zero runtime dependencies · MCP stdio server · TypeScript

The security problem

You share an evaluation corpus with a vendor, a model provider, or an internal team. Later you want to know whether that data spread beyond where you released it — into a retrieval index, a model context, a support export, a leaked dump. Ordinary logging cannot answer it, and the answer needs to survive scrutiny: an evidence record that has not been quietly edited after the fact.

What this product does

You generate a synthetic dataset inside this package, mint a canary marker bound to one of its records and one recipient label, hand that marker to exactly one recipient, and later scan text you already control. If the marker comes back, you have evidence that data released to one recipient reached a place you did not release it to — recorded as a payload-free, hash-linked evidence entry whose export verifies as a pure function of its own bytes.

Major capabilities

  • Deterministic synthetic datasets. Generated from a fixed 32-bit seed, so a dataset is reproducible and never clock-derived.
  • Bound canary markers. Each marker binds one generated record to one recipient label. The marker value is returned to the caller exactly once and is not retrievable afterwards through any public operation.
  • Streaming detection. scan_for_canaries scans caller-supplied text or an async chunk stream for known markers.
  • Hash-linked evidence. Entries store digests, never payloads or marker values; export verification is pure and offline.
  • Session-local containment. A trip sets a containment flag reported to the caller — never an action taken against a person or a third-party system.
  • Honeypot record registration. Register a generated record as a honeypot and report access observations against it, on the same evidence chain.

The synthetic-test-data-only boundary

This is a deliberate product boundary, technically enforced, not a disclaimer:

  • Canaries can only be minted against datasets this package generated itself. There is no constructor or cast path that accepts caller-supplied "real" records.
  • Recipient labels that look like real-world identifiers (e-mail, URL, hostname, IP address, phone number, IBAN, payment card, cloud ARN or access key) are rejected by shape, naming the class that matched.
  • Seeds must be fixed 32-bit integers.
  • Evidence entries store digests only; a marker value is never re-exposed.
  • The package has no network, filesystem-write, or process-execution capability, verified by a build-failing symbol scan.

Honest limitation, preserved from the specification: an operator could manually copy a synthetic canary marker into production data or into somebody else's dataset. This package cannot prevent that. It constrains what the software does, not what a human chooses to do with a string it handed them.

Install and run

Prerequisites: Bun 1.1+ (or Node 22+ with a TypeScript loader). No runtime dependencies to install.

git clone https://github.com/SweetKenneth/shpbl-canary-chain.git
cd shpbl-canary-chain
bun install                    # dev types only
bun test                       # conformance suite
bun run scripts/symbol-scan.ts # build-failing forbidden-capability scan
bun src/mcp-server.ts          # MCP server: newline-delimited JSON-RPC 2.0 on stdin/stdout

MCP configuration

{
  "mcpServers": {
    "canary-chain": {
      "command": "bun",
      "args": ["/absolute/path/to/shpbl-canary-chain/src/mcp-server.ts"]
    }
  }
}

Tool surface

Tool Purpose
generate_synthetic_dataset deterministically generate a package-owned synthetic dataset
mint_canary mint a marker bound to one generated record and one recipient label
register_honeypot register a generated record as a honeypot
report_access record an access observation against a honeypot
scan_for_canaries scan caller-supplied text or an async chunk stream for known markers
export_evidence export the payload-free, hash-linked evidence chain and verify it
get_stats per-dataset and per-recipient canary and trip counts
describe_policy seed rules, limits, identifier-shape classes, hash algorithm
reset_state clear session state; previously exported evidence is unaffected

Worked example

examples/worked-example.ts generates a dataset, mints a canary for one recipient, scans clean text, then scans text containing the marker, and exports and verifies the resulting evidence chain.

bun examples/worked-example.ts

Verification results

25 conformance tests, 72 assertions: specification properties P1–P13, every §7 failure mode, the export allowlist, and the MCP JSON-RPC surface. Forbidden-symbol scan covers 8 source files with 0 findings. Strict typecheck is clean. Runtime dependencies: zero.

Security boundaries

Protects against: a synthetic evaluation dataset released to one recipient turning up in text you control but never released it to. The evidence chain makes the recurrence provable after the fact and resistant to quiet editing.

Does not protect against: the leak itself, or attribution of blame. A trip proves the marker reappeared in text you scanned. It does not prove who moved it.

Refused capabilities: network access of any kind, filesystem writes, process execution, foreign closure references. Evidence persistence happens only through a sink the caller supplies; if that sink rejects a write, the entry is discarded and the chain head is left unchanged.

See SECURITY.md for the full threat model and misuse boundary.

Known limitations

  • An operator can manually copy a synthetic marker into production data. The package cannot prevent that, and does not claim to.
  • A trip is evidence of recurrence, not of who caused it.
  • Scanning covers only text the caller supplies; the package never discovers or fetches content.

Provenance

Discovered with SHPBL. This product originated through cross-capability composition in the SHPBL capability library. Its public implementation was independently built from a published behavioural specification. SHPBL's proprietary capability library, discovery system, harvested implementation bodies, and private provenance machinery are not included.

Tenable status

Submitted to the Tenable CyberAgents Exchange for review on September 11, 2026. Submission does not imply review, approval, certification, validation, endorsement, or acceptance by Tenable.

SHPBL Agent Evidence series

Independently installable, interoperable at the evidence-record boundary:

Licence

MIT — Copyright (c) 2026 Kenneth E. Sweet Jr. See LICENSE.

from github.com/SweetKenneth/shpbl-canary-chain

Установка Shpbl Canary Chain

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/SweetKenneth/shpbl-canary-chain

FAQ

Shpbl Canary Chain MCP бесплатный?

Да, Shpbl Canary Chain MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Shpbl Canary Chain?

Нет, Shpbl Canary Chain работает без API-ключей и переменных окружения.

Shpbl Canary Chain — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Shpbl Canary Chain в Claude Desktop, Claude Code или Cursor?

Открой Shpbl Canary Chain на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Opencode Omniroute Plugin

OpenCode plugin for the OmniRoute AI Gateway. Drives dynamic model discovery, /connect auth flow, and multi-instance OmniRoute providers via the official @openc

GitHub Actionsавтор: GitHub Actions

Roblox Studio

Enables AI coding tools to control Roblox Studio for workspace exploration, instance manipulation, and script management. It provides tools for playtesting, sce

paralovавтор: paralov

Antigravity Drawio

MCP server that enables AI assistants to create, parse, render, and validate Draw.io diagrams programmatically.

S-SUJAN-Sавтор: S-SUJAN-S

Fetch

Web content fetching and conversion for efficient LLM usage.

автор: Community

AWS KB Retrieval

Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.

modelcontextprotocolавтор: modelcontextprotocol

Spring AI MCP Server

Provides auto-configuration for setting up an MCP server in Spring Boot applications.

автор: Community

llm-analysis-assistant

A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also

xuzexin-hzавтор: xuzexin-hz

MCP-Agent

A simple, composable framework to build agents using Model Context Protocol by [LastMile AI](https://www.lastmileai.dev)

lastmile-aiавтор: lastmile-ai

Spring AI MCP Client

Provides auto-configuration for MCP client functionality in Spring Boot applications.

автор: Community

mcp.natoma.ai

A Hosted MCP Platform to discover, install, manage and deploy MCP servers by [Natoma Labs](https://www.natoma.ai)

автор: Community

Compare Shpbl Canary Chain with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai