
CashPilot MCP
β 2from GeiserX
Monitor passive income, bandwidth sharing, and DePIN earnings from a self-hosted CashPilot dashboard
What you get
| Type | What for | MCP URI / Tool id |
|---|---|---|
| Resources | Browse earnings, services, fleet status, and health scores read-only | cashpilot://earnings/summary<br>cashpilot://earnings/breakdown<br>cashpilot://services/deployed<br>cashpilot://services/catalog<br>cashpilot://fleet/summary<br>cashpilot://workers<br>cashpilot://health/scores<br>cashpilot://collector-alerts |
| Tools | Query earnings, manage services, and trigger collection | get_earnings_daily<br>get_earnings_history<br>get_service_logs<br>restart_service<br>stop_service<br>start_service<br>deploy_service<br>remove_service<br>trigger_collection<br>get_compose |
Everything is exposed over a single JSON-RPC endpoint (/mcp).
LLMs / Agents can: initialize -> readResource -> listTools -> callTool ... and so on.
Quick-start (Docker Compose)
services:
cashpilot-mcp:
image: drumsergio/cashpilot-mcp:latest
ports:
- "127.0.0.1:8081:8081"
environment:
- CASHPILOT_URL=http://cashpilot:8080
- CASHPILOT_API_KEY=<your-CASHPILOT_ADMIN_API_KEY>Security note: The HTTP transport listens on
127.0.0.1:8081by default. If you need to expose it on a network, place it behind a reverse proxy with authentication.
Local build
git clone https://github.com/GeiserX/cashpilot-mcp
cd cashpilot-mcp
# (optional) create .env from the sample
cp .env.example .env && $EDITOR .env
go run ./cmd/serverTesting
Tested with Inspector and it is currently fully working. Before making a PR, make sure this MCP server behaves well via this medium.
Credits
CashPilot -- passive income fleet management dashboard
MCP-GO -- modern MCP implementation
GoReleaser -- painless multi-arch releases
Maintainers
Contributing
Feel free to dive in! Open an issue or submit PRs.
CashPilot-MCP follows the Contributor Covenant Code of Conduct.
Other MCP Servers by GeiserX
- duplicacy-mcp β Backup health monitoring
- genieacs-mcp β TR-069 device management
- lynxprompt-mcp β AI configuration blueprints
- pumperly-mcp β Fuel and EV charging prices
- telegram-archive-mcp β Telegram message archive
Related Projects
| Project | Description |
|---|---|
| CashPilot | Self-hosted passive income platform with web UI for setup and earnings tracking |
| CashPilot-android | Android monitoring agent for CashPilot passive income apps |
| cashpilot-ha | Home Assistant custom integration for CashPilot passive income monitoring |
| n8n-nodes-cashpilot | n8n community node for CashPilot passive income monitoring |
npx cashpilot-mcpBefore it works, you'll need: CASHPILOT_API_KEYCASHPILOT_ADMIN_API_KEYMCP_AUTH_TOKEN
Install via npm (stdio transport)
npx cashpilot-mcpOr install globally:
npm install -g cashpilot-mcp
cashpilot-mcpThis downloads the pre-built Go binary from GitHub Releases for your platform and runs it with stdio transport. Requires at least one published release.
Configuration
| Variable | Default | Description |
|---|---|---|
CASHPILOT_URL | http://localhost:8080 | CashPilot instance URL (without trailing /) |
CASHPILOT_API_KEY | (required) | Admin API key (CASHPILOT_ADMIN_API_KEY from your CashPilot instance β NOT the fleet key) |
LISTEN_ADDR | 127.0.0.1:8081 | HTTP listen address (Docker sets 127.0.0.1:8081) |
MCP_AUTH_TOKEN | (empty) | Bearer token for HTTP transport auth. Required when LISTEN_ADDR is not loopback |
TRANSPORT | (empty = HTTP) | Set to stdio for stdio transport |
Put them in a .env file (from .env.example) or set them in the environment.
Example configuration for client LLMs
{
"schema_version": "v1",
"name_for_human": "CashPilot-MCP",
"name_for_model": "cashpilot_mcp",
"description_for_human": "Monitor passive income earnings, manage bandwidth-sharing services, and control fleet workers via CashPilot.",
"description_for_model": "Interact with a CashPilot instance that manages passive income services. First call initialize, then reuse the returned session id in header \"Mcp-Session-Id\" for every other call. Use readResource to fetch URIs that begin with cashpilot://. Use listTools to discover available actions and callTool to execute them.",
"auth": {
"type": "bearer",
"token": "<your-MCP_AUTH_TOKEN>"
},
"api": {
"type": "jsonrpc-mcp",
"url": "http://localhost:8081/mcp",
"init_method": "initialize",
"session_header": "Mcp-Session-Id"
},
"contact_email": "acsdesk@protonmail.com",
"legal_info_url": "https://github.com/GeiserX/cashpilot-mcp/blob/main/LICENSE"
}No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.