Skip to main content
Glama

Agent Conductor

icohangar-ops/agent-conductor MCP server

MCP Registry npm PyPI Conformance

Cubiczan 스택 — 프로필 · CHP · 현재 위치: agent-conductor

AGENTS.md를 넣으면, 통제된 에이전트 팀이 나온다.

Agent Conductor는 코딩 에이전트 생태계가 수렴한 두 가지 관례 — AGENTS.md 운영 매뉴얼과 SKILL.md 스킬 — 을 수동적인 문서에서 능동적인 오케스트레이션 계층으로 바꿔주는 MCP 서버이며, 합의 강화(consensus-hardened) 의사결정 엔진이 고위험 변경을 게이트합니다.


문제

모든 주요 에이전트 도구 — Claude Code, Cursor, Copilot, Codex, Gemini CLI — 는 이제 저장소 루트의 AGENTS.md와 SKILL.md 파일 카탈로그를 읽습니다. 하지만 두 관례 모두 명예에 기대는 산문(prose)입니다:

  • 계약을 컴파일하는 것은 없습니다. 양보할 수 없는 규칙, 계층 경계, 검증 체크리스트는 에이전트가 내면화할 수도 아닐 수도 있는 마크다운으로 존재합니다.

  • 결정을 게이트하는 것은 없습니다. 점수 모델을 재작성하려는 에이전트는 변수 이름을 바꾸는 에이전트와 동일한 확신으로 진행합니다.

  • 체크리스트가 실행되었는지 검증하는 것은 없습니다. "인계 전에 npm test를 실행하라"는 제안일 뿐, 게이트가 아닙니다.

Conductor는 관례를 실행 가능하게 만듭니다 — 어떤 에이전트 도구도 변경을 요구하지 않습니다. 표준 MCP 서버로 배포되므로, MCP를 말하는 모든 것은 계약 컴파일, 스킬 발견, 결정 게이팅을 무료로 얻습니다.

Related MCP server: @event4u/agent-config

작동 방식

MCP client (Claude Code / Cursor / Copilot / ...)
        │  stdio (JSON-RPC, MCP)
        ▼
┌────────────────────────────────────────────────┐
│ TypeScript front end (src/)                    │
│   contract/parser.ts   AGENTS.md → contract    │
│   skills/loader.ts     SKILL.md discovery      │
│   server.ts            7 MCP tools             │
└────────────────┬───────────────────────────────┘
                 │  newline-delimited JSON, child stdio
                 ▼
┌────────────────────────────────────────────────┐
│ Python decision engine (engine/)               │
│   bridge.py → PyPI consensus-hardening-protocol│
│   R0 gates · foundation attacks · lifecycle    │
└────────────────────────────────────────────────┘

세 가지 기능 그룹:

  1. 계약(Contract) — AGENTS.md를 구조화된 미션, 양보할 수 없는 규칙, 계층 do/don't 경계, 검증 게이트, 스킬 추천, 범위 외 목록으로 컴파일합니다.

  2. 스킬(Skills) — 프로젝트 및 개인 범위에서 SKILL.md 스킬을 점진적 공개(progressive disclosure)로 발견합니다: 메타데이터는 ~100토큰, 본문은 요청 시에만 로드됩니다.

  3. 결정(Decision) — Consensus Hardening Protocol로 작업을 게이트합니다: 작업 시작 전에 저비용 R0 새니티 게이트, 고위험 변경이 잠기기 전에 적대적 기반 공격(adversarial foundation-attack) 패스.

빠른 시작

npx -y @cubiczan/agent-conductor
pip install consensus-hardening-protocol   # required for decision_* tools

npm: @cubiczan/agent-conductor · PyPI: consensus-hardening-protocol

요구 사항: Node 23+ (TypeScript 네이티브 실행) 및 Python 3.10+ 게시된 CHP 패키지가 설치된 환경.

git clone https://github.com/icohangar-ops/agent-conductor.git
cd agent-conductor
npm install
pip install -r engine/requirements.txt
npm test            # TypeScript tests (parser, skills, live engine bridge)
npm run test:engine # Python bridge protocol tests
npm run build

Claude Code에 등록:

claude mcp add agent-conductor -- node /path/to/agent-conductor/dist/index.js

또는 모든 MCP 클라이언트의 JSON 구성에서:

{
  "mcpServers": {
    "agent-conductor": {
      "command": "npx",
      "args": ["-y", "@cubiczan/agent-conductor"]
    }
  }
}

Python 3이 python3 이외의 위치에 있다면 CONDUCTOR_PYTHON을 설정하세요.

그런 다음 AGENTS.md가 있는 모든 프로젝트에서:

"이 프로젝트의 에이전트 계약을 로드하고, 검증 게이트를 나열하고, 지금 하려는 변경에 대해 decision_adversary 패스를 실행해줘."

도구 참조

contract_load

AGENTS.md(또는 CLAUDE.md)를 구조화된 계약으로 컴파일합니다. 파일 경로 또는 프로젝트 디렉터리를 허용하며, 기본값은 현재 작업 디렉터리입니다.

// input
{ "path": "examples/pipeline-pulse" }

// output (abridged — real output from the bundled example)
{
  "source": "examples/pipeline-pulse/AGENTS.md",
  "title": "AGENTS.md — Pipeline Pulse CRM",
  "mission": "Pipeline Pulse CRM is a lightweight, local-first pipeline review dashboard...",
  "rules": [
    "Deterministic logic — same inputs → same scores, labels, and summaries...",
    "Logic in crm.js — keep main.js thin (fetch, render, events).",
    "... (6 total)"
  ],
  "layers": [
    { "layer": "src/crm.js", "role": "Domain logic",
      "do": "Deterministic scoring, filtering, summaries", "dont": "DOM manipulation" }
  ],
  "gates": [
    { "name": "Code change checklist", "commands": ["npm test"], "notes": "" },
    { "name": "Before completion", "commands": [], "notes": "npm test — all green...\n..." }
  ],
  "skills": [
    { "task": "CRM scoring / forecast changes", "skill": "obra/test-driven-development",
      "url": "https://github.com/obra/superpowers/...", "why": "Tests-first changes to deterministic logic" }
  ],
  "outOfScope": ["External CRM integrations (Salesforce, HubSpot, etc.)", "..."],
  "sectionCount": 28
}

파서는 무손실(lossless) 입니다: 인식하지 못하는 섹션은 그대로 보존되므로, 비관례적인 AGENTS.md의 어떤 내용도 버려지지 않습니다.

contract_verification

검증 게이트만 반환합니다 — 작업이 인계되기 전에 통과해야 하는 명명된 체크리스트와 셸 명령. 에이전트의 워크플로와 함께 사용하세요: 명령을 실행하고, 성공을 확인한 다음, 완료를 선언합니다.

skills_list

프로젝트 루트에서 보이는 SKILL.md 스킬을 발견합니다. 메타데이터만 포함합니다.

// input
{ "projectRoot": "examples/pipeline-pulse" }

// output
{
  "skills": [
    {
      "name": "pipeline-scoring",
      "description": "Explain and modify scoreDealRisk weights in src/crm.js with matching test updates...",
      "version": "0.1.0",
      "scope": "project"
    }
  ]
}

검색 순서(스킬 이름당 첫 번째 일치가 우선):

우선순위

경로

범위

1

<project>/.conductor/skills/*/SKILL.md

프로젝트

2

<project>/.claude/skills/*/SKILL.md

프로젝트

3

<project>/.cursor/skills/*/SKILL.md

프로젝트

4

~/.claude/skills/*/SKILL.md

개인

5

~/.cursor/skills/*/SKILL.md

개인

skill_load

이름이 지정된 하나의 스킬에 대한 전체 SKILL.md 본문을 로드합니다 — 점진적 공개의 온디맨드 절반. 작업이 스킬의 설명과 일치할 때만 호출하세요.

decision_gate

Consensus Hardening Protocol R0 게이트: 가장 저렴하고 가장 높은 레버리지의 검사로, 작업을 수행하기 전에 실행합니다.

// input
{ "solvable": true, "scoped": false, "valid": true, "worth_it": true }

// output
{ "verdict": "HALT", "results": { "Solvable": "PASS", "Scoped": "FATAL", "Valid": "PASS", "Worth_it": "PASS" } }

FATAL 답변은 즉시 중단합니다: 범위가 정해지지 않았거나, 이해되지 않았거나, 해결할 가치가 없는 문제에 토큰을 태우기 전에 멈추고 다시 프레임을 잡으세요.

decision_adversary

고위험 변경을 위한 일회성 적대적 패스: CHP가 주장의 기반을 공격하고, 0–100으로 점수를 매기며, 악마의 대변인(devil's-advocate) 소견과 세션 상태를 반환합니다.

// input
{
  "claim": "Change scoreDealRisk stale-activity weight from 20 to 30",
  "context": "Tests updated; label distribution checked against fixture"
}

// output
{
  "status": "EXPLORING",          // or HALT / REFRAME_REQUIRED
  "foundation_score": 77,
  "findings": [
    "Treat every financial number as unverified until tied to source data.",
    "Require explicit flip criteria for any provisional recommendation."
  ],
  "verification_failures": ["PENDING third-party validation"],
  "report": "## TriangulationRunner Adversary Pass\n..."
}

상태는 CHP 결정 수명주기 (EXPLORING → PROVISIONAL_LOCK → LOCKED, HALT 및 REFRAME_REQUIRED 종료 포함)에 매핑됩니다: EXPLORING은 주장이 공격에서 살아남았고 잠금을 향해 작업이 진행될 수 있음을 의미합니다. HALT/REFRAME_REQUIRED는 기반이 실패했음을 의미합니다.

engine_status

Python 엔진 하위 프로세스의 상태를 확인합니다. { ok, engine: "chp", version }을 반환합니다.

파서가 인식하는 것

contract_load는 스키마 기반이 아닌 관례 기반입니다. 실제 AGENTS.md 파일에서 사용되는 패턴을 추출합니다:

계약 필드

소스 관례

mission

첫 번째 Mission / Purpose / Overview 섹션

rules

Non-negotiables > Engineering rules > 일반 rules 아래의 목록 항목 (일반 "Product rules" 섹션이 명시적 non-negotiables를 가리지 않도록 우선순위 정렬)

layers

아키텍처류 제목 아래 Layer 열이 있는 첫 번째 테이블

gates

셸 코드 블록 + 체크리스트 / 검증 / 완료 전 제목 아래의 목록 항목

skills

Task / Skill / Why 열이 있는 테이블; 링크는 텍스트 + URL로 해석

outOfScope

범위 외 / 비목표 제목 아래의 목록

sections

모든 것, 그대로 — 무손실 폴백

코드 펜스 내부의 제목은 무시됩니다. 테이블은 헤더의 강조를 허용합니다. 마크다운 링크와 강조는 추출된 텍스트에서 제거됩니다.

스킬 작성

스킬은 YAML 프론트매터가 있는 SKILL.md를 포함하는 디렉터리입니다:

---
name: pipeline-scoring
description: Explain and modify scoreDealRisk weights in src/crm.js with matching test updates. Use when changing deal risk scoring, risk labels, or forecast thresholds.
version: 0.1.0
tools: [Read, Edit, Bash]
---

# Pipeline Scoring

Step-by-step instructions the agent follows when the task matches...

품질 기준(awesome-agent-skills 표준에서 상속): 일치 가능한 키워드가 있는 3인칭 설명, 약 100토큰의 메타데이터, 500줄 미만의 본문, 머신별 절대 경로 없음, 스킬이 필요로 하는 도구만 선언.

번들 예제 — examples/pipeline-pulse — 는 완전한 실제 AGENTS.md와 프로젝트 범위 스킬이며, 테스트 스위트가 컴파일하는 대상입니다.

프로젝트 구조

.
├── AGENTS.md                  # This repo's own contract (compiles with itself)
├── ARCHITECTURE.md            # Design decisions and component detail
├── src/
│   ├── index.ts               # stdio entrypoint
│   ├── server.ts              # MCP server: 7 tools
│   ├── contract/              # AGENTS.md → AgentContract compiler
│   ├── skills/                # SKILL.md loader + registry
│   ├── engine/chpBridge.ts    # Python engine client
│   └── utils/logger.ts        # stderr-only logging (stdout is the transport)
├── engine/
│   ├── bridge.py              # JSON-over-stdio router → PyPI `chp`
│   ├── requirements.txt       # consensus-hardening-protocol pin
│   ├── NOTICE.md              # attribution for the published engine
│   └── test_bridge.py         # protocol tests
├── examples/pipeline-pulse/   # real AGENTS.md fixture + example skill
└── test/                      # node:test suites (run the .ts directly)

개발

pip install -r engine/requirements.txt
npm test            # TypeScript tests — includes a live engine round-trip
npm run test:engine # Python-side protocol tests
npx tsc --noEmit    # type check
npm run build       # emit dist/
npm run dev         # run the server from source (Node type stripping)

하우스 규칙(전체 세트는 이 저장소의 AGENTS.md에 있음):

  1. stdout은 신성하다 — MCP 전송이 소유합니다. 모든 로깅은 브리지 양쪽에서 stderr로 갑니다.

  2. 새 Node 런타임 의존성 제로 — @modelcontextprotocol/sdk와 zod만 사용합니다. 마크다운/프론트매터는 수제로 유지합니다. CHP는 PyPI 의존성입니다.

  3. 지울 수 있는 TypeScript만 — 소스는 Node의 타입 스트리핑에서 실행되어야 합니다 (enum, 매개변수 속성 없음).

  4. CHP는 PyPI로 — consensus-hardening-protocol을 설치하세요. engine/ 아래에 재벤더링하지 마세요. 프로토콜 수정은 업스트림에 속합니다.

  5. Python 3.10+ — 게시된 패키지의 요구 사항입니다.

로드맵

버전

테마

범위

v0.2

강제(Enforcement)

contract_verification 게이트를 실제 하위 프로세스로 실행하고 통과/실패 증거를 반환 — "계약을 읽는 것"을 "계약을 강제하는 것"으로 전환

v0.3

오케스트레이션

MCP를 통해 decision_lock + 메시 세션 도구 노출 (게시된 CHP 기반 다중 에이전트 숙의)

v0.4

레지스트리

소스 검토 프롬프트와 함께 원격 카탈로그(awesome-agent-skills 형식)에서 검증된 스킬 설치

출처(Provenance)

Conductor는 재작성 대신 검증된 구성 요소를 의도적으로 재사용합니다:

구성 요소

소스

라이선스

결정 엔진 (PyPI)

consensus-hardening-protocol

MIT

MCP 서버 + 레지스트리 형태

onchainmind

MIT

스킬 품질 표준

VoltAgent/awesome-agent-skills

—

예제 픽스처

Pipeline Pulse CRM 운영 매뉴얼

픽스처

이중 언어 설계에 대해서는 engine/NOTICE.md 및 ARCHITECTURE.md를 참조하세요.


Cubiczan 스택

| 거버넌스 | consensus-hardening-protocol · agent-conductor · compliance-as-code-agent · cleanmandate | | 플랫폼 | cubiczan-mcp-server · operational-intelligence · software-factory |

Conductor는 AGENTS.md + SKILL.md를 MCP 도구로 컴파일하고, 고위험 결정을 CHP를 통해 라우팅합니다 — Metabocommand가 금융 승인에 사용하는 것과 동일한 잠금 모델입니다.

License

MIT — LICENSE 참조. 벤더링된 구성 요소는 원래 MIT 라이선스를 유지합니다.

Available Tools

7 tools
contract_loadA

Compile an AGENTS.md operating manual into a structured agent contract: mission, non-negotiable rules, layer responsibilities, verification gates, recommended skills, and out-of-scope list. Pass a file path or a project directory (defaults to the current working directory).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAGENTS.md path or project root

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It explicitly states the action (compile) and the output structure (mission, rules, etc.), implying a read-only operation without destructive effects. It does not detail error handling or side effects, but given the simple nature, the description adds sufficient context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core purpose and output, the second gives parameter usage. It is front-loaded, free of fluff, and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter, no output schema, and no annotations. The description covers the trigger (AGENTS.md), the processing (compile), and the output outline (structured contract with listed sections). It could explicitly state the return format, but the listed components imply what the contract contains, making it sufficiently complete for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (path described as 'AGENTS.md path or project root'). The description enriches this by clarifying that 'path' accepts a file or directory and defaults to the current working directory, providing practical usage details not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Compile') and resource ('AGENTS.md operating manual') to state exactly what the tool does: transforms a file into a structured agent contract with enumerated components (mission, rules, responsibilities, gates, skills, out-of-scope). This clearly distinguishes it from siblings like contract_verification or skills_list, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear invocation context: 'Pass a file path or a project directory (defaults to the current working directory).' This tells the agent how to supply input and what the default is, so it can decide when to call the tool. However, it does not explicitly mention alternatives or when not to use it, though the purpose is distinct enough to infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

contract_verificationA

Return the verification gates from a project's agent contract — the named checklists and shell commands that must pass before work is handed off. Run these and confirm success before declaring any task complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoAGENTS.md path or project root

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It states the tool returns gates and instructs the agent to run them, which implies the agent needs to execute commands. However, it does not disclose whether the tool itself executes anything, whether there are side effects, or what happens if gates fail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and every clause adds value: what the tool returns, what those returns consist of, and when/how to use them. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema, the description covers the return value, the usage timing, and the required action. It could be slightly richer about default path behavior or failure semantics, but it is arguably sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, as the 'path' parameter is described as 'AGENTS.md path or project root'. The description adds no parameter details, but the schema already provides sufficient meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Return'), names the exact resource ('verification gates from a project's agent contract'), and elaborates what those gates are ('named checklists and shell commands'). This clearly distinguishes the tool from siblings like contract_load, which would handle contract loading, and decision_gate, which evaluates a decision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage context: run these gates and confirm success before declaring a task complete. It does not explicitly mention alternatives or exclusions, but the 'before work is handed off' phrase and sibling names make the appropriate use case evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decision_adversaryA

Run a one-shot Consensus Hardening Protocol adversarial pass against a claim or proposed change: CHP attacks its foundations, scores them 0-100, and returns findings plus a session status (EXPLORING / HALT / REFRAME_REQUIRED). Use before locking any high-stakes decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesThe claim or decision to attack
contextNoSupporting context for the claim
high_stakesNoDefault true

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses one-shot behavior, the adversarial mechanism, and the statuses returned. However, it does not explain side effects, required permissions, or whether the pass modifies any state, which leaves some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The first sentence states the action and protocol; the second gives a crisp usage rule. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description adequately outlines what is returned ('findings plus a session status') and lists the possible statuses. It could be slightly richer on the response shape or effect of high_stakes, but it is sufficient for a 3-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter-level detail beyond the schema; it mentions 'claim or proposed change' and 'high-stakes decision' but does not elaborate on the context or high_stakes parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Run') and a concrete resource ('Consensus Hardening Protocol adversarial pass against a claim or proposed change'), and it names the core output (scores, findings, session status). This clearly distinguishes the tool from siblings like decision_gate or engine_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Use before locking any high-stakes decision.' It does not explicitly mention when not to use it or name alternatives, but the guidance is specific enough to orient an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decision_gateA

Run the Consensus Hardening Protocol R0 gate on a proposed decision: is it solvable, scoped, valid, and worth making at all? Any FATAL answer returns HALT — stop and reframe before doing the work.

ParametersJSON Schema
NameRequiredDescriptionDefault
validYesIs the current state accurately understood?
scopedYesIs the scope explicitly bounded?
solvableYesCan this problem actually be solved?
worth_itYesDo the stakes justify the work?

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It discloses the HALT behavior on FATAL answers, but does not explain what happens when all criteria pass, nor does it define 'FATAL' or the output format. This leaves significant behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the purpose, and every clause earns its place. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple gate with no output schema, the description could be more complete by stating the pass condition and output behavior. It implies all four must be true to proceed, but does not explicitly describe the success return value or the meaning of FATAL. Available structured data is minimal, so the description needs to do more.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all four boolean parameters clearly (100% coverage). The description repeats the names but adds no extra semantic detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Run') and names a distinct resource ('Consensus Hardening Protocol R0 gate'), clearly listing the four evaluation criteria (solvable, scoped, valid, worth it). This distinguishes it from sibling tools like decision_adversary by framing it as a gate that halts work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool ('on a proposed decision', 'before doing the work') and hints at the consequence of a FATAL result (stop and reframe). It does not explicitly compare to alternatives, but the timing guidance is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

engine_statusA

Health/readiness probe for the CHP decision engine (Python subprocess). By default returns a cheap readiness snapshot (running, last exit code, restart-backoff state) WITHOUT spawning Python. Pass probe=true to also issue a live ping that warms/spawns the subprocess.

ParametersJSON Schema
NameRequiredDescriptionDefault
probeNoIssue a live ping (spawns the subprocess). Default false.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the default mode does NOT spawn Python (a performance consideration), while probe=true will spawn/warm the subprocess. This is valuable behavioral context beyond what annotations would provide (none are provided). It clearly communicates the side effects of probe=true without any contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise, and front-loaded with the core purpose. Every sentence adds value: the first defines the tool, the second explains the parameter distinction and behavioral implications. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is complete. It covers the default behavior, the alternative with probe=true, and the performance implication. There's no missing information that would prevent correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the 'probe' parameter with 100% coverage, so the baseline is 3. The description adds context that probe=true issues a live ping and spawns the subprocess, but this largely reinforces what the schema says. It doesn't add new syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is a health/readiness probe for the CHP decision engine, distinguishing it from sibling tools that load contracts, list skills, or make decisions. It specifies the resource (CHP decision engine subprocess) and the action (health/readiness probe), making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the default behavior (cheap readiness snapshot without spawning Python) and when to use probe=true for a live ping. While it implies that probe=false is for quick checks and probe=true for when a live response is needed, it doesn't explicitly contrast with alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skill_loadA

Load the full SKILL.md body for a named skill — the on-demand half of progressive disclosure. Call only when the current task matches the skill's description.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSkill name as returned by skills_list
projectRootNoProject root (defaults to cwd)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must carry the transparency burden. It communicates that this is an on-demand load operation and ties it to progressive disclosure, but it does not disclose return behavior, error/not-found handling, or explicit read-only guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, purposeful sentences with no filler. The core action, context, and when-to-use guidance are all packed efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter loader tool with no output schema, the description is adequate: it explains what is loaded, when to call it, and how it fits into the progressive disclosure flow. A small gap remains regarding what the response contains, but 'full SKILL.md body' conveys the essential outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds minimal parameter-specific meaning beyond context ('named skill' and matching behavior), which aligns with the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Load the full SKILL.md body') on a specific resource ('for a named skill'). It also distinguishes itself from siblings like skills_list by describing this as the on-demand half of progressive disclosure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage condition: 'Call only when the current task matches the skill's description.' It does not explicitly name alternatives such as skills_list for listing skills, but the progressive-disclosure context implies the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skills_listA

Discover SKILL.md skills visible from a project root (project-scope .conductor/.claude/.cursor skill dirs, then personal ones). Returns metadata only (~100 tokens per skill); use skill_load for the full body.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectRootNoProject root (defaults to cwd)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it returns only metadata (~100 tokens per skill) and covers scope resolution order, which is valuable behavioral context. However, no annotations are provided, and the description does not mention whether this performs a read-only operation, whether it follows symlinks, or how errors are handled if the project root is invalid. Still, for a listing tool, the scope and return-type disclosure is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and front-loaded with the core purpose. It covers scope, return type, and the alternative tool in no more words than necessary. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only discovery tool with one optional parameter and no output schema, the description is complete enough: it states scope, return size, and the next step (skill_load). The only minor gap is lack of detail about exact directory patterns, but that is not essential for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one parameter, projectRoot, with 100% schema description coverage ('Project root (defaults to cwd)'). The tool description adds the context that the root is used to discover relevant skill directories, but the schema already explains the parameter well. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: discover SKILL.md skills from a project root with specific scope details (project vs personal). It also distinguishes itself from the sibling tool skill_load by noting this returns metadata only, which helps the agent understand the difference between listing and loading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool: to discover skills visible from a project root, and explicitly tells the agent to use skill_load for the full body. This provides clear usage guidance and distinguishes it from the sibling skill_load without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 7 tool updatesv0.1.0
    • First observedcontract_load
    • First observedcontract_verification
    • First observeddecision_adversary
    • First observeddecision_gate
    • First observedengine_status
    • First observedskill_load
    • First observedskills_list

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct responsibility: contract compilation, verification gate retrieval, skill discovery, skill body loading, decision gating, adversarial review, and engine health. Even the two decision tools are clearly separated by depth: one is a lightweight pre-check, the other is a full adversarial pass.

Naming Consistency4/5

The naming generally follows a resource_prefix_action pattern (contract_load, skills_list, decision_gate), but there are minor inconsistencies: contract_verification and engine_status are noun-phrase rather than verb-action, and skills_list/skill_load mix plural and singular forms. The pattern is still readable and predictable overall.

Tool Count5/5

Seven tools is well-scoped for the server's purpose: two for contracts, two for skills, two for decision support, and one operational health probe. Each tool fills a distinct slot with no obvious bloat or redundancy.

Completeness4/5

The core workflows are covered: contracts can be loaded and verified, skills can be discovered and loaded, and decisions can be gated and adversarial-tested. Minor gaps exist, such as the lack of a tool to explicitly execute verification gates or persist/review decision outcomes, but agents can work around these with shell commands and existing server behavior.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables offline AI agent automation with embedded local LLM (Qwen 2.5), sandboxed file operations through AgentFS, and dynamic skill loading. Exposes capabilities via MCP with tri-state safety guards for private, air-gapped environments without network connectivity or API costs.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Universal AI Agent OS — governed skills, rules, and commands for AI coding assistants (Claude Code, Augment, Cursor, Copilot, Windsurf). Read-only MCP bridge serves prompts and resources from a release-pinned content bundle.
    25
    863 npm
    11
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Multi-server MCP aggregator with 266 skills, an orchestration runtime, fleet/claims coordination, and hook-driven session governance for autonomous Claude/Cursor/Gemini agent runs.
    3
    MIT