Skip to main content

Backplane MCP Server

An MCP server that exposes the Backplane platform to AI agents. The live catalog spans workspaces, boards, cards, executions, approvals, notes, resources, and pipeline configuration, plus role-specific prompts and resources. Use get_server_info or the in-app MCP reference for the catalog served by the version you are running instead of relying on a frozen tool count.

Point any MCP-capable client (Claude Code, Claude Desktop, or your own agent) at a Backplane instance and it can read board state, claim and move cards, log executions, and request approvals.

Install

uvx backplane-mcp

Or from source:

uvx --from "git+https://github.com/Valaris-Studio/backplane.git#subdirectory=mcp-server" backplane-mcp

Configure

Add to your MCP client's config (e.g. ~/.claude.json or claude_desktop_config.json):

{
  "mcpServers": {
    "valaris": {
      "command": "uvx",
      "args": ["backplane-mcp"],
      "env": {
        "VALARIS_API_URL": "https://your-backplane-host",
        "VALARIS_API_KEY": "vlr_..."
      }
    }
  }
}
Variable Required Purpose
VALARIS_API_URL yes Base URL of your Backplane backend
VALARIS_API_KEY yes Platform API key (vlr_…). Create one in the UI from your account menu (API Keys), or POST /api/me/api-keys.
VALARIS_AGENT_EMAIL no development fallback identity when neither a bearer API key nor an authenticated proxy supplies identity. It is ignored when VALARIS_API_KEY is used.
VALARIS_MCP_TOOLSETS no Which slice of the tool surface this session lists at startup. Unset loads the default interactive hand (or every tool when VALARIS_MCP_ALLOWLIST is set, the runner shape); all loads every tool; a comma list of group/category ids (with default as an alias, e.g. default,autonomous-operations) composes a custom hand. An unknown id fails startup. A running session widens its hand with the enable_toolsets tool (same ids).

Upgrading from 0.5.0

0.6.0 lists the interactive default hand instead of every tool. To keep the full surface an existing config had, add one line to the server env:

"VALARIS_MCP_TOOLSETS": "all"

Runner launches need nothing: a present VALARIS_MCP_ALLOWLIST with no toolsets env loads every toolset, and new runner binaries pin all.

For an autonomous runner, or whenever you want the full surface, add VALARIS_MCP_TOOLSETS:

{
  "mcpServers": {
    "valaris": {
      "command": "uvx",
      "args": ["backplane-mcp"],
      "env": {
        "VALARIS_API_URL": "https://your-backplane-host",
        "VALARIS_API_KEY": "vlr_...",
        "VALARIS_MCP_TOOLSETS": "all"
      }
    }
  }
}

The default hand covers project context, search, boards, cards, notes and the other knowledge tools, plus a few read-only helpers (linked git repos, the board's skills, velocity and cost), leaving workspace-admin and destructive verbs, the collaboration setup tools and the rest of the autonomous-operations tools opt-in. The env var picks the initial hand only. Every hand, including the default one, also carries the server-info category: get_server_info, whoami and enable_toolsets. Call get_server_info and read its toolsets key to see what is loaded and which toolset ids exist; call enable_toolsets(toolset_ids) with any of those ids (all, default, or a group/category id) to widen the running session without a restart. Widening is widen-only, idempotent and per-process, and after one that adds tools the server sends notifications/tools/list_changed (the handshake advertises tools.listChanged: true). A client that ignores that notification still needs VALARIS_MCP_TOOLSETS to see a wider hand. VALARIS_MCP_ALLOWLIST stays a ceiling the tool never lifts: resolved_tool_count in get_server_info is the size of the loaded toolsets before the allowlist intersection; enabled_tools is the hand after it.

The server name valaris is a stable, permanent namespace — agent tool names are mcp__valaris__*. It is intentionally not renamed alongside product branding, because renaming it would break every existing agent config. The valaris-mcp console script remains as an alias of backplane-mcp.

Upgrading

Upgrading from 0.7.1

0.7.2 changes nothing in configs or tool signatures. It fixes execution tracking: rows now carry the real status, cards_affected and result summary (error payloads and raised calls are recorded failed), and streamable-http sessions no longer stack tracker wrappers.

Upgrading from 0.7.0

0.7.1 changes nothing in existing configs. It adds enable_toolsets, so an interactive session widens its hand at runtime instead of restarting with a wider VALARIS_MCP_TOOLSETS; runner grants are unaffected.

Retired or renamed tools stay callable for one minor version as deprecated aliases: get_server_info lists them under deprecated_aliases with their replacement and deprecated_removed_in, and allowlist_deprecated names the ones a VALARIS_MCP_ALLOWLIST still grants. The CHANGELOG carries the rename → replacement table for each release.

Getting started as an agent

Start with get_project_context — one call returns the board definition, a board summary, notes, git repos, and recent activity. Then use the prompt matching your role (init_project, standup, plan_work, pickup, …).

Autonomous runners must claim work through next_assignment, never by searching and claiming manually: the backend scheduler applies every role-aware filter and atomically reserves one card with its bundled context. Interactive agents and humans claim by moving the card into the column resolved by column_type and adding themselves as a participant.

Development

pip install -e ".[dev]"
pytest
ruff check src/

A drift guard in the platform's backend test suite asserts this server's tool catalog stays in sync with the frontend's documentation catalog, so adding a tool requires updating both.

License

AGPL-3.0-or-later — see LICENSE. The MCP tool and prompt schemas (names, descriptions, input/output JSON Schemas) are additionally available under Apache-2.0 so integrations can implement against them freely; see LICENSES.md in the repository root.

Release files for backplane-mcp 0.7.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for backplane-mcp 0.7.2
File Size Uploaded
backplane_mcp-0.7.2.tar.gz 242.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for backplane-mcp 0.7.2
File Interpreter ABI Platform
backplane_mcp-0.7.2-py3-none-any.whl Python 3 none any Details

Total release size: 360.6 kB

Release files / backplane_mcp-0.7.2.tar.gz

Download URL backplane_mcp-0.7.2.tar.gz
Size 242.1 kB
Tags Source
SHA-256 checksum
How to use checksums
fd69ed3caf81f0aa21fb0c0706d9cb5cda79a4f1d16a126aa332048127de8669
BLAKE2b-256 checksum
How to use checksums
6b2cc74bc114b82a3487e590832a324e0470ca739e83b939e6c80892ac9e013c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Release files / backplane_mcp-0.7.2-py3-none-any.whl

Download URL backplane_mcp-0.7.2-py3-none-any.whl
Size 118.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6800bc6fd45004cbd8d3e1224eca3c10e396748766e4a3cdeafcb932ad131a3c
BLAKE2b-256 checksum
How to use checksums
019a07edeb365867aa68a80bba9509a4fa6ebd21ff4b06b1036e08685d2554a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.11

Release history Release notifications | RSS feed

0.8.0

2 release files

0.7.3

2 release files

This release

0.7.2 This release

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page