nukez-mcp
Python client for the Nukez MCP server — agent-native persistent storage with cryptographic verification on Solana.
The Nukez MCP is a streamable HTTP JSON-RPC server that wraps the Nukez gateway. It is keyless: the server never holds a wallet or signing key. Clients execute payments externally, sign Ed25519 operation envelopes locally, and pass those envelopes through MCP tool arguments.
This package provides a simple class around an HTTP library with a method for connecting to the server, listing its tools, and calling them.
Install
pip install nukez-mcp
Quickstart
from nukez_mcp import NukezMCP
with NukezMCP() as mcp:
info = mcp.connect()
print(info["serverInfo"]) # server name and version
tools = mcp.list_tools()
print(f"{len(tools)} tools registered")
status = mcp.call_tool("nukez_status")
print(status["capabilities"]["payment_rails"])
The default endpoint is the production server:
https://mcp.nukez.xyz/mcp
Pass a different endpoint= to the constructor to target another
deployment.
The tool surface
The production server registers 15 tools:
| Group | Tools |
|---|---|
| Payment & setup | nukez_quote, nukez_pay, nukez_provision, nukez_setup |
| Files | nukez_create_file, nukez_store, nukez_confirm, nukez_upload_chunk, nukez_retrieve, nukez_delete |
| Proof & freshness | nukez_status, nukez_verify, nukez_recompute_verify |
| Memory | nukez_remember, nukez_recall |
The canonical flow is nukez_quote → external chain transfer → nukez_pay
→ nukez_provision, after which mutating and payer-authorized operations —
store, confirm, delete, remember, attest push, recompute-verify — require
client-signed envelopes. Reads such as retrieve, recall, status, and
structural verify need only the receipt_id.
Signed envelopes and payments
Envelope signing and payment execution are deliberately not part of this package: they involve your local keypair and are documented, with runnable helpers, in the canonical guides:
- https://nukez.xyz/docs/mcp — production model and connection details
- https://nukez.xyz/docs/mcp/examples — envelope signing (
pynacl+base58) and Solana transfer helpers (solders) - https://nukez.xyz/docs/mcp/tools — full tool reference
A signed envelope is passed straight through a tool's envelope argument:
env = {...} # built and signed locally — see docs/mcp/examples
files = mcp.call_tool("nukez_retrieve", {
"receipt_id": receipt_id,
"envelope": env,
})
Two exceptions to the one-envelope pattern: nukez_remember takes a
list of two signed envelopes (one for the memory record file, one for
the index), and nukez_quote / nukez_pay / nukez_upload_chunk take no
envelope at all.
Worked example: two-phase on-chain attestation
Anchoring an attestation is a two-phase flow — the server is keyless, so the
first call returns action_required="sign_envelopes" with an envelope spec
(note the query field, which the signed envelope JSON must carry verbatim),
and the second call anchors on-chain. The gateway also auto-reattests after
every file mutation, so an explicit push=True is only needed when you want
an immediate, inline on-chain anchor:
v1 = mcp.call_tool("nukez_verify", {"receipt_id": receipt_id, "push": True})
spec = v1["envelopes_needed"][0]
attest_env = build_envelope( # your local signer — see docs/mcp/examples
receipt_id, spec["method"], spec["path"],
ops=spec["ops"], body=spec["body"], query=spec["query"],
)
v2 = mcp.call_tool("nukez_verify", {
"receipt_id": receipt_id, "push": True, "envelope": attest_env,
})
assert v2["attestation"]["push_ok"] # anchored: tx_signature is on Solana
Reference demonstration: Trust Verification
The canonical end-to-end usage example is the Trust Verification demo — a live, agent-driven walkthrough that connects to the production Nukez MCP server, provisions storage with a real BETA-token x402 payment, stores and encrypts artifacts through signed MCP operations, survives a tamper attempt, and verifies everything on Solana mainnet across 10 preset cues, including:
- Agent surface online → connect to the Nukez protocol via MCP
- Grant local wallet access (a discrete consent moment — the server never holds keys)
- Procure user-owned storage on Solana mainnet (BETA-paid x402 quote)
- Draft a real output artifact
- Store artifacts through signed Nukez MCP operations
- Attack: an adversary attempts to tamper with the record
- Verify: the tamper is detected against the on-chain attestation
Every request in that demo travels the same JSON-RPC surface this package
wraps: initialize → tools/call with envelope passthrough, exactly as in
the Quickstart above. The demo's signing/payment helpers are packaged from
the runnable examples at https://nukez.xyz/docs/mcp/examples.
Errors
JSON-RPC errors and tool-level failures raise nukez_mcp.NukezMCPError,
carrying code and data when the server provides them.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nukez_mcp-0.1.1.tar.gz.
File metadata
- Download URL: nukez_mcp-0.1.1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1b63c7a7b40d8eaa1af0d14c47cc65298bba2d8d6ae3fe204af504da778c306
|
|
| MD5 |
9b348c705eaa3be7fd2b6d5204d3cace
|
|
| BLAKE2b-256 |
cb14b615f594648da30d4ee74d054a3993d1db474baf6d101b96fd9265396736
|
Provenance
The following attestation bundles were made for nukez_mcp-0.1.1.tar.gz:
Publisher:
publish.yml on Nukez-xyz/nukez-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nukez_mcp-0.1.1.tar.gz -
Subject digest:
f1b63c7a7b40d8eaa1af0d14c47cc65298bba2d8d6ae3fe204af504da778c306 - Sigstore transparency entry: 2408754893
- Sigstore integration time:
-
Permalink:
Nukez-xyz/nukez-mcp@dedfcf24a8031bfb22eb81370e469bee77c004c8 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Nukez-xyz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dedfcf24a8031bfb22eb81370e469bee77c004c8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file nukez_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: nukez_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b05c3c4126aedc935c3544d0416750c4363f1e96a14ca012668f5ecf952e6d58
|
|
| MD5 |
b106d611b89be6f2faed6f6d30ac377a
|
|
| BLAKE2b-256 |
05f7bf2fe5fda79285ac231e27813469e082edddbe157e93772cbffcafcacbc0
|
Provenance
The following attestation bundles were made for nukez_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on Nukez-xyz/nukez-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nukez_mcp-0.1.1-py3-none-any.whl -
Subject digest:
b05c3c4126aedc935c3544d0416750c4363f1e96a14ca012668f5ecf952e6d58 - Sigstore transparency entry: 2408755379
- Sigstore integration time:
-
Permalink:
Nukez-xyz/nukez-mcp@dedfcf24a8031bfb22eb81370e469bee77c004c8 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Nukez-xyz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dedfcf24a8031bfb22eb81370e469bee77c004c8 -
Trigger Event:
release
-
Statement type: