Agent Q

io.github.stelis-dev由 GitHub 帳號 stelis-dev 發布v0.2.2更新於 Oct 24, 2026

Local MCP server for requesting signatures from Agent-Q Firmware.

概覽

AI 產生的概覽

本機 MCP 伺服器,讓 AI 助理向獨立的 Agent-Q 簽章裝置請求 Sui 簽章,簽章權限保留在硬體上。

可以做什麼
  • 請求 Sui 交易簽章,支援內嵌或同一工作階段內分段提交的交易位元組
  • 在使用者授權模式下請求 Sui 個人訊息簽章
  • 建立帳戶、讀取政策、提交政策提案與查詢狀態請求
  • 將受限請求從本機主機程序轉送至 Agent-Q 韌體,由韌體依裝置本機政策或裝置端核准關卡處理
  • 對不支援的鏈與方法回傳簽章結果或明確的失敗
適用情境
當助理需要簽署 Sui 交易或個人訊息,且希望簽章金鑰留在獨立的 Agent-Q 裝置上,而不是放在助理或主機程序中時使用。適合圍繞 Agent-Q 韌體與 Sui 工具的開發與展示環境,不適合真實資產的保管。
執行需求
以本機 npm 套件(@stelis/agent-q)透過 stdio 在桌面端執行。需要 Node.js 以及可連線、執行韌體的 Agent-Q 簽章裝置,主機程序負責向裝置轉送請求。未宣告任何環境變數、標頭或身分驗證。
安裝前請注意
目前韌體路徑使用供開發與展示的 DEV_PROFILE 材料,不適用於真實資產保管;根熵、政策紀錄與 PIN 驗證值存放在一般 NVS 中,未啟用 Secure Boot、Flash Encryption 或 NVS 加密。簽章請求可能產生真實簽章,當裝置無法完整審閱交易細節時可能出現盲簽。僅支援 Sui,且伺服器無法核實請求建立前助理內部發生了什麼。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Agent Q,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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-q process. 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-signer as a Sui CLI external signer. See packages/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.md and packages/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

PackageUse it when you want to...
@stelis/agent-q-corediscover devices, open sessions, call the Agent-Q protocol, and parse Firmware results.
@stelis/agent-qrun the local MCP server, Admin Page, and agent-q-sui-signer.
@stelis/agent-q-provider-suiconnect a Sui app to an Agent-Q device through a provider / Wallet Standard adapter.
packages/sample-sui-dapp-kitrun a small dapp-kit sample that signs through Agent-Q.
packages/sample-zklogin-test-webrun a non-production browser test tool for Sui zkLogin proof preparation/proposal and sign-only transaction checks through the Agent-Q browser provider over Web Serial.

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_transaction supports inline txBytes and 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

mermaid
flowchart LR  Agent[AI agent] --> MCP[MCP API]  Admin[Admin Page] --> HTTP[HTTP API]  SuiCLI[Sui CLI] --> Signer[agent-q-sui-signer]  App[Sui app] --> Provider[Sui provider]
  MCP --> Server[agent-q local server]  HTTP --> Server  Signer --> Server  Provider --> Server
  Server --> Core[Agent-Q core]  Core --> Firmware[Firmware]

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.

ChainMethodCurrent behavior
suisign_transactionCurrent implementation supports inline or same-session staged Sui transaction bytes. It validates the request, parses bounded offline transaction facts when available, applies the device-local policy or user authorization gate, and produces a signature response only after that gate authorizes signing. The parsed sender must match the active account; the parsed gas owner must also match unless the active account's device-local Sui account setting accepts gas sponsors. Policy mode fails closed when required policy coverage is missing, incomplete, unmatched, or reject-matched. User mode shows covered offline facts only when Firmware can derive the required semantic facts and fit the required review details into its bounded display summary; parser success alone is not a clear-review guarantee. Otherwise it shows a device-local blind-signing warning for a valid transaction bound to the active account. Blind signing means confirming signable bytes whose transaction details are not fully reviewable from offline facts.
suisign_personal_messageCurrent implementation supports bounded Sui personal-message signing in user authorization mode. Policy authorization mode fails closed for this method.

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:

sh
npm install

Build all packages:

sh
npm run build

Run the root test suite:

sh
npm test

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.

來源:README.md,提交 be66548

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.2最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。