Skip to content

iqa-mcp 0.1.0 — first public release

Choose a tag to compare

@Aicent-com Aicent-com released this 07 Oct 20:57
· 15 commits to main since this release
2f32c9f

First public release of iqa-mcp — the IQA attestation primitives (derived intent addressing + AE-128 envelope verification) as Model Context Protocol tools. Offline, fail-closed, stateless.

Tools

  • derive_route_shard — SHA-256(authority)[0:16] hex; the derived, action-independent intent address. No lookup, no registry, no network call.
  • parse_envelope — structural decode of one AE-128 frame (128 bytes); fails closed on every layout rule of the companion draft.
  • verify_envelope — constant-time HMAC-SHA256 over the whole 128-byte frame with the attestation field zeroed, plus the lease check. REJECT is a result, not an error.
  • published_vector — the published AE128-VECTOR-1 (authority, test key, frame hex) for byte-for-byte self-test.

Install

pip install iqa-mcp==0.1.0
# or from source:
pip install "iqa-org>=1.3.1" "mcp>=2.0"
python server.py            # stdio transport

Self-test

python test_mcp.py
# [PASS] 1-4 · tools, derivation, vector, parse
# [PASS] 5 · verify_envelope    -> [PASS] radiant · nonce 1
# [PASS] 6 · tampered frame     -> REJECT (HMAC mismatch)
# [PASS] 7 · malformed hex      -> REJECT
# ALL 7/7 PASS

Test 6 is the point: flip one byte of the standing field and the frame dies — fail-closed, over the wire.

Provenance

Notes

  • MCP 2.x SDK, stdio transport, Python ≥ 3.11.
  • Stateless: no key storage, no network, no accounts. The organ key is passed per call by the client and never persisted.
  • Assets attached below are the exact artifacts published to PyPI (iqa_mcp-0.1.0-py3-none-any.whl, iqa_mcp-0.1.0.tar.gz).