Skip to content

Releases: Aicent-Stack/iqa-mcp

iqa-mcp 1.0.2 - MCP tool annotations

Choose a tag to compare

@Aicent-com Aicent-com released this 11 Oct 12:23

All four tools now carry MCP tool annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false) - the contract stated in machine-readable form: pure local computation, no side effects, deterministic, no external entities. Directory compatibility per the M8ven Trust Index finding. Listed and Verified on M8ven: https://m8ven.ai/mcp/aicent-stack/iqa-mcp

iqa-mcp 1.0.1 — self-test transport fix

Choose a tag to compare

@Aicent-com Aicent-com released this 08 Oct 17:35

1.0.0 shipped with a layout-dependent self-test (hardcoded python server.py). 1.0.1 fixes it: test_mcp now resolves the server in order IQA_MCP_CMD override -> ./server.py (source checkout) -> installed iqa-mcp console script, and ships inside the wheel — run python -m test_mcp from anywhere. No server code changes.

iqa-mcp 0.1.0 — first public release

Choose a tag to compare

@Aicent-com Aicent-com released this 07 Oct 20:57
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).