Ennodia

Ennodia

MCP server that orchestrates multi-agent reviews by running installed agent CLIs, tracking child tasks, and using Compare to produce a traceable recommended answer with receipts.

Category
Visit Server

README

<div align="center">

<a href="https://ennodia.cherninlab.com"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/cherninlab/ennodia/raw/main/docs/assets/logo-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/cherninlab/ennodia/raw/main/docs/assets/logo.svg"> <img alt="Ennodia" src="https://github.com/cherninlab/ennodia/raw/main/docs/assets/logo.svg" width="235" height="50"> </picture> </a>

<p><strong>Model Context Protocol (MCP) server for multi-agent review with Compare and traceable receipts</strong></p>

<p> <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-informational"></a> <img alt="Continuous integration" src="https://github.com/cherninlab/ennodia/actions/workflows/ci.yml/badge.svg" /> <a href="https://smithery.ai/servers/cherninlab/ennodia"><img alt="Smithery: Ennodia" src="https://img.shields.io/badge/Smithery-Ennodia-FF5601"></a> </p>

<p align="center"> <img alt="Ennodia terminal with three completed artificial intelligence reviews" src="https://github.com/cherninlab/ennodia/raw/main/docs/assets/terminal.png" width="600"> </p>

</div>

Ennodia gives your primary agent access to installed agent command-line interfaces (CLIs). It tracks each child task and uses model-led Compare to show agreements, disagreements, omissions, and one recommended answer with receipts.

Before work, an optional Plan Advisor can propose a bounded set of harnesses, models, and skills. It does not start the proposed work.

Install

Send this address to your primary agent. The agent can then complete the installation:

try-ennodia.cherninlab.com

To run Ennodia directly as a standard input/output (stdio) MCP server, use:

npx -y ennodia

To use Bun directly, run bunx ennodia.

For a registry or client installer, use the Ennodia Smithery page.

For manual installation or local development, see Quickstart.

What Ennodia does

  • Discovers available local artificial intelligence (AI) tools
  • Plans a route with a caller-provided category or keyword fallback
  • Estimates preflight input tokens and enforces local caps on that estimate
  • Starts and monitors child tasks
  • Shows status, elapsed time, logs, and failures
  • Cancels tasks and runs explicitly
  • Lets a Plan Advisor propose an inert, validated work plan
  • Compares multiple completed outputs with a Judge
  • Lets a Result Advisor combine the Judge findings into one answer

ennodia_run is the main entrypoint. It plans and starts tasks. It can also use Compare. It returns a run identifier (ID) for use with ennodia_get_run.

See MCP tools for the full tool and parameter reference.

Use Ennodia for work that needs additional model analysis. A run usually takes minutes. Compare adds two serial model passes after the child agents finish.

Judge, Plan Advisor, and Result Advisor

Each role has limited responsibilities:

  • Plan Advisor runs before work when requested. It proposes explicit harness, model, and skill assignments as inert data. Ennodia validates the proposal against a frozen inventory. Plan Advisor cannot execute it. The caller must use a separate call to start the validated plan once.
  • Judge runs during Compare and maps agreements, contradictions, unique evidence, omissions, and risks across completed outputs.
  • Result Advisor follows the Judge. It uses the Judge findings and original outputs to recommend an answer. If Judge analysis is not usable, it uses basis: "candidates-only". This status makes the degradation visible.

Ennodia IO

The separate @cherninlab/ennodia-io package provides a local Hypertext Transfer Protocol (HTTP) and TypeScript interface. Apps can use it with user-supplied keys and installed local agents:

npx -y @cherninlab/ennodia-io

See Ennodia IO for supported fields, authentication behavior, cross-origin resource sharing rules, and current limits.

Supported harnesses

  • Codex CLI
  • Claude Code
  • OpenCode
  • Kilo Code
  • Kiro CLI
  • Cline CLI
  • Hermes Agent
  • Antigravity

Adapters stay thin. Core modules contain shared routing, trace data, task state, recovery, and Compare logic.

Evaluated candidates include Gemini CLI, GitHub Copilot CLI, Amp, Aider, Goose, Qwen Code, and Cursor CLI. Ennodia does not include these candidates.

Ennodia can add a candidate after verification of a supported prompt-in and text-out interface. Verification must not use permission-bypass flags or provider-private APIs.

Documentation

Benchmarks

The current benchmark is multi-model-bug-recall. It uses small TypeScript review fixtures and committed bug oracles. Run the deterministic suite with:

bun run bench:bug-recall

Live harness runs are available through bun run bench:bug-recall:live and are kept out of bun run verify.

The current dated fixture snapshot is published in Benchmarks: 4 cases, with ennodia-parallel-compare at 100% recall and 100% precision.

Contribute

Ennodia is under active development. You can submit bug reports and small, focused pull requests. See CONTRIBUTING.md for the local verification workflow.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured