Skip to main content

basecamp-cli-mcp

A Model Context Protocol (MCP) server that wraps the basecamp CLI. Every non-shortcut CLI action (projects list, todos create, cards update, etc.) is exposed as an MCP tool, so MCP-compatible clients (Claude Code, Claude Desktop, etc.) can drive Basecamp directly.

Requirements

  • Python ≥ 3.11
  • The basecamp CLI on PATH, already authenticated (basecamp setup) — see First-time setup below to do both in one command
  • uv for the recommended install

First-time setup

If you don't have the basecamp CLI installed yet:

uvx basecamp-cli-mcp setup

This checks for the basecamp binary, runs the official installer (curl -fsSL https://basecamp.com/install-cli | bash) after a y/N prompt if it's missing, then runs basecamp setup to walk you through OAuth.

On macOS, after auth completes it offers to:

  1. Add basecamp to your claude_desktop_config.json (with a timestamped backup of any existing file). You'll choose between:
    • Minimal — todos, cards, card tables, card steps (plus projects_list). A focused tool set that's easier for agents to navigate.
    • Full — all 250+ tools.
    • Skip — leave the config alone.
  2. Restart Claude Desktop.

macOS and Linux only for the install/auth — on Windows the command prints the PowerShell installer and exits. The Claude Desktop step is macOS-only.

Run

The fastest way — no install step at all:

uvx basecamp-cli-mcp

uvx resolves the package, runs it in an ephemeral isolated env, and exec's it on stdin/stdout.

To install permanently:

uv tool install basecamp-cli-mcp
basecamp-cli-mcp

Add to Claude Code

claude mcp add basecamp -- uvx basecamp-cli-mcp

Add to Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "basecamp": {
      "command": "uvx",
      "args": ["basecamp-cli-mcp"]
    }
  }
}

If uvx isn't on Desktop's PATH (it strips most of your shell PATH), use the absolute path — which uvx from your shell.

Filtering tools

By default the server exposes all 250+ tools. Most agents only need a handful, and a smaller catalog speeds up tool selection. Filter with --include / --exclude (fnmatch globs against tool names; both flags repeatable):

basecamp-cli-mcp --include 'cards_*' --include 'todos_*'
basecamp-cli-mcp --include '*' --exclude 'webhooks_*' --exclude 'templates_*'

Register multiple profiles in claude_desktop_config.json and turn them on per task:

{
  "mcpServers": {
    "basecamp-cards": {
      "command": "uvx",
      "args": ["basecamp-cli-mcp", "--include", "cards_*", "--include", "projects_list"]
    },
    "basecamp-todos": {
      "command": "uvx",
      "args": ["basecamp-cli-mcp", "--include", "todos_*", "--include", "projects_list"]
    },
    "basecamp-full": {
      "command": "uvx",
      "args": ["basecamp-cli-mcp"]
    }
  }
}

BASECAMP_BIN

If the basecamp CLI isn't on the spawned process's PATH (a real risk under Claude Desktop), set:

"env": { "BASECAMP_BIN": "/absolute/path/to/basecamp" }

How it works

Tool schemas are pre-generated and committed to src/basecamp_cli_mcp/data/tools.json (shipped inside the wheel as package data). At runtime the server loads that file and registers one MCP tool per entry. Each tool:

  1. Builds argv from positional arguments and flags defined in the schema.
  2. Shells out: basecamp <group> <action> <args...> --json.
  3. Returns the parsed data field from the CLI's {ok, data} envelope to the MCP client.

Shortcut commands (todo, done, card, comment, etc.) are intentionally excluded — their underlying actions (todos_create, cards_create, …) are already exposed.

Regenerating tool schemas

After upgrading the basecamp CLI:

uv run basecamp-cli-mcp generate

Review the diff in src/basecamp_cli_mcp/data/tools.json and commit. The generator reads basecamp commands --json and parses basecamp <group> <action> --help for each action.

Development

uv sync
uv run pytest
uv build                       # wheel + sdist into dist/

Layout:

  • src/basecamp_cli_mcp/server.py — wires up the MCP server from data/tools.json
  • src/basecamp_cli_mcp/runner.py — builds argv and shells out
  • src/basecamp_cli_mcp/generator.py — regenerates data/tools.json
  • src/basecamp_cli_mcp/help_parser.py — parses --help text into a schema
  • src/basecamp_cli_mcp/cli.py — entrypoint (basecamp-cli-mcp)
  • src/basecamp_cli_mcp/data/tools.json — generated tool schemas (committed)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

basecamp_cli_mcp-0.7.1.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

basecamp_cli_mcp-0.7.1-py3-none-any.whl (36.3 kB view details)

Uploaded Python 3

File details

Details for the file basecamp_cli_mcp-0.7.1.tar.gz.

File metadata

  • Download URL: basecamp_cli_mcp-0.7.1.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for basecamp_cli_mcp-0.7.1.tar.gz
Algorithm Hash digest
SHA256 fd53bd40fff59d4825be91b50de56e68d70836bf99bdc372770ff644598bf7a6
MD5 aa7a98ba27150a66bab4c20af0c659ea
BLAKE2b-256 3041c53c4d057a11ffee8012cd175ebddf1f43e75c62b5aef63dfc4a1a2d0a4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for basecamp_cli_mcp-0.7.1.tar.gz:

Publisher: release.yml on FutureWorkshops/basecamp-cli-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file basecamp_cli_mcp-0.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for basecamp_cli_mcp-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14237bda73ee344ab56e7346e253085827138fa0a6a1e33af26e6dbbe2c82fda
MD5 bc657e8c23d1f2e48b801219d59c7c33
BLAKE2b-256 230565c6d08f53abd78c00ead09a295a3bff03a751f2690b3f2eb872d5b51d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for basecamp_cli_mcp-0.7.1-py3-none-any.whl:

Publisher: release.yml on FutureWorkshops/basecamp-cli-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page