
Agent Q
io.github.stelis-devPublished by GitHub account stelis-devv0.2.2Updated Oct 24, 2026
Local MCP server for requesting signatures from Agent-Q Firmware.
Overview
Local MCP server that lets an AI assistant request Sui signatures from a separate Agent-Q signing device, which keeps signing authority on the hardware.
- What you can do
- Request Sui transaction signatures, with inline or same-session staged transaction bytes
- Request Sui personal-message signatures in user authorization mode
- Create account, policy read, policy proposal submission and status requests
- Relay bounded requests from the local host process to Agent-Q Firmware, which applies device-local policy or an on-device approval gate
- Receive signed results or explicit failures for unsupported chains and methods
- When to use it
- Use it when an agent needs to sign Sui transactions or personal messages and you want the signing key to stay on a separate Agent-Q device rather than in the agent or host process. It suits development and demo setups around the Agent-Q firmware and Sui tooling, not production custody of real assets.
- Requirements
- Runs as a local npm package (@stelis/agent-q) over stdio on desktop. Needs Node.js and a reachable Agent-Q signing device running the firmware; the host process relays requests to it. No environment variables, headers or authentication are declared.
Installation
In SourceWeft
- Open Agent Q in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Agent-Q
Development status: Agent-Q is an active development project with hardware-tested Sui signing paths for CLI, MCP, and supported provider flows. The current StackChan CoreS3 Firmware path uses DEV_PROFILE material intended for development and demos, not real-asset custody. See Current Status for storage and profile limitations.
Concept
Agent-Q separates execution surfaces from signing authority.
Execution capability is not signing authority. Agent-Q keeps that boundary explicit for agent-driven and local Sui signing flows.
This README describes the Agent-Q authority-boundary architecture for local Sui
signing flows. Current implementation status and profile limitations are tracked
in docs/IMPLEMENTATION_STATUS.md.
MCP clients, Sui CLI, and supported Sui app adapters submit bounded requests
through the local agent-q host process. AI agent runtimes usually reach
Agent-Q through MCP clients. The host relays requests; it does not store
signing material, decide policy, or approve signing.
Agent-Q Firmware runs on a separate signing device. It holds signing material and policy for the implemented material profile, checks device state and request contents, applies the implemented policy or device-local approval gate, and returns signed results or explicit failures.
Signing request transport stays local. Signing authority stays on the device. Requesters can ask for signatures, but they cannot hold signing material, choose the authorization mode, or approve their own requests.
Structure
Agent-Q has three roles:
- requesters create signing, account, policy read, policy proposal submission, or status requests. MCP clients, Sui CLI, Sui app adapters, and the Admin Page are request surfaces, not signing authorities.
- the host process is the local
agent-qprocess. It exposes MCP stdio tools, the local HTTP API, the Admin Page, and adapter-facing request surfaces, then relays bounded requests to Firmware. - Agent-Q Firmware is the software running on the signing device. Firmware owns policy checks, device-local approval gates, signing, persistence, and cleanup, and holds signing material for the implemented material profile.
Agent-Q uses a simple authority model:
- requesters create requests;
- the host process relays requests;
- Firmware handles each implemented request type according to device-local state.
For signing requests, Firmware decides whether the implemented policy or device-local approval gate permits signing.
Unsupported chains and methods fail explicitly.
Use Agent-Q
- Sui users can register
agent-q-sui-signeras a Sui CLI external signer. Seepackages/agent-q/README.md. - MCP clients can run the local server and call Agent-Q MCP tools. See
packages/agent-q/README.md. - Sui app developers can use the Sui provider package for supported Wallet
Standard adapter flows. See
packages/provider-sui/README.mdandpackages/sample-sui-dapp-kit/README.md. - Sui zkLogin browser setup and sign-only transaction checks live in the
non-production test web sample. See
packages/sample-zklogin-test-web/README.md. - Firmware and hardware developers working on device-owned signing policy,
local approval, and bounded signing flows should start with
firmware/README.md.
Packages
Current Implementation Highlights
The current implementation includes these device-owned paths. They are development/demo capabilities; Current Status below defines the DEV_PROFILE and product-active limits.
- Device-local BIP-39 setup: Firmware can generate a new 12-word BIP-39 backup phrase on the device, display it for backup, and store DEV_PROFILE root entropy only after local backup confirmation and repeated local PIN entry.
- Device-local mnemonic restore: Firmware can accept a 12-word BIP-39 import through the device UI, verify the checksum, and enter the same local PIN setup path. USB, host process, and MCP mnemonic import are not implemented.
- Sui zkLogin active identity: the browser test flow can prepare and propose bounded zkLogin proof material through the provider/Web Serial path. Firmware reviews the proposal on device, requires local PIN approval, stores one bounded proof record, and projects the active zkLogin Sui account. When zkLogin is active, the same signing request path produces a zkLogin signature envelope after the normal Firmware authorization gate. Firmware stores no raw JWT.
- Large Sui transaction payloads:
sign_transactionsupports inlinetxBytesand same-session staged payload delivery for larger Sui transaction bytes, up to the Sui serialized transaction maximum. This is a payload and adapter input capacity, not a claim that every Sui transaction shape is semantically signable; unsupported or unbindable shapes fail before signing. - Sui sponsored transaction receive path: Firmware has a device-local Sui account setting that controls whether it accepts transactions where the parsed sender is the active account and the parsed gas owner is a different sponsor. When accepted, Agent-Q still returns only the active sender's signature; sponsor signature collection and transaction execution assembly are outside Agent-Q.
Request Flow
Current signing routes are summarized below. In this README, product-active
means the matching source, docs, tests, build, current-tree target hardware
evidence, and visual evidence are complete in docs/IMPLEMENTATION_STATUS.md.
A route can be implemented and hardware-tested while product-active evidence is
still being completed.
The current implementation contains Sui zkLogin active identity paths, but
docs/IMPLEMENTATION_STATUS.md does not mark them product-active. The sample
test web exercises browser-to-device proof setup and sign-only transaction
checks over Web Serial. Enoki, OAuth, prover work, and Google OAuth testnet
setup stay in the browser test layer; Agent-Q receives only bounded proof
proposals. The sample does not display JWTs or proof JSON and does not write
them to browser storage.
Unsupported chains and unsupported methods fail explicitly. Chains are exposed through the shared protocol; Agent-Q does not create separate chain-specific product APIs.
Authority Boundary Basics
This section explains who may request work and who may decide. DEV_PROFILE storage and product-active status are covered in Current Status.
- The host process, MCP, Sui CLI tools, providers, apps, and agents are requesters, not signing authority.
- The host process does not store signing material and does not make signing or policy decisions.
- Firmware holds signing material and policy for the implemented material profile and owns signing decisions.
- Firmware chooses the signing authorization gate from device-local state. Requests cannot choose policy authorization mode or user authorization mode.
- Agent-Q cannot verify what happened inside an agent, app, wallet UI, or host process before a signing request was created.
- All external requests are untrusted input. Firmware must parse bounded request contents before signing.
Current Status
Detailed status lives in docs/IMPLEMENTATION_STATUS.md.
Current implementation includes the Sui signing routes listed above, MCP tools,
provider-sui, and StackChan CoreS3 Firmware paths. Hardware smoke coverage is
recorded in docs/IMPLEMENTATION_STATUS.md; product-active signing support is
claimed only when the matching status row says the source, docs, tests, build,
hardware, and visual evidence are complete.
Current limitations:
- The current StackChan CoreS3 Firmware path uses DEV_PROFILE material intended for development and demos, not real-asset custody.
- In DEV_PROFILE, root entropy, the active policy record, and the local PIN verifier are stored in ordinary NVS. Secure Boot, Flash Encryption, and NVS Encryption are not configured.
- DEV_PROFILE is the only implemented material profile.
- Sui is the only executable chain.
- Sui transaction parsing is bounded and offline. Agent-Q does not simulate Sui execution or fetch chain state.
- Sui sponsored transaction support is limited to the sender-bound receive path described above. Agent-Q does not produce, collect, or assemble sponsor signatures and does not execute or submit Sui transactions.
- Policy-authorized personal-message signing is not implemented.
- Sui zkLogin browser-to-device setup, clear, reconnect, and signing paths are not product-active.
- Browser dapp signing requires the provider/browser runtime path, not the Node-local provider factory.
Advanced
- Protocol contract:
specs/PROTOCOL.md - Security model:
docs/SECURITY_MODEL.md - State model:
docs/STATE_MODEL.md - Current policy schema and Sui policy facts:
docs/POLICY_SCHEMA.md - Implementation status:
docs/IMPLEMENTATION_STATUS.md - Firmware overview:
firmware/README.md - StackChan CoreS3 target:
firmware/src/stackchan-cores3/README.md
Development
Install workspace dependencies:
Build all packages:
Run the root test suite:
Firmware build instructions are target-specific. Start with
firmware/README.md and the target README under firmware/src/<hardware-id>/.
.WORK/ is for local planning, scratch files, and investigation materials. It
is not tracked by Git and must not be required by user-facing build or runtime
instructions.
Source: README.md at commit be66548
Tools
0Version history
1- v0.2.2LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.