oci ghcr.io/rustok-org/rustok-wallet:v0.4.2stdioMIT-0updated 19d ago
MCP Server for Rustok โ connects Claude Desktop, Cursor, and cloud agents to the Rustok wallet via Gateway.
What can you do with rustok wallet?
rustok-mcp
MCP Server for Rustok โ connects Claude Desktop, Cursor, and cloud agents to the Rustok wallet via Gateway.
Two editions
Rustok ships two wallet products โ pick the trust model you want:
rustok-wallet (agent edition) |
rustok-wallet-tui (this repo) |
|
|---|---|---|
| Who signs | the agent, unrestricted | you, in a separate terminal (rustok-console, y/N + PIN) |
| Where | rustokwallet.com ยท ClawHub ยท image ghcr.io/rustok-org/rustok-wallet |
this repo (main) ยท ClawHub ยท image ghcr.io/rustok-org/rustok-wallet-tui |
| Line | 0.4.x (maintained from the wallet-v0.4.0 tag) |
0.5.x+ |
Install (rustok-wallet-tui, self-custody)
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/rustok-org/mcp/wallet-tui-v0.11.0/scripts/install.sh | sh
rustok init # creates the wallet โ you choose a PIN, it prints the 12 words once
rustok connect claude # registers it with your agent (or: cursor / hermes / openclaw)
The console image is published by version only โ there is no latest tag to
pull, on purpose: the installer pins the exact digest of the release it ships
with, and a floating tag would quietly undo that.
The installer verifies the wallet image's cosign signature before anything
touches disk, pulls it by digest, and installs the rustok command โ it never
touches a secret, a keystore or your wallet. Requires podman (or docker) and
cosign; you can read the script before running it. Full walkthrough, including
the by-hand setup without the shim: Installation Guide.
The wallet is one self-contained image (Core + Gateway + MCP over stdio + the
human-approval console); keys live only in a local container volume and never
leave your machine. Transactions that move funds are approved by a human in a
second terminal with rustok console โ the agent cannot drive it.
Install as an agent skill
The wallet skill (skills/rustok-wallet-tui/)
installs straight from this repo:
# skills CLI (Claude Code, Cursor, and other agents) โ https://skills.sh
npx skills add rustok-org/mcp
# Hermes Agent
hermes skills tap add rustok-org/mcp
hermes skills install rustok-org/mcp/rustok-wallet-tui
Both editions are on ClawHub as separate listings: the agent edition at
@temrjan/rustok-wallet, and the
console edition โ the maintained one โ at
@rustok/wallet, published as
Rustok Agentic Wallet.
Registries
- Official MCP Registry โ the agent edition is published as
io.github.rustok-org/rustok-wallet(OCI packageghcr.io/rustok-org/rustok-wallet, stdio). A TUI-edition registry entry ships separately asio.github.rustok-org/rustok-wallet-tui. - ClawHub โ two listings: the console edition (maintained) at
@rustok/wallet, and the agent edition at@temrjan/rustok-wallet.
Quick Start (Development)
# Install dependencies
uv sync --dev
# Run the server
uv run rustok-mcp
# Or run stdio transport
uv run rustok-mcp-stdio
Docker
docker build -t rustok-mcp .
docker run -p 127.0.0.1:3001:3001 -e RUSTOK_MCP_HOST=0.0.0.0 rustok-mcp
To run the full stack (MCP โ Gateway โ Core + Redis), use the compose file
in rustok-org/meta.
Authentication
The network-facing SSE transport is gated by a shared bearer token.
- Inbound (
RUSTOK_MCP_INBOUND_API_KEY) โ clients must sendAuthorization: Bearer <token>to reach/mcp/sseand/mcp/message. Distinct from the outboundRUSTOK_MCP_API_KEY(MCP โ Gateway). - Dev: leave it empty โ the loopback flow stays open and the server logs a warning at startup.
- Prod: required. The token must travel in the request header, never in a
query string (query strings leak into access logs). Generate one with
openssl rand -hex 32. - The browser
EventSourceAPI cannot set headers and is not a supported client; use an MCP client that sends request headers. /healthis always public (used by the container healthcheck).- The local stdio transport is process-trusted and not gated.
โ ๏ธ The MCP has no built-in brute-force / rate-limit protection. Terminate it behind the edge proxy (Caddy) with host-level rate limiting (see the
rustok-org/metadeploy docs); do not expose it to the internet directly.
What is Rustok?
Rustok is a self-custody AI-native crypto wallet. The MCP Server is a thin bridge between LLM agents and the Rustok Gateway โ private keys never leave the Core service (they stay in the local keystore volume).
- Self-custody: keys are encrypted at rest (Argon2id + AES-256-GCM) and only decrypted inside Core on your machine.
- Capability-gated tools (
read_wallet/preview_tx/execute_tx): the stdio transport is process-trusted (all by default; restrict withRUSTOK_MCP_CAPABILITIES); the network-facing SSE transport is bearer-gated. - No spending policy by design: no hard-coded limits, budgets, or blocklists โ
you consciously accept the risk of funds on the agent wallet.
txguardsurfaces a risk level on preview but does not block. Opt-in limits may come later. - Chains:
RUSTOK_ALLOWED_CHAINSdecides which ones are shown (default1,8453,42161โ Ethereum, Base, Arbitrum). Those read out of the box: the build carries two public nodes for each. Naming your own (RUSTOK_RPC_URLS_<id>, or an Alchemy key) replaces the carried list rather than joining it. Any node that reads a balance learns the address and the IP that asked โ that is true of ours, yours, and your provider's alike. - Informed preview:
preview_transactionreturns the decoded call (who/what is authorized), a pre-sign simulation (revert check), gas, and a txguard risk level. Execution is not exposed as an MCP tool. - Audit logging: every action is append-only logged to SQLite in Core.
Documentation
License
This repository is licensed under MIT-0.
The warranty and liability terms it carries, and the limit of every safeguard this wallet advertises, are stated in full here: https://github.com/rustok-org/mcp/blob/main/DISCLAIMER.md
The Rustok Core wallet engine is a proprietary artifact built from the private rustok-org/core repository.
Install
Add rustok wallet to your client. Pick the one you use.
claude mcp add ghcr-io-rustok-org-rustok-wallet-v0-4-2 -- docker run -i --rm ghcr.io/rustok-org/rustok-wallet:v0.4.2codex mcp add ghcr-io-rustok-org-rustok-wallet-v0-4-2 -- docker run -i --rm ghcr.io/rustok-org/rustok-wallet:v0.4.2amp mcp add ghcr-io-rustok-org-rustok-wallet-v0-4-2 -- docker run -i --rm ghcr.io/rustok-org/rustok-wallet:v0.4.2{
"mcpServers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"ghcr-io-rustok-org-rustok-wallet-v0-4-2","command":"docker","args":["run","-i","--rm","ghcr.io/rustok-org/rustok-wallet:v0.4.2"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"type": "local",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"ghcr-io-rustok-org-rustok-wallet-v0-4-2": {
"command": {
"path": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rustok-org/rustok-wallet:v0.4.2"
]
}
}
}
}Add to your Zed `settings.json`.
docker run -i --rm ghcr.io/rustok-org/rustok-wallet:v0.4.2Run `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 12 days ago
- Has a release history
- Repository is not archived
- Licensed MIT-0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.4.2Latest | Jul 31, 2026 |
| 0.4.1 | Jul 31, 2026 |
| 0.4.0 | Jul 6, 2026 |