three.ws Autopilot

io.github.nirholasPublished by GitHub account nirholasv0.2.2Updated Nov 1, 2026

Set autopilot scopes and a daily SOL spend cap, then propose, execute, and undo agent actions.

VerifiedSTDIODesktop onlyFinanceAI & ML

Overview

AI-generated overview

three.ws Autopilot lets an AI agent set its own guardrails and run a propose, execute and undo loop for autonomous actions, including real SOL transfers.

What you can do
  • Read and update autopilot guardrails: enabled state, capability scopes, auto-execute, daily SOL spend cap and confirmation policy
  • Generate candidate actions from the agent's memories and reflections, then list, filter and adjust the proposal queue
  • Preview a proposal's scope, cap and balance checks without acting, then execute or dismiss it
  • Undo reversible executions and read the append-only signed receipts log of autonomous actions
  • Compute the agent's earned trust level from its real action history
When to use it
For owners of three.ws agents who want the agent to manage its own execution boundaries and act autonomously within them, with server-side enforcement of scopes and spend limits. Useful when you need a reviewable propose-then-execute workflow with an audit trail.
Requirements
Node.js 20 or newer, run locally via npx or npm. A three.ws owner credential in THREE_WS_API_KEY (API key or OAuth access token). Network access to the three.ws API; THREE_WS_BASE and THREE_WS_TIMEOUT_MS are optional overrides.
Before you install
The credential can authorize real SOL transfers on Solana mainnet, so store it like a password. execute_proposal is destructive and irreversible for wallet transfers and requires confirm:true; SOL transfers cannot be undone. Only reversible actions such as alerts and briefings can be reversed. The server is write-heavy and sends requests to the three.ws backend.

Installation

In SourceWeft

  1. Open three.ws Autopilot in the dashboard and add it to a workspace.
  2. 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

[three.ws]

@three-ws/autopilot-mcp

An AI agent's own autonomous-execution control plane — set autopilot scopes, a daily SOL spend cap, and auto-execute, then run the propose → execute → undo loop, all from any MCP client.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that gives an AI agent its own execution control plane over stdio. The agent configures the boundaries it is allowed to act within — capability scopes, a daily SOL spend ceiling, auto-execute and confirmation policy — then drives the full propose → review → execute → undo loop. No human in the loop, but every boundary is enforced server-side: an out-of-scope or over-budget action is denied, never executed.

This is the keystone of the autonomous-agent story. Autopilot config and execution used to live only behind the three.ws UI/API; this server exposes them so an agent can manage its own guardrails and act within them.

⚠️ This server is authenticated and write-heavy. execute_proposal can move real SOL on Solana mainnet and is irreversible. It sends native SOL only — the agent never sells or sends $THREE (it only buys, holds, or burns it). Scopes, the daily SOL spend cap, and confirmation are all enforced on the three.ws backend — this server cannot bypass them.

Install

bash
npm install @three-ws/autopilot-mcp

Or run with npx (no install):

bash
npx @three-ws/autopilot-mcp

Quick start

Claude Code, one line (supply your three.ws credential):

bash
THREE_WS_API_KEY=sk_live_… claude mcp add autopilot -- npx -y @three-ws/autopilot-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"autopilot": {			"command": "npx",			"args": ["-y", "@three-ws/autopilot-mcp"],			"env": {				"THREE_WS_API_KEY": "sk_live_…"			}		}	}}

Inspect the surface with the MCP Inspector:

bash
THREE_WS_API_KEY=sk_live_… npx -y @modelcontextprotocol/inspector npx @three-ws/autopilot-mcp

Authentication

Every autopilot endpoint is owner-only, so this server is authenticated. Set THREE_WS_API_KEY to the agent owner's three.ws credential — either a three.ws API key (sk_live_… / sk_test_…) or an OAuth access token. It is sent as Authorization: Bearer … on every request and identifies the owning user; the agent can only manage agents that user owns. The credential can authorize real SOL transfers via execute_proposal — store it like a password. THREE_WS_TOKEN and THREE_WS_BEARER are accepted as aliases.

Tools

ToolTypeWhat it does
get_autopilot_configread-onlyRead the agent's guardrails: enabled, scopes, auto-execute, daily SOL cap, confirmation policy — plus trust.
set_autopilot_configwrite · idempotentUpdate those guardrails with a partial patch (grant scopes, set the daily SOL ceiling, arm/disarm). No action taken.
generate_proposalswriteRun the agent's mind: turn high-salience memories + reflections into real, provenance-cited candidate actions.
list_proposalsread-onlyThe proposal queue — ids, kinds, rationales, params, status, cited sources. Filter by status.
dryrun_proposalread-onlyPreview what executing a proposal would do (scope / cap / balance checks), without taking any action.
adjust_proposalwrite · idempotentEdit a pending proposal's params before executing (tune a threshold, amount, cadence). Validated server-side.
execute_proposalwrite · destructiveTake the real action. ⚠️ A wallet_transfer or trade moves real funds on mainnet, irreversible. needs confirm:true. Never sends or sells $THREE.
dismiss_proposalwriteDrop a pending proposal; records a feedback memory so the agent stops proposing it.
undo_actionwriteReverse a reversible execution (delete the alert rule / briefing); records a feedback memory. SOL transfers can't be undone.
list_autopilot_activityread-onlyThe append-only signed receipts log — every autonomous action, its outcome, provenance, and signature.
compute_trustread-onlyThe agent's earned trust level (sandbox → trusted → autonomous), computed from real action history.

The five read tools reflect live state (proposals, receipts, trust move between calls), so none are idempotent. set_autopilot_config and adjust_proposal are idempotent writes (re-applying the same values is a no-op). generate_proposals, execute_proposal, dismiss_proposal, and undo_action each take a real action.

Input parameters

Every tool takes agentId (the UUID of an agent you own) except list_autopilot_activity, where it is optional (omit to aggregate across all your agents).

  • get_autopilot_config / compute_trust / generate_proposals — agentId.
  • set_autopilot_config: agentId, plus any of: enabled (bool), scopes ({ create_alert?, briefing?, wallet_transfer?, trade? }), autoExecute ({ create_alert?, briefing? }), dailySpendSol (number, SOL; 0 disables spending), requireConfirm (bool).
  • list_proposals — agentId, status (pending | executed | dismissed | undone | failed), limit (1–200).
  • dryrun_proposal / dismiss_proposal / undo_action — agentId, proposalId.
  • adjust_proposal — agentId, proposalId, params (full replacement params for the proposal's kind).
  • execute_proposal — agentId, proposalId, confirm (bool — required for an irreversible SOL transfer).
  • list_autopilot_activity — agentId (optional), limit (1–200), cursor (from a prior next_cursor).

The loop

jsonc
// 1. Grant the agent a reversible capability// set_autopilot_config> { "agentId": "…", "enabled": true, "scopes": { "create_alert": true } }{ "ok": true, "config": { "enabled": true, "scopes": { "create_alert": true, "briefing": false, "wallet_transfer": false, "trade": false }, "daily_spend_sol": 0, "require_confirm": true } }
// 2. Let the agent propose actions from its memory// generate_proposals> { "agentId": "…" }{ "ok": true, "createdCount": 1, "source": "memory",  "created": [ { "id": "p_…", "kind": "create_alert", "title": "Alert when $THREE crosses $0.01",                 "rationale": "You noted interest in $THREE around $0.01 — I'll watch it.", "status": "pending" } ] }
// 3. Preview before acting// dryrun_proposal> { "agentId": "…", "proposalId": "p_…" }{ "ok": true, "preview": { "kind": "create_alert", "willDo": "Create a real alert rule… Reversible.",                           "checks": [ { "label": "Scope \"create_alert\" granted", "ok": true } ], "blocked": false } }
// 4. Execute for real (reversible kind — no confirm needed)// execute_proposal> { "agentId": "…", "proposalId": "p_…" }{ "ok": true, "receipt": "Created a price above alert.", "actionId": "1843", "proposal": { "status": "executed" } }
// 5. Changed your mind? Undo it.// undo_action> { "agentId": "…", "proposalId": "p_…" }{ "ok": true, "proposal": { "status": "undone" } }

Spending real SOL requires the owner to have granted scopes.wallet_transfer, set a positive dailySpendSol, and (unless pre-authorized) execute_proposal must be re-issued with confirm:true. All three are checked server-side. A trade proposal (a buy with SOL or a sell of a non-$THREE token) needs scopes.trade and runs the same wallet guards as the wallet hub. Buys count against dailySpendSol. The agent spends SOL only, it never sells or sends $THREE; a $THREE sell is refused at proposal validation.

Requirements

  • Node.js >= 20.
  • A three.ws credential (THREE_WS_API_KEY) for the agent owner.
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefaultNotes
THREE_WS_API_KEYyes—three.ws API key (sk_live_…) or OAuth access token. Secret. Can move real SOL.
THREE_WS_BASEnohttps://three.wsOverride only when self-hosting or targeting a preview.
THREE_WS_TIMEOUT_MSno60000Per-request timeout (generation runs a server-side LLM pass).

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Source: packages/autopilot-mcp/README.md at commit 89050b3

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.2.2LatestOct 10, 2026
  2. v0.2.1Sep 16, 2026

Score

50% 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