MCP Hub
Back to servers

Caboose MCP

A comprehensive personal AI toolserver that exposes 105 tools across 25 groups—including Slack, Docker, and calendar management—to Claude and VS Code. It features a Go-based MCP server integrated with a custom VS Code extension and n8n workflow automation for streamlined personal productivity.

glama
Updated
Mar 19, 2026

caboose-mcp

Personal AI toolserver — 108 MCP tools exposed to Claude, VS Code, and chat bots via a Go server hosted on AWS ECS.

Deploy Infra Deploy Bots Deploy App Release Go 1.24 MCP Live License

Live endpoint: https://mcp.chrismarasco.io/mcp (bearer auth required)


Architecture

graph TD
    Claude["Claude Code (stdio)"] -->|all 108 tools| Binary["caboose-mcp (Pi)"]
    VSCode["VS Code / Bruno"] -->|HTTPS + Bearer| ALB["ALB · mcp.chrismarasco.io"]
    ALB --> Serve["ECS · --serve-hosted\n88 hosted tools"]
    Slack["Slack"] --> Bots["ECS · --bots\nSlack + Discord gateway"]
    Discord["Discord"] --> Bots
    Bots -->|Claude Haiku| Agent["Bot agent loop"]
    Binary -->|LAN MQTT| Bambu["Bambu A1 Printer"]
    Binary -->|socket| DockerD["Docker daemon"]
    Serve & Bots --> SM["AWS Secrets Manager\ncaboose-mcp/env"]

Tool Tiers

Tools are split so the cloud server only exposes what's safe remotely.

TierFlagCountWhat's included
Hosted--serve-hosted88Calendar, Slack, Discord, GitHub, Notes, Focus, Learning, Sources, CloudSync, Audit, Health, Secrets, DB, Mermaid, Greptile, Sandbox, Persona, Jokes, Setup
Local--serve-local20Docker, execute_command, Bambu, Blender, Chezmoi, Toolsmith
Combined--serve / stdio108Everything

Full reference: docs/tools.md


Quick Start

Connect to the live server

VS Code — add to .vscode/mcp.json:

{
  "servers": {
    "caboose-mcp": {
      "type": "http",
      "url": "https://mcp.chrismarasco.io/mcp",
      "headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
    }
  }
}

Bruno — open the bruno/ folder as a collection, set the production environment authToken.

Get the token:

aws secretsmanager get-secret-value --secret-id caboose-mcp/env \
  --query 'SecretString' --output text \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['MCP_AUTH_TOKEN'])"

Run locally (Claude Code on Pi)

cd packages/server && go build -o caboose-mcp .

# Interactive setup wizard — writes .env
./caboose-mcp --setup

# Terminal UI dashboard
./caboose-mcp --tui

./caboose-mcp                # stdio — all tools (Claude Code)
./caboose-mcp --serve        # HTTP :8080 — all tools
./caboose-mcp --serve-hosted # HTTP :8080 — hosted tools only
./caboose-mcp --serve-local  # HTTP :8080 — local tools only
./caboose-mcp --bots         # Slack + Discord bots (blocks)

.mcp.json for Claude Code:

{
  "mcpServers": {
    "caboose": { "command": "/path/to/packages/server/caboose-mcp", "type": "stdio" }
  }
}

Run with Docker Compose (server + n8n)

cp .env.example .env          # fill in secrets
docker compose -f docker/docker-compose.yml up -d
ServiceURL
MCP serverhttp://localhost:8080/mcp
n8nhttp://localhost:5678

Full setup instructions for both local and hosted deploys: docs/setup.md


CI / CD

WorkflowTriggerAction
deploy-infra.ymlPush to terraform/aws/** or manualtofu apply + sync secrets to AWS Secrets Manager
deploy-bots.ymlPush to packages/server/** on mainBuild AMD64 image → ECR → redeploy caboose-mcp-bots
deploy-app.ymlPush to packages/server/** on mainBuild AMD64 image → ECR → redeploy caboose-mcp-serve
release.ymlPush tag v*.*.*Build linux/amd64 + linux/arm64 binaries → GitHub Release

Creating a release

git tag v1.0.0
git push origin v1.0.0

This triggers release.yml which builds binaries for both architectures and attaches them to a GitHub Release.


Infrastructure

AWS resources managed by OpenTofu in terraform/aws/:

  • ECS Fargatecaboose-mcp-bots (--bots) + caboose-mcp-serve (--serve-hosted)
  • ALB — HTTPS 443, HTTP→HTTPS redirect, mcp.chrismarasco.io
  • ACM — TLS cert, DNS-validated via Route53
  • ECR — Docker image registry (lifecycle: keep last 5)
  • Secrets Managercaboose-mcp/env — secrets injected into ECS tasks at startup
  • S3 — encrypted config sync bucket
  • CloudWatch Logs — 30-day retention per service
cd terraform/aws
cp terraform.tfvars.example terraform.tfvars
tofu init && tofu plan && tofu apply

Adding a Tool

tool_scaffold   # generate tools/mytool.go skeleton
tool_write      # write the file
tool_rebuild    # go build

Or edit packages/server/tools/ directly — one .go file per feature group.


Repository Layout

packages/server/         Go MCP server
  tools/                 One .go file per feature group (108 tools)
  config/config.go       All env vars → Config struct
  main.go                Flags, server builders, bot runner
bruno/                   Bruno collection (120 requests, 24 categories)
terraform/aws/           OpenTofu — ECS, ALB, ACM, ECR, S3, Secrets Manager
.github/workflows/       deploy-infra, deploy-bots, deploy-app, release
docs/
  tools.md               Full tool reference

License

MIT

Reviews

No reviews yet

Sign in to write a review