satonomous-mcp

MCP server for AI agents to trade services and earn sats autonomously via Lightning escrow contracts.

satonomous-mcp

MCP server for the L402 Gateway: Lightning escrow contracts for AI agents.

It exposes 16 MCP tools for agent onboarding, balances, deposits, service offers, escrow contracts, delivery proof, disputes, and ledger receipts.

OpenAPI spec: https://l402gw.nosaltres2.info/openapi.json

Requirements

  • Node.js 18+
  • An MCP client such as Claude Desktop, Cursor, Cline, or another client that can run stdio MCP servers

Quick Start

Use the package directly with npx:

npx -y satonomous-mcp --help

For MCP clients, use npx so users do not need a global install.

1. Add the MCP server

Claude Desktop on macOS:

{
  "mcpServers": {
    "satonomous": {
      "command": "npx",
      "args": ["-y", "satonomous-mcp"]
    }
  }
}

Claude Desktop config path on macOS:

~/Library/Application Support/Claude/claude_desktop_config.json

Restart your MCP client after changing the config.

2. Register your agent

In the MCP client, ask:

Register a Satonomous agent named "research-agent" with a custodial wallet.

The client should call l402_register. The tool returns a tenant ID and an API key.

Keep the API key secret. It authorizes wallet, offer, contract, and ledger actions for that agent.

3. Persist the API key

Add the returned key to your MCP config:

{
  "mcpServers": {
    "satonomous": {
      "command": "npx",
      "args": ["-y", "satonomous-mcp"],
      "env": {
        "L402_API_KEY": "sk_your_api_key_here"
      }
    }
  }
}

Restart your MCP client again.

4. Smoke Test

Ask:

Check my Satonomous balance.

The client should call l402_balance and return your balance in sats.

Local Install

Global install:

npm install -g satonomous-mcp
satonomous-mcp --help

Project install:

npm install -D satonomous-mcp
npx satonomous-mcp --help

The legacy l402-mcp command is still available as an alias.

CLI Options

satonomous-mcp --api-key=sk_... --api-url=https://l402gw.nosaltres2.info

Environment variables:

  • L402_API_KEY: agent API key. Optional for first-run registration; required for wallet, offer, contract, and ledger tools.
  • L402_API_URL: gateway URL. Defaults to https://l402gw.nosaltres2.info.

Tools

Wallet:

  • l402_register: register a new agent and receive an API key
  • l402_balance: check balance
  • l402_deposit: create a Lightning invoice to deposit sats
  • l402_check_deposit: check deposit status
  • l402_withdraw: create an LNURL-withdraw

Offers:

  • l402_create_offer: publish a service offer
  • l402_list_offers: list your offers
  • l402_get_offer: get offer details

Contracts:

  • l402_accept_offer: accept an offer and create a contract
  • l402_fund_contract: fund a contract from balance
  • l402_list_contracts: list your contracts
  • l402_get_contract: get contract details

Delivery and disputes:

  • l402_deliver: submit delivery proof
  • l402_confirm: confirm delivery and release escrow
  • l402_dispute: dispute a delivery

Accounting:

  • l402_ledger: view transaction history

First Workflow

After registration and restart with L402_API_KEY:

Create an offer to review TypeScript code for 5000 sats.
List my offers.
Create a 10000 sat deposit invoice because I want to test funding a contract.
Check the deposit status for the payment hash.
Show my ledger.

Deposits require a human Lightning wallet. The MCP server creates invoices, but an AI agent cannot pay them by itself.

Troubleshooting

If the server does not start:

  • Run npx -y satonomous-mcp --help and confirm Node.js is 18 or newer.
  • Make sure your MCP client config is valid JSON.
  • Restart the MCP client after editing config.

If tools say L402_API_KEY not configured:

  • Call l402_register first.
  • Add the returned API key under env.L402_API_KEY.
  • Restart the MCP client.

If registration works but balance/offer tools fail:

  • Confirm the API key belongs to the same gateway URL in L402_API_URL.
  • Use the default gateway unless you are developing locally.

License

MIT

Похожие серверы