Skip to main content
Glama
README.md
# mcp-kinetic-gain

One **MCP server**, all twelve [Kinetic Gain Protocol Suite](https://suite.kineticgain.com/) specs + the v0.1.0 implementation tooling + the DefenseTech 6-pack semantics (8 tools). Drop into Claude Desktop, Cursor, or any MCP-compatible client with a single config entry. The agent gains **75 tools** (47 spec + 16 implementation-preview + 8 DefenseTech + 4 AI Claims Decision Card, v0.9.0): AEO Protocol, Prompt Provenance, Agent Cards, AI Evidence Format, MCP Tool Cards, AI Tutor Cards, Student AI Disclosure, Classroom AI AUP, Clinical AI Disclosure, AI Incident Card, AI Procurement Decision Card, AI Claims Decision Card - plus hash attestation (ed25519), audit-stream event composition + chain verification (offline AND live against a running audit-stream-py via `AUDIT_STREAM_URL`), cross-spec drift detection, Decision Intelligence preview, and the DefenseTech vault resolver + invariant checkers. **New in v0.9.0**: the AI Claims Decision Card (InsurTech, `claims_card_version`) - `claims_card_validate`, `claims_card_inspect`, `claims_card_sign`, `claims_card_chain`.

This is the agent-facing companion to [kinetic-gain-visualizer](https://github.com/mizcausevic-dev/kinetic-gain-visualizer): the visualizer renders the specs for humans, while this server exposes validation and workflow tools for agents. The optional `audit_event_emit` tool sends an event to a configured audit-stream service.

## Tools

<!-- BEGIN TOOL CATALOG (generated by scripts/gen-readme-tools.mjs from src/tools.ts - do not hand-edit) -->
<details>
<summary>75 tools</summary>

- `aeo_fetch` - Fetch the full AEO Protocol declaration at an origin's
- `aeo_inspect` - Return a structured summary of an AEO declaration: entity
- `aeo_get_claim` - Extract a single AEO claim by ID
- `aeo_well_known_url` - Compute the canonical AEO well-known URL for an origin
- `prompt_provenance_validate` - Validate a Prompt Provenance JSON document against the v0.1
- `prompt_provenance_inspect` - Structured summary of a Prompt Provenance document: prompt
- `prompt_provenance_eval_result` - Extract a single evaluation suite's result from a Prompt
- `agent_card_well_known_url` - Compute the canonical Agent Card well-known URL for a given
- `agent_card_inspect` - Structured summary of an Agent Card document
- `agent_card_tool_disclosure` - Return the list of tools an agent declares, with side-effect
- `agent_card_validate` - Validate an Agent Card JSON document against the v0.1 schema.
- `ai_evidence_validate` - Validate an AI Evidence object against the v0.1 schema.
- `ai_evidence_inspect` - Structured summary of an AI Evidence object: claim text
- `ai_evidence_verify_hash` - Compute SHA-256 over the canonical UTF-8 form of
- `tool_card_well_known_url` - Compute the canonical MCP Tool Card well-known URL
- `tool_card_inspect` - Structured summary of an MCP Tool Card: tool identity, safety
- `tool_card_tested_with` - Return the tested-LLM entries for a tool, optionally filtered
- `tool_card_validate` - Validate an MCP Tool Card JSON document against the v0.1
- `tutor_card_well_known_url` - Compute the canonical AI Tutor Card well-known URL
- `tutor_card_fetch` - Fetch a Tutor Card from a URL
- `tutor_card_validate` - Validate an AI Tutor Card JSON document against the v0.1
- `tutor_card_inspect` - Structured summary of a Tutor Card: tutor identity, audience
- `tutor_card_subject_check` - Classify a topic against the tutor's subject scope
- `tutor_card_coppa_check` - Enforce the spec's COPPA conditional rule: if
- `disclosure_validate` - Validate a Student AI Disclosure JSON document against the
- `disclosure_inspect` - Structured summary of a Student AI Disclosure: assignment
- `disclosure_verify_artifact_hash` - Recompute SHA-256 over a candidate artifact and compare to
- `disclosure_verify_prompt_hash` - Verify a single prompt hash in a hashed-mode disclosure
- `disclosure_aup_check` - Surface the disclosure's declared policy posture and any
- `aup_well_known_url` - Compute the canonical Classroom AI AUP well-known URL
- `aup_fetch` - Fetch a Classroom AI AUP from a URL
- `aup_validate` - Validate a Classroom AI AUP JSON document against the v0.1
- `aup_inspect` - Structured summary of a Classroom AI AUP: policy identity
- `aup_check_compliance` - Compare an AUP with a Student AI Disclosure on eight declared
- `clinical_ai_well_known_url` - Compute the canonical Clinical AI Card well-known URL
- `clinical_ai_fetch` - Fetch a Clinical AI Card from a URL
- `clinical_ai_validate` - Validate a Clinical AI Card JSON document against the v0.1
- `clinical_ai_inspect` - Structured summary of a Clinical AI Card: system identity
- `incident_well_known_url` - Compute the canonical AI Incident Card well-known URL
- `incident_fetch` - Fetch an AI Incident Card from a URL
- `incident_validate` - Validate an AI Incident Card JSON document against the v0.1
- `incident_inspect` - Structured summary of an AI Incident Card: incident identity
- `incident_index_fetch` - HEADLINE TOOL, fetch a vendor's
- `decision_card_well_known_url` - Compute the canonical AI Procurement Decision Card well-known
- `decision_card_fetch` - Fetch an AI Procurement Decision Card from a URL
- `decision_card_validate` - Validate an AI Procurement Decision Card JSON document
- `decision_card_inspect` - Structured summary of an AI Procurement Decision Card: buyer
- `decision_card_infer_status` - Validate each rubric row, then infer a preview decision.status
- `decision_card_to_policy_bundle` - Read-only deny preview for rejected, withdrawn, expired, or
- `decision_card_signature_check` - Structural check on a Decision Card's signatures[] block
- `incident_affected_walk` - Walk an Incident Card's affected block and return every
- `incident_remediation_plan` - Map each affected URI in an Incident Card to a recommended
- `attestation_canonical_hash` - Compute the SHA-256 canonical-JSON hash of an arbitrary value
- `attestation_verify` - Verify an ed25519 Attestation envelope against a body and
- `attestation_inspect` - Pretty-print an Attestation envelope with structural
- `audit_event_compose` - Build a ready-to-POST audit-stream-py GovernanceEvent
- `audit_chain_verify` - Walk an array of GovernanceEvents top-to-bottom and verify
- `audit_event_inspect` - Pretty-print one GovernanceEvent with structural validation
- `audit_event_emit` - POSTs a governance event to the audit-stream-py instance
- `audit_events_query` - GET recent governance events from a running audit-stream-py
- `audit_chain_verify_live` - Ask the configured audit-stream service to check its full
- `suite_doc_detect_spec` - Detect which Kinetic Gain Suite spec a JSON document is by
- `suite_doc_drift` - Structural diff between two versions of the same Suite
- `defensetech_vault_resolve_3axis` - Deterministic preview of a DefenseTech 3-axis vault contract
- `defensetech_audit_event_check_invariants` - Run three deterministic DefenseTech event checks: CUI
- `defensetech_check_dfars_72h_clock` - Calculate the DFARS 252.204-7012 discovery-to-filing 72-hour
- `defensetech_check_cui_distribution_statement` - Check that a CUI-Specified+ tier event carries the required
- `defensetech_check_itar_us_person` - Check that an ITAR resource event has US-PERSON-VERIFIED (or
- `defensetech_incident_classify_event_type` - Given a freeform description of a defense-AI incident
- `defensetech_summarize_cmmc_evidence_bundle` - Summarize a CMMC L2/L3 readiness evidence bundle: target
- `defensetech_vault_contract_cross_binding_check` - Verify the cross_binding_refs block on a DefenseTech vault
- `claims_card_validate` - Validate an AI Claims Decision Card against the bundled v0.1
- `claims_card_inspect` - Structured summary of an AI Claims Decision Card: claim type
- `claims_card_sign` - Compute the canonical SHA-256 hash of an AI Claims Decision
- `claims_card_chain` - Link a new AI Claims Decision Card to its predecessor: sets

</details>
<!-- END TOOL CATALOG -->

Specs **with a well-known URL convention** (AEO, Agent Cards, Tool Cards) get fetch tools. Specs **without** one (Prompt Provenance, AI Evidence - these usually travel inline with answers or in repos, not at fixed paths) get parse tools that take a `document_json` string.

## Network and data boundaries

URL fetch tools make outbound HTTP(S) requests to user-supplied origins. The server rejects local and nonpublic destinations, rechecks redirects, and limits JSON responses to 1 MB. The optional live audit tools require both `AUDIT_STREAM_URL` and `AUDIT_STREAM_TOKEN` in the MCP server's environment. The token must match the audit-stream service's bearer token and have at least 32 visible ASCII characters. Use HTTPS for a remote service; HTTP is accepted only for loopback development. Missing or invalid configuration returns an error without sending a request. `audit_event_emit` sends `kind`, caller-asserted `source`, and `payload` to the configured service and validates its event receipt. The receipt does not prove durable storage or event completeness. Its shared token authenticates this MCP process, not the source label or tenant. Approve the write before calling it; omit secrets and personal data unless the service is approved for them. Hash-chain verification checks continuity only; it does not prove audit completeness.

Schema validation checks the document shape and selected rules. A passing result is not proof of FERPA, COPPA, HIPAA, FDA, EU AI Act, CMMC, export-control status, or other legal compliance. `attestation_verify` checks a signature against the public key supplied by the caller; it does not establish the key owner's identity. `aup_check_compliance` evaluates eight disclosed fields only; it does not check policy scope, tool/vendor requirements, parent consent, or Tutor Cards. A true `allowed` value is not an authorization grant. DefenseTech tools calculate from supplied data; they do not classify materials or verify a person's status or license. Positive Decision Cards require the live policy engine's identity, scope, action, expiry, and trusted-attestation checks before an enforceable bundle can be created.

The DefenseTech 72-hour clock uses the time an incident was **discovered**, not when it occurred or when an audit event was created. Supply discovered_at and filed_at with time zones; see [DFARS 252.204-7012](https://www.acquisition.gov/dfars/252.204-7012-safeguarding-covered-defense-information-and-cyber-incident-reporting.). A report's actual submission and contract applicability require external evidence.

## Start with a task

- **Review a card:** pass a parsed document to `claims_card_validate`, then use `claims_card_inspect` to summarize its declared decision. Investigate any validation failure before relying on the summary.
- **Compare drafts:** call `suite_doc_drift` with two versions of the same Suite document to see structural changes before publication.
- **Check a signature:** call `attestation_verify` with a public key obtained through a trusted channel; separately confirm that the key belongs to the claimed signer.
- **Record an event:** prepare the payload with `audit_event_compose`, review it for sensitive data, then call `audit_event_emit` only when the configured audit-stream service and write are approved.

## Install

The commands below install the version currently published on npm. To run this
source checkout instead, use `npm ci`, `npm run build`, then
`node dist/server.js`. Check `npm view mcp-kinetic-gain version` before relying
on a particular source change.

```bash
npm install -g mcp-kinetic-gain
```

Or run without installing via `npx`:

```bash
npx mcp-kinetic-gain
```

For a controlled deployment, pin a reviewed package version in the client config (`mcp-kinetic-gain@<version>`) and upgrade deliberately.

## Claude Desktop config

Add to your `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\Claude\`):

```json
{
  "mcpServers": {
    "kinetic-gain": {
      "command": "npx",
      "args": ["-y", "mcp-kinetic-gain"]
    }
  }
}
```

Restart Claude. All 75 tools appear in the tools panel. Try:

> *"Use aeo_inspect on https://mizcausevic-dev.github.io to summarize the entity declaration, then use ai_evidence_verify_hash to check the content_hash of an evidence object against my candidate text."*

## CLI mode (v0.5.1+)

The same binary doubles as a Suite JSON validator outside any MCP host. Useful in CI, pre-commit hooks, or local sanity-checks.

```bash
# Validate a single document
npx mcp-kinetic-gain validate path/to/ai-entity.json

# Validate a tree of well-known files
npx mcp-kinetic-gain validate ".well-known/**/*.json"

# Multiple paths or globs
npx mcp-kinetic-gain validate cards/clinical-*.json cards/incident-*.json

# Other commands
npx mcp-kinetic-gain --version
npx mcp-kinetic-gain --help
```

The CLI auto-detects which Suite spec each file belongs to via its top-level version field (`aeo_version`, `clinical_ai_card_version`, `aup_version`, etc.) and validates it against the same zod schemas the MCP tools use. Output is GitHub-Actions-aware: when `GITHUB_ACTIONS=true`, failures emit `::error::` workflow commands so they surface as PR annotations.

**Exit codes:**

| Code | Meaning |
|---|---|
| `0` | Every matched file passed validation |
| `1` | At least one file failed validation, failed to parse, or no files matched |
| `2` | No file in the input matched a known Suite spec |
| `3` | Usage error (missing arg, unknown command or flag) |

Running `mcp-kinetic-gain` with **no arguments** still launches the stdio MCP server - existing Claude Desktop / Cursor configs are unaffected.

## Why one server instead of five?

- **One Claude Desktop config entry** instead of five
- **Cross-spec workflows are atomic** - an agent can `agent_card_tool_disclosure` to find a Tool Card URI, then call `tool_card_inspect` on that URI in the same conversation, all through one server
- **Shared schemas + utilities** keep the implementation cohesive
- **Deprecation path** - if [mcp-aeo-server](https://github.com/mizcausevic-dev/mcp-aeo-server) (the AEO-only predecessor) gets retired, the AEO tools live on here with the same names and contracts

## Architecture

```
src/
├── server.ts              # MCP entrypoint and handler dispatch
├── cli.ts                 # JSON validation CLI
├── tools.ts               # 75 tool descriptors (JSON Schema inputs)
├── schemas.ts             # Zod schemas for the 12 specs
├── common.ts              # guarded fetch and canonical hashes
└── handlers/              # one module per spec plus cross-spec and live tools
```

Each handler module is independent and could be split into a separate package if needed.

## Hash canonicalization

`ai_evidence_verify_hash` follows the AI Evidence Format spec's canonical SHA-256 rules:

1. Read content as UTF-8
2. Normalize line endings to `\n`
3. Strip a single trailing newline
4. SHA-256, lowercase hex, prefixed `sha256:`

If your `candidate_text` produces an unexpected mismatch, check CRLF vs LF and trailing newlines first.

## Tests

Run the unit and local HTTP tests without an external service:

```bash
npm install
npm run typecheck
npm test
npm run build
```

## License

**This server: AGPL-3.0.** If a modified version serves users over a network, the AGPL requires an offer of Corresponding Source to those users under its terms. See the [GNU AGPL FAQ](https://www.gnu.org/licenses/gpl-faq.html.en#UnreleasedModsAGPL) and [LICENSE](LICENSE).

**The specs themselves: MIT.** Maximally permissive. Anyone may implement, validate against, or extend any Kinetic Gain Protocol Suite specification. The dual-license split is deliberate: the protocol stays open, the reference server is copyleft.

## Kinetic Gain Protocol Suite

**75 tools total** across the twelve specs below plus cross-cutting ops (hash attestation, audit-stream events, cross-spec drift) and the DefenseTech tooling. See the [Tools](#tools) catalog above for the full per-tool list (47 spec + 16 implementation-preview + 8 DefenseTech + 4 AI Claims Decision Card).

| Spec | Vertical |
|---|---|
| AEO Protocol | Core |
| Prompt Provenance | Core |
| Agent Cards | Core |
| AI Evidence Format | Core |
| MCP Tool Cards | Core |
| AI Tutor Cards | EdTech |
| Student AI Disclosure | EdTech (FERPA/COPPA) |
| Classroom AI AUP | EdTech |
| Clinical AI Disclosure | HealthTech (FDA SaMD + HIPAA) |
| AI Incident Card | Cross-cutting (EU AI Act Article 73) |
| AI Procurement Decision Card | Cross-cutting (buyer-side, OMB M-24-10 / NIST AI RMF rubric-friendly) |
| AI Claims Decision Card | InsurTech |

**Suite hub:** [suite.kineticgain.com](https://suite.kineticgain.com/)
**Companion visualizer:** [kinetic-gain-visualizer](https://github.com/mizcausevic-dev/kinetic-gain-visualizer)
**Red-team bench:** [prompt-injection-bench](https://github.com/mizcausevic-dev/prompt-injection-bench)
**Reference library:** [kgp-verify](https://github.com/mizcausevic-dev/kgp-verify) (npm `kinetic-gain-protocol`, zero-dep MIT hash/sign/verify for KGP)

---

**Connect:** [LinkedIn](https://www.linkedin.com/in/mirzacausevic/) · [Kinetic Gain](https://kineticgain.com) · [Medium](https://medium.com/@mizcausevic/) · [Skills](https://mizcausevic.com/skills/)

TDQS

B3/5.0

Scored across 75 tools

Disambiguation3/5

The tool set has a clear spec-prefix convention (e.g., clinical_ai_validate, tutor_card_inspect), so many tools are distinguishable. However, 75 tools repeat the same validate/inspect/fetch/check actions across a dozen similar document schemas, so an agent can easily select the wrong spec's validator or inspector without careful reading.

Naming Consistency4/5

Names are overwhelmingly snake_case with a consistent subject-prefix + action pattern (ai_evidence_validate, tutor_card_coppa_check, audit_chain_verify). Minor deviations exist, such as aeo_get_claim using 'get' instead of fetch/inspect, audit_events_query using a plural subject, and defensetech_* tools adding an extra domain prefix, but the overall convention is readable and stable.

Tool Count1/5

At 75 tools, this server is far beyond the 3-15 range appropriate for a single MCP server, and exceeds the 50+ threshold for extreme mismatch. The functionality spans many independent specs and services that would be better split into separate servers.

Completeness3/5

The surface covers validation, inspection, fetching, hashing, and compliance checks for many Suite specs, but coverage is uneven: AEO lacks a validate tool, several specs lack fetch tools, and signing/hashing support is inconsistent (e.g., claims_card_sign exists but no equivalent sign tool for most other cards). There are also no update/delete operations, though immutability may justify that for attestation documents.

Maintenance

ActivityMaintained
ResponsivenessNo issues