Skip to main content

Multi-model AI team coordination via MCP — the missing coordination layer for multi-agent, multi-provider AI systems

Project description

Team Table

Multi-model AI team coordination via MCP (Model Context Protocol).

An MCP server that lets multiple AI instances discover each other, coordinate tasks, and communicate through a shared SQLite database.

Quick Start

pip install -e ".[dev]"

Register as MCP server in Claude Code

claude mcp add --transport stdio --scope user team-table -- \
  path/to/.venv/Scripts/python.exe -m team_table.server

Network Mode (LAN)

Run the server over the network so other machines can connect:

# Start the server in SSE mode (or use streamable-http)
TEAM_TABLE_TRANSPORT=sse python -m team_table.server

From another PC on the LAN, register the remote server:

claude mcp add --transport sse team-table http://<host-ip>:8741/sse

Environment Variables

Variable Default Description
TEAM_TABLE_DB ~/.team-table/team_table.db Path to the SQLite database
TEAM_TABLE_TRANSPORT stdio Transport mode: stdio, sse, or streamable-http
TEAM_TABLE_HOST 0.0.0.0 Bind address for network transports
TEAM_TABLE_PORT 8741 Listen port for network transports

Architecture

Each Claude Code instance spawns its own STDIO MCP server process. All processes share one SQLite database (~/.team-table/team_table.db) using WAL mode for concurrent access. Alternatively, a single server can be run in network mode (SSE or streamable-http) to serve multiple clients over the LAN.

Tools (13)

  • Registration: register, deregister, list_members, heartbeat
  • Messaging: send_message, get_messages, broadcast
  • Task Board: create_task, list_tasks, claim_task, update_task
  • Shared Context: share_context, get_shared_context

Poll Daemon (Auto-Messaging)

By default, agents must manually check for messages. The poll daemon automates this — it monitors an agent's inbox and auto-responds, only escalating to the user when needed.

How It Works

  1. Polls the database every 30 seconds for unread messages
  2. Sends an acknowledgement reply to each incoming message
  3. Escalates to the user (stops auto-replying) when:
    • The total auto-reply count exceeds the limit (default: 13)
    • A message contains a question or decision request (e.g. "should we…?", "please approve", "what do you think")
  4. Notifies the sender with an [AUTO] message explaining the escalation

Usage

# Start polling for an agent (default: 30s interval, 13 message max)
python scripts/poll_daemon.py claude-opus

# Custom interval and message limit
python scripts/poll_daemon.py claude-opus --interval 15 --max-messages 13

# With a custom database path
TEAM_TABLE_DB=/path/to/db python scripts/poll_daemon.py claude-opus

Safety

  • Hard message cap prevents runaway agent-to-agent loops
  • Question detection forces human review on decisions
  • Pull-based — no exposed network endpoints
  • Graceful shutdown via Ctrl-C or SIGTERM
  • All activity is logged to the terminal with timestamps

Development

pytest          # run tests
ruff check .    # lint

License

GPL-3.0-or-later

Project details


Download files

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

Source Distribution

team_table-0.1.0.tar.gz (39.6 kB view details)

Uploaded Source

Built Distribution

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

team_table-0.1.0-py3-none-any.whl (31.8 kB view details)

Uploaded Python 3

File details

Details for the file team_table-0.1.0.tar.gz.

File metadata

  • Download URL: team_table-0.1.0.tar.gz
  • Upload date:
  • Size: 39.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for team_table-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a8728912899d4f663785200b9a12087c8fef8edd11e97a9250f962503915df84
MD5 47c05f41599249d2e488f60c556343c8
BLAKE2b-256 3fcd73368b8a25260498c4b99cf1e5b70fe2ff5ba24ade097bdf1408baeb1c95

See more details on using hashes here.

File details

Details for the file team_table-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: team_table-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for team_table-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa476bdda33fff902eaa38c4d6011e9d3fb3485b4fe2220d9fad20dc8446dd12
MD5 d2d8e8a02436ae7126d7fcb82282cea4
BLAKE2b-256 fa788a030c21efaf61a9a567f411b59fa713c205f2588d8c3efdc96cfda591c3

See more details on using hashes here.

Supported by

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