The MCP rail for NorthGate AI FlightDeck — provision governed MCP tools into Claude Code, Cursor, and Codex; run governed agent lanes; verify signed evidence packs offline.
Project description
flightdeck-connect
The MCP rail for NorthGate AI FlightDeck — the governed multi-agent engineering console. Provision governed MCP tools into the coding tools you already use (Claude Code, Cursor, Codex), run governed agent lanes, and verify signed evidence packs offline.
(Import package and console-script names retain the legacy conductor
naming — FlightDeck was formerly Conductor, and existing integrations are
never broken by a rename.)
After pip install flightdeck-connect you get:
-
flightdeck-connect— detect the AI coding tools on this machine and idempotently provision the FlightDeck MCP server into each (Claude Code project.mcp.json, Cursormcp.json,codex mcp add), profiled by task, chain-recording the provisioning when a board is given. -
conductor— a stdlib-only HTTP client for the/v1/conductor/*API. -
conductor-mcp— a stdio JSON-RPC Model Context Protocol server that exposes 34 tools (21conductor_*+ 13flightdeck_*, scoped at runtime viaMCP_TOOL_SET=flightdeck|conductor|all) to MCP-aware agent runtimes (Claude Code, Cursor, Codex, VS Code agents). Theflightdeck_*family implements the FlightDeck Agent Contract v1 loop —get_handoff → read_exam → prepare_workspace → submit_return. -
flightdeck-verify— standalone offline evidence-pack verifier (stdlib-only; exit 0/1/2;--json). -
flightdeck-gate— pre-merge git gate for verify-gated merges (chain walk + accept-gate conjuncts + reference-transaction guard).
Install
pip install flightdeck-connect
Zero runtime dependencies (pure Python stdlib). Python 3.8+.
Auth
The CLI authenticates one of two ways:
| Header | Env var | Source |
|---|---|---|
X-Agent-Token |
CONDUCTOR_AGENT_TOKEN |
Service token issued by /v1/conductor/projects/{id}/agent-tokens. Preferred for agents. |
X-JWT-Token |
CONDUCTOR_USER_JWT |
A standard TrustSHIELD access token. Fallback for humans. |
export CONDUCTOR_AGENT_TOKEN=cdtr_...
conductor whoami
CLI quickstart
# Probe auth + caller mode
conductor whoami
# Project + task ops
conductor project list
conductor project create --name "TrustSHIELD Conductor delivery"
conductor task list --project <project-id>
# Workflow transition (Policy Mesh gated)
conductor transition TASK-0040 \
--action submit_review --to-state review_ready \
--actor-member-id <member-id> \
--reason "tests pass, ruff clean" \
--evidence gitlab_mr=https://gitlab.com/.../merge_requests/126
# Release pack — download + offline verify
conductor export --project <project-id> --out release.tar.gz
conductor verify release.tar.gz
# -> Exit 0 + "OK: pack integrity verified." == nothing tampered.
conductor --help lists every subcommand. --json on any command gives
machine-readable output for scripting; the default is friendly text.
Local board mode
Local board mode is the zero-cloud bridge for IDEs. It operates directly on a filesystem board folder:
<Project Conductor folder>/queue/TASK-*.md
No CONDUCTOR_AGENT_TOKEN or CONDUCTOR_USER_JWT is required.
BOARD="C:/Users/ericg/OneDrive - NorthGate Strategic LLC/Project Conductor"
conductor --json local list --board "$BOARD"
conductor --json local list --board "$BOARD" --state READY
conductor --json local read TASK-0001 --board "$BOARD"
conductor local handoff TASK-0001 --board "$BOARD"
Create and update packets:
conductor --json local create \
--board "$BOARD" \
--title "Audit the installer handoff" \
--objective "Verify artifacts and append evidence." \
--owner Codex \
--reviewer "Claude Code"
conductor --json local signal TASK-0001 \
--board "$BOARD" \
--state REVIEW_READY \
--action submit_review \
--verdict "Audit completed; report attached." \
--next "Reviewer checks the evidence and accepts or requests changes."
MCP server (Claude Code / Cursor / Codex)
The conductor-mcp script implements the Model Context Protocol
(2024-11-05) over stdio. Sample config snippets:
Claude Code (~/.config/claude/claude_desktop_config.json or project-
level .mcp.json):
{
"mcpServers": {
"conductor": {
"command": "conductor-mcp",
"env": {
"CONDUCTOR_AGENT_TOKEN": "cdtr_..."
}
}
}
}
Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"conductor": {
"command": "conductor-mcp",
"env": {
"CONDUCTOR_AGENT_TOKEN": "cdtr_..."
}
}
}
}
After restart, the agent's tool list includes 21 conductor_* tools —
conductor_project_list, conductor_transition, conductor_export,
conductor_verify, plus local-board tools such as conductor_local_list
and conductor_local_signal. Tool-execution failures surface as
isError: true in the MCP response (per spec); protocol/transport
failures use the JSON-RPC error channel.
Custom API endpoint
If you're targeting an environment other than the default
(https://airec-api-dxol6hwotq-uk.a.run.app):
export CONDUCTOR_API_BASE=https://your-conductor-api.example.com
# OR pass per-invocation:
conductor --api-base https://your-conductor-api.example.com whoami
Offline pack verification
conductor verify <pack.tar.gz> works without API access. It extracts the
archive in a temp dir, walks SHA256SUMS to verify every file's hash, then
walks audit-chain/chain.jsonl to confirm per-tenant chain integrity
(monotonic chain_position + prev_event_hash threading). Either kind of
tampering surfaces a non-zero exit and a specific error.
The check is identical to the embedded audit-chain/verify.py script that
ships inside every pack — conductor verify is the more convenient
hand-typed form.
Source
Mirror of packages/api/src/conductor/{cli,mcp}.py from the upstream
TrustSHIELD repo. See
Conductor-Build-Plan-2026-05-23.md
sections 4.2 + 5 for the full design.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flightdeck_connect-0.1.1.tar.gz.
File metadata
- Download URL: flightdeck_connect-0.1.1.tar.gz
- Upload date:
- Size: 106.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4ae905f4a4f66b1ef02af8c21a12c063885087f9f93f2a9c5c19115f4e78e53
|
|
| MD5 |
f7e36e610b561ccdc330dc89407bf8d3
|
|
| BLAKE2b-256 |
e1d9e946d5a8c998afc9993d75fe9c79cd28164300d837dc82baad1241ea62ce
|
File details
Details for the file flightdeck_connect-0.1.1-py3-none-any.whl.
File metadata
- Download URL: flightdeck_connect-0.1.1-py3-none-any.whl
- Upload date:
- Size: 78.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2725cb6c4c747da64cb29dc9a78171f395d63fa4fec6a45c39ae1a9cbdc9b70
|
|
| MD5 |
092179f9ed0680101d679a0a71a96f7f
|
|
| BLAKE2b-256 |
793f103577b79d4f23d5cf7bee131785bc483725fd75152a7ffb82b889c25a66
|