Cashpilot MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the Cashpilot MCP listing page.

cashpilot-mcp

cashpilot-mcp

npm CI Docker Pulls GitHub Stars License

A tiny bridge that exposes any CashPilot instance as an MCP server, enabling LLMs to monitor passive income earnings, manage services, and control fleet workers.

It talks to your own CashPilot instance with its API key, over stdio or Streamable HTTP.

Speaks MCP 2026-07-28 and every earlier revision down to 2024-11-05 from the same binary: current clients that still use the initialize handshake (Claude Code, Claude Desktop, Cursor, VS Code) and 2026-07-28 clients (server/discover, stateless requests) both work.

Features

  • Earnings: totals, per-service balances with cashout eligibility, daily series and history.
  • Fleet: deployed services, the deployable catalog, workers, health scores and collector alerts, as tools and as cashpilot:// resources.
  • Service control on any worker: start, stop, restart, deploy, remove, logs, plus trigger_collection and a Docker Compose export per architecture.
  • Read-only mode: CASHPILOT_READ_ONLY=true registers only the tools that change nothing.
  • Every tool has a title and read-only/destructive hints, list tools return structured JSON, inputs are validated.
  • HTTP mode listens on 127.0.0.1:8081, checks Origin, caps request size and requires MCP_AUTH_TOKEN on any non-loopback address.

Install

Every snippet runs the npm package over stdio. Use the admin key (CASHPILOT_ADMIN_API_KEY) for full control, or the read-only key (CASHPILOT_READONLY_API_KEY) with CASHPILOT_READ_ONLY=true. Never the fleet key.

Claude Code

Terminal
claude mcp add --transport stdio --env CASHPILOT_URL=http://localhost:8080 --env CASHPILOT_API_KEY=<key> cashpilot -- npx -y cashpilot-mcp

Claude Desktop (claude_desktop_config.json) and Cursor (~/.cursor/mcp.json or .cursor/mcp.json)

config.json
{
  "mcpServers": {
    "cashpilot": {
      "command": "npx",
      "args": ["-y", "cashpilot-mcp"],
      "env": {
        "CASHPILOT_URL": "http://localhost:8080",
        "CASHPILOT_API_KEY": "<key>"
      }
    }
  }
}

VS Code (.vscode/mcp.json; the key is asked once and stored by VS Code)

config.json
{
  "inputs": [
    { "id": "cashpilot-key", "type": "promptString", "description": "CashPilot API key", "password": true }
  ],
  "servers": {
    "cashpilot": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "cashpilot-mcp"],
      "env": { "CASHPILOT_URL": "http://localhost:8080", "CASHPILOT_API_KEY": "${input:cashpilot-key}" }
    }
  }
}

Codex (~/.codex/config.toml)

toml
[mcp_servers.cashpilot]
command = "npx"
args = ["-y", "cashpilot-mcp"]
env = { CASHPILOT_URL = "http://localhost:8080", CASHPILOT_API_KEY = "<key>" }

Docker, the HTTP server and local builds are in Getting started; every variable is in Configuration.

Tools

ToolWhat it doesChanges the fleet
get_earnings_summaryTotals: today, this month, all timeno
get_earnings_breakdownBalance and cashout eligibility per serviceno
get_earnings_dailyOne total per day, 1 to 365 daysno
get_earnings_historyRecords for a week, month, year or allno
list_deployed_servicesWhat runs where, with status and resourcesno
list_available_servicesDeployable catalog with the env keys each needsno
get_fleet_summaryWorkers and containers, online and totalno
list_workersWorker ids for worker_idno
get_health_scoresHealth per service over 1 to 90 daysno
get_collector_alertsErrors from the last earnings collectionno
get_service_logsLatest container log lines (untrusted content)no
get_composedocker-compose.yml for amd64, arm64 or armno
trigger_collectionCollect earnings now, in the backgroundyes
start_service / restart_serviceStart or restart a containeryes
stop_serviceStop a container; it stops earningyes, destructive
deploy_serviceDeploy or redeploy with env, hostname, instancesyes, destructive
remove_serviceRemove a deployment; volumes are keptyes, destructive

With more than one worker online, service tools need worker_id (from list_workers). Resources and details are in Usage.

Documentation

Related projects

CashPilot, the passive income fleet manager this server talks to.

License

GPL-3.0-or-later