Skip to main content

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

conductor-cli

Agent CLI + Model Context Protocol server for Conductor — NorthGate's AI-assisted-delivery governance substrate.

After pip install conductor-cli you get:

  • 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 (21 conductor_* + 13 flightdeck_*, scoped at runtime via MCP_TOOL_SET=flightdeck|conductor|all) to MCP-aware agent runtimes (Claude Code, Cursor, Codex, VS Code agents). The flightdeck_* 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 conductor-cli

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


Download files

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

Source Distribution

flightdeck_connect-0.1.0.tar.gz (105.8 kB view details)

Uploaded Source

Built Distribution

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

flightdeck_connect-0.1.0-py3-none-any.whl (77.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for flightdeck_connect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f6504fefa29200d2332b9ae13334a7637e17cfe4664709cf1762e457d110d31f
MD5 5e6d0112e21c8eeccceb5dc313f0f5b2
BLAKE2b-256 84deaa89673b798fbf1e5d2cc853124566cba6afa9e3ebe0f63cbcbdd19e8e98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flightdeck_connect-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c5260c04a4c211d7d56c1e04479abbaaa9502630a0f85fa793cb641c859b859
MD5 98a30816d21a11b1bd8286ac1b9c9d23
BLAKE2b-256 87235954c3d7796194827a764b4d97a48c28950364a7aa670f703d2dca64d853

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