mcpField
C
CHAP Coordinator

CHAP Coordinator

Local
github.comAI & Agents122Updated 6d ago

About CHAP Coordinator

An MCP server adapter for the CHAP Coordinator that exposes its 39 methods as chap-prefixed tools. It records human approvals, edits, overrides and escalations over AI agent work, and can persist decisions to a SQLite file. It targets developers who need an auditable trail of agent-related decisions.

Key features

  1. 01Exposes 39 CHAP methods as MCP tools
  2. 02SQLite persistence configured through an environment variable
  3. 03Default profiles include an audit chain from the first entry
  4. 04Runs over stdio and supports other MCP transports
  5. 05Tool inputs described by JSON Schema

Use cases

  1. 01Recording human approvals and overrides in Claude Desktop or Claude Code
  2. 02Keeping auditable records of AI agent work across multiple workspaces
  3. 03Querying and managing CHAP workspaces from an MCP client

MCP support

This is an MCP server that exposes all CHAP Coordinator methods as MCP tools and handles tools/list and tools/call requests.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"brightbeamai-chap": {
"command": "npx",
"args": [
"-y",
"@brightbeamai/chap-coordinator-mcp"
],
"env": {
"CHAP_DB_PATH": "<CHAP_DB_PATH>",
"CHAP_PROFILES": "<CHAP_PROFILES>"
}
}
}
}
Run commandnpx -y @brightbeamai/chap-coordinator-mcp
Environment variables to set
CHAP_DB_PATHPath to a SQLite file. Without it the coordinator runs in memory and workspaces are lost when the client restarts.
CHAP_PROFILESComma-separated CHAP profiles enabled on new workspaces. Defaults to Core plus review, whisper, deliberation, handoff, control, routing, modes and audit-scitt.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@brightbeamai/chap-coordinator-mcp0.3.3

Tools

39

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
modeenumNoDefault mode for tasks created here. Under modes/1.0 a trial-mode task has review_required set to true whatever the caller passes. 'shadow' and 'production' are recorded on the task and carry no further behaviour in this implementation.shadow | trial | production
profilesarrayNoProfile identifiers to enable, e.g. ['core/1.0', 'review/1.0']. Recorded on the workspace. Two profiles change behaviour by being present: modes/1.0, under which a trial-mode task requires review, and audit-scitt/1.0, which turns on the hash-linked chain.
workspacestringNoWorkspace id to create. If omitted, one is generated.
mode_ceilingenumNoHighest mode a task in this workspace may request. A task.create above the ceiling is refused with -32040. The ceiling can be changed afterwards with chap.control.set_mode_ceiling.shadow | trial | production

Details

From the project README

@brightbeamai/chap-coordinator-mcp

MCP server adapter for the CHAP Coordinator. Wraps a Coordinator instance and exposes every CHAP method as an MCP tool, so any MCP client (Claude Desktop, Cursor, Claude Code, the rest) can drive a CHAP workspace directly.

Spec target: MCP 2026-07-28, serving MCP 2025-11-25 clients as well · CHAP 0.3.

Run it as a server

The package ships a stdio server, so an MCP client can use CHAP without any code. Point the client at it:

{
  "mcpServers": {
    "chap": {
      "command": "npx",
      "args": ["-y", "@brightbeamai/chap-coordinator-mcp"],
      "env": { "CHAP_DB_PATH": "~/chap.db" }
    }
  }
}

All 39 methods arrive as tools named chap.<method>. Two environment variables configure it:

VariableEffect
CHAP_DB_PATHPath to a SQLite file. Without it the coordinator runs in memory and every workspace is lost when the client restarts.
CHAP_PROFILESComma-separated profiles for new workspaces. Defaults to Core plus review, whisper, deliberation, handoff, control, routing, modes and audit-scitt, so the audit chain is on from the first entry.

Persistence needs better-sqlite3, an optional native dependency of the coordinator. If CHAP_DB_PATH is set and it cannot be loaded the server says so and exits rather than starting in memory and discarding the decisions it was asked to keep.

The server is also listed in the MCP registry as io.github.BrightbeamAI/chap.

Install

npm install @brightbeamai/chap-coordinator-mcp

Node 20+ required. Runtime dependencies: @brightbeamai/chap-coordinator, @modelcontextprotocol/sdk and zod. The binary is chap-mcp-server.

Quick start

import { Coordinator } from "@brightbeamai/chap-coordinator";
import { makeChapMcpServer } from "@brightbeamai/chap-coordinator-mcp";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const coord = new Coordinator({
  defaultProfiles: ["core/1.0", "review/1.0", "audit-scitt/1.0"],
});

const server = makeChapMcpServer(coord, { name: "chap", version: "0.3.3" });
await server.connect(new StdioServerTransport());

The returned Server is the official MCP SDK's Server class with tools/list and tools/call handlers pre-registered. Attach any MCP transport (stdio, Streamable HTTP, etc.).

A runnable reference server is at reference/mcp-server-ts/.

What gets exposed

All 39 CHAP methods become MCP tools named chap.<method>. Each tool's inputSchema is the JSON Schema for the corresponding method's params. Tool descriptions are tuned for LLM consumption.

The chap. prefix avoids collisions with other MCP servers a client might have loaded simultaneously.

Architecture

  • One Coordinator, one MCP server. Multi-workspace is handled inside the Coordinator (workspaces are addressable by id); the MCP layer is stateless and routes every tool call through coord.dispatch().
  • Single-sourced schemas. Tool inputs are described by JSON Schemas (not Zod) and passed straight to the Coordinator without re-validation at the MCP layer. The Coordinator's own dispatch validates params and returns spec-correct JSON-RPC error codes, which the adapter surfaces as MCP tool errors.
  • Auth deferred. The adapter ships unauthenticated; MCP's OAuth 2.1 auth model attaches at the Streamable HTTP transport, not inside the adapter.

Tests

npm test

The integration tests use the SDK's InMemoryTransport.createLinkedPair() to drive a wrapped Coordinator end-to-end, exercising every major profile.

See also

License

Apache 2.0. See the parent repository's LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.