bambam

bambam

MCP server for agent-first Kanban board management, enabling agents to create, move, comment, and claim pebbles (cards) across statuses like requested, code_creation, testing, validation, and complete, with support for blocking, context feedback, and HIL (human-in-the-loop) transitions.

Category
访问服务器

README

Bambam — agent-first Kanban (CLI + MCP)

Pebbles are the work items on the board (also called cards in the API, CLI bambam card …, and SQLite cards table). Each has title, description, comments, and status:

requestedcode_creation (Code Creation) → testingvalidationcomplete

Agent policy: implementers advance requestedcode_creationtesting. Testing agents do not apply code fixes: they add findings and limited recommendations as comments, then move the pebble to requested when more work is needed; if fully passing, they move it to validation (no --hil required). Moving to complete requires a human operator: --hil on the CLI, hil=true on MCP tools, or BAMBAM_HIL=1. Moving to validation from any status other than testing also requires HIL (human skip-QA / rescue).

Context feedback: when you move a pebble, you can log how useful Bambam’s guidance was for the step you just finished: context_helpfulness 1–5 (5 = enough context, 1 = lots of extra file reads/searches) plus optional extra_lookups and feedback_note. CLI: bambam card move ID --status … --context-helpfulness 4 --extra-lookups 2. MCP: bambam_card_move with the same fields (context_helpfulness: 0 skips logging). bambam advise / MCP bambam_agent_instruction include the rating scale and recent feedback history.

Assignment: each pebble has assigned_agent_id (empty = unclaimed). Claim is not allowed while the pebble is in requested (backlog): move to code_creation first, then bambam card claim ID --agent-id my-agent. Another agent’s claim fails until you release or move the pebble (any status change clears the assignee). Use --agent-id on comment, update, and move (or set BAMBAM_AGENT_ID) when the pebble is assigned so only that agent can mutate it. MCP: bambam_card_claim, bambam_card_release, and acting_agent_id on comment/update/move. Human-oriented moves (--hil / BAMBAM_HIL=1 when required, or explicit --hil) bypass assignee checks as documented in code.

Blocked pebbles: if work pauses but the agent did not crash, mark the pebble blocked with a required hint: bambam card block ID --hint "…" --agent-id my-agent (or MCP bambam_card_block). This releases assignment; claim and normal move are disallowed until bambam card unblock / bambam_card_unblock (same blocker agent, or --hil / hil=true). A HIL-style move (explicit --hil / BAMBAM_HIL=1 when the transition requires HIL) clears blocked and updates status so humans can rescue stuck boards.

Quick start (development)

python3.13 -m venv .venv
source .venv/bin/activate
pip install -e ".[mcp,tui]"
python -m bambam init
python -m bambam card create --title "Example"
python -m bambam advise

Database: .bambam/kanban.sqlite under the current working directory, or override with BAMBAM_DB=/path/to/file.sqlite.

Human project index: bambam init records the project when you use the usual layout cwd/.bambam/kanban.sqlite (not when BAMBAM_DB or --db points elsewhere—use project add for those). Registry file: ~/.config/bambam/projects.sqlite (override with BAMBAM_CONFIG_DIR). Commands:

bambam project list
bambam project add /path/to/existing/repo   # register a board you created earlier
bambam project forget /path/to/repo         # remove registry entry only (keeps SQLite file)

Repo entrypoint: bambam.py (same as python -m bambam).

Install to ~/.local/bin/bambam

./install.sh              # default prefix ~/.local
./install.sh /opt/custom  # custom prefix → /opt/custom/bin/bambam

This creates a dedicated venv at {prefix}/libexec/bambam/venv so the CLI works from any directory.

MCP (Cursor / Claude Desktop)

Run the stdio server:

python -m bambam mcp

Example Cursor MCP config:

{
  "mcpServers": {
    "bambam": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["-m", "bambam", "mcp"],
      "env": {
        "BAMBAM_PROJECT_ROOT": "/absolute/path/to/repo"
      }
    }
  }
}

Omit env if the host starts the server with the workspace as cwd (then .bambam/kanban.sqlite is resolved there). Tools intentionally do not take project_root / db_path arguments — some clients serialize those badly; use BAMBAM_PROJECT_ROOT or BAMBAM_DB instead. bambam_card_list uses status with default "all" (not nullable) so clients don’t emit broken JSON for optional filters.

See docs/cursor-mcp.md for Cursor JSON errors and troubleshooting.

Tools include bambam_agent_instruction (markdown guidance keyed off pebble status) plus CRUD/move helpers (bambam_card_*).

TUI (live board)

Watch a single project’s SQLite board update in real time (polls the DB on an interval). The UI is five Kanban columns (requested → complete); pebbles move between columns as their status changes.

pip install -e ".[tui]"
bambam tui --project /path/to/repo
# optional: bambam tui --project . --interval 0.5

[ / ] move focus between columns; / move within a column; q quit; r refresh. Requires project/.bambam/kanban.sqlite.

Web GUI (read-only)

Five-column Kanban in the browser; view only (stdlib HTTP server + static HTML/JS). Refreshes from SQLite every ~2.5s.

bambam gui                          # board for current directory / BAMBAM_DB
bambam gui --project /path/to/repo  # project/.bambam/kanban.sqlite
bambam gui --port 8742 --no-open    # fixed port; don’t launch browser
bambam gui --host 0.0.0.0 --port 8742   # LAN (use with care)

Default --port 0 picks a free port and prints the URL.

Autonomous agent loop (no IDE hooks)

To run coding agents repeatedly against the board without wiring MCP into each harness, use AGENTS.md plus scripts/bambam-agent-loop.sh:

  • AGENTS.md — policy: how to pick pebbles, claim, comment, move, block, and respect HIL rules using the CLI (or MCP if available).
  • scripts/README.md — runner env vars, examples, and security note for BAMBAM_AGENT_CMD.

Quick example (after bambam is on your PATH):

export BAMBAM_AGENT_ID="loop-$(hostname)-$$"
export BAMBAM_AGENT_CMD='echo "Replace with your agent CLI; pebble $BAMBAM_NEXT_PEBBLE_ID ($BAMBAM_NEXT_PEBBLE_STATUS)"'
./scripts/bambam-agent-loop.sh /path/to/repo

Copy AGENTS.md and the scripts/ folder into any Bambam project you want to drive this way.

Advisory check (Claude Code)

projects/bambam_agent_validation/ seeds a board and runs claude -p to validate that bambam advise matches agent/HIL expectations. See that folder’s README.

Demo project

See projects/pacman/ — TypeScript + HTML canvas game; npm install && npm run build, then serve the folder (ES modules):

cd projects/pacman && python -m http.server 8765

Open http://127.0.0.1:8765/.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选