Skip to main content
Glama

What you get

Type

What for

MCP URI / Tool id

Resources

Browse earnings, services, fleet status, and health scores read-only

cashpilot://earnings/summary

cashpilot://earnings/breakdown

cashpilot://services/deployed

cashpilot://services/catalog

cashpilot://fleet/summary

cashpilot://workers

cashpilot://health/scores

cashpilot://collector-alerts

Tools

Query earnings, manage services, and trigger collection

get_earnings_daily

get_earnings_history

get_service_logs

restart_service

stop_service

start_service

deploy_service

remove_service

trigger_collection

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-admin-api-key

Security note: The HTTP transport listens on 127.0.0.1:8081 by default. If you need to expose it on a network, place it behind a reverse proxy with authentication.

Install via npm (stdio transport)

npx cashpilot-mcp

Or install globally:

npm install -g cashpilot-mcp
cashpilot-mcp

This downloads the pre-built Go binary from GitHub Releases for your platform and runs it with stdio transport. Requires at least one published release.

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/server

Configuration

Variable

Default

Description

CASHPILOT_URL

http://localhost:8080

CashPilot instance URL (without trailing /)

CASHPILOT_API_KEY

(required)

Admin API key for authentication

LISTEN_ADDR

127.0.0.1:8081

HTTP listen address (Docker sets 0.0.0.0:8081)

TRANSPORT

(empty = HTTP)

Set to stdio for stdio transport

Put them in a .env file (from .env.example) or set them in the environment.

Testing

Tested with Inspector and it is currently fully working. Before making a PR, make sure this MCP server behaves well via this medium.

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": "none" },
  "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"
}

Credits

CashPilot -- passive income fleet management dashboard

MCP-GO -- modern MCP implementation

GoReleaser -- painless multi-arch releases

Maintainers

@GeiserX.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GeiserX/cashpilot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server