Skip to main content
Glama
Council Blackboard

Council Blackboard

Council Blackboard System — FastMCP / Prefect Horizon

Council Blackboard is an AI-first shared-state and multi-agent deliberation system with a Human-In-The-Loop (HITL) boundary, blackboard state, colloquium/chamber coordination, audit visibility, and a companion React control interface.

Primary deployment: Prefect Horizon

This repository is configured to deploy as an MCP server in Prefect Horizon.

Horizon entrypoint:

main.py:mcp

Horizon detects pyproject.toml, installs fastmcp==4.0.3, imports the mcp object from main.py, and exposes the managed MCP endpoint.

Deploy

  1. Connect this GitHub repository to Prefect Horizon.

  2. Create a server/project from aetheris-consulting/AI-council-blackboard.

  3. Set the entrypoint to main.py:mcp.

  4. Deploy and validate the tools in Horizon Inspector or ChatMCP.

See HORIZON.md for the exact deployment and local-validation commands.

Related MCP server: agent-broker

MCP capabilities

The Horizon-native server currently exposes blackboard state operations, HITL proposal routing and approval, operating-mode control, colloquium session inspection/interjection, colloquium-to-blackboard commits, rule-of-motion updates, resources, prompts, and a small in-process audit log.

The MVP is intentionally explicit about one limitation: Horizon state is currently in-memory and non-durable. It can reset on process replacement or redeploy. A durable shared-state backend should be added before multi-instance production use.

Companion C2 / web UI

The original application remains in this repository as a React/Vite + Express TypeScript interface.

npm install
npm run dev

The web application includes:

  • Council Blackboard UI

  • AI-first colloquium/chamber UI

  • HITL stage and proposal review

  • agent panels and rule-of-motion controls

  • connector and room UI

  • an earlier hand-written MCP JSON-RPC router in server/mcpServer.ts

The Horizon-facing main.py:mcp server is the recommended MCP deployment surface. The TypeScript router is retained for the companion application and future consolidation.

Repository layout

main.py                 # FastMCP server for Prefect Horizon
pyproject.toml          # Horizon/Python dependency declaration
HORIZON.md              # Horizon deployment notes
server/mcpServer.ts     # Existing TypeScript MCP JSON-RPC implementation
server.ts               # Express/Vite companion app server
src/                    # React C2 / chamber UI

Environment

The Horizon-native MCP server requires no provider API key for its current core state-management tools.

The companion TypeScript application can use:

GEMINI_API_KEY=...

Do not commit real credentials. .env* files remain ignored except for .env.example.

Validation notes

The source was reviewed before import for obvious embedded credentials. No live provider/API credential was found in the archive. The companion app does contain demo/session tokens and simulated/fallback behavior; those should not be treated as production authentication or durable governance controls.

Available Tools

11 tools
audit_get_recentAudit Get RecentB

Return recent mutating MCP calls from the in-process audit log.

Inputs: limit. Returns: result

blackboard_add_itemBlackboard Add ItemC

Commit a new item directly to the shared blackboard.

Inputs: title (required), content (required), tags, type, +1 more. Returns: object

blackboard_approve_proposalBlackboard Approve ProposalB

Approve or reject a pending proposal at the HITL supervisory boundary.

Inputs: action (required), proposal_id (required), feedback. Returns: object

blackboard_get_stateBlackboard Get StateA

Retrieve the shared Council Blackboard state.

Inputs: mode. Returns: object

blackboard_propose_inputBlackboard Propose InputD

Submit a candidate mutation through the Human-In-The-Loop boundary.

Inputs: title (required), content (required), agent_name (required), role, +2 more. Returns: object

blackboard_set_modeBlackboard Set ModeC

Switch the operating mode of the Council Blackboard.

Inputs: mode (required). Returns: object

colloquium_commit_to_blackboardColloquium Commit To BlackboardD

Commit a distilled colloquium outcome into the shared blackboard.

Inputs: title (required), content (required), tags, type. Returns: object

colloquium_get_sessionColloquium Get SessionC

Inspect the current AI-first colloquium session.

Inputs: limit_messages. Returns: object

colloquium_interjectColloquium InterjectB

Insert a high-priority supervisor directive into the colloquium stream.

Inputs: directive (required), sender_name. Returns: object

colloquium_update_rule_of_motionColloquium Update Rule Of MotionB

Update colloquium turn structure, consensus threshold, or active topic.

Inputs: topic, rule_type, consensus_threshold. Returns: object

system_statusSystem StatusB

Return deployment identity, state model, and current chamber counts.

Inputs: no named parameters. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 11 tools

    Disambiguation3/5

    Some overlap exists: blackboard_add_item and colloquium_commit_to_blackboard both write to the blackboard, and get_state/get_session could be confused. However, descriptions clarify direct vs. distilled and state vs. session, so most tools have distinct purposes.

    Naming Consistency3/5

    Most tools follow a <domain>_<action> pattern (e.g., blackboard_get_state, colloquium_interject), but 'system_status' lacks a verb, breaking the otherwise consistent naming scheme.

    Tool Count5/5

    With 11 tools, the server is well-scoped, covering blackboard, colloquium, and audit operations without feeling bloated or sparse. This is within the ideal range for a specialized server.

    Completeness4/5

    The tool surface covers the core lifecycle of the domain: reading state, adding/proposing/approving items, managing sessions, and auditing. Minor gaps like explicit item deletion or update are not critical, so it feels reasonably complete.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers