Skip to content

Harness Router

Agent tool router that keeps obvious calls on a fast path, uses Jev via OpenRouter for ambiguous tool choices, and offers bounded MCTS.

MCP serverprototypeMIT

Overview

Harness Router chooses the next tool inside an existing agent loop. Given a goal, the current observation and the available tools, it returns a tool choice with confidence, or a fallback to the host planner. It uses Jev through OpenRouter for discrete decisions, caches reusable choices, and supports optional Monte Carlo Tree Search over simulated outcomes when multi-step consequences matter, with Jev as an optional prior. The host still generates arguments, checks permissions, executes the tool and processes results.

It integrates as a stdio MCP server with route and route_mcts tools, as a Codex skill and hook, and through a Python API. Decision records, including goal and observation text, are stored locally, and the README advises keeping secrets out of routed state. Without an OpenRouter key, route returns a fallback, and MCTS can run locally without the Jev prior. It is alpha.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich available tool should be used next for this goal and observation?—

How it works

  1. Host sends goal, observation and tool descriptors
  2. Fast path or cache resolves obvious choices
  3. Jev decides ambiguous choices; MCTS for multi-step cases
  4. Return tool, confidence, fallback and reason

Strengths

  • Model calls only for ambiguous choices
  • MCTS for multi-step planning
  • MCP and Codex integrations

Caveats

  • Alpha status
  • State and tool descriptions sent to the provider

Getting started

uv tool install harness-router with MCP support, then configure harness-router-mcp in your MCP host with OPENROUTER_API_KEY.

At a glance

Type
MCP server
Status
prototype
Language
Python
Runtime
CLI, MCP server, Python API
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Coding agents: framework-agnostic tool router that keeps obvious calls on a fast path, uses Jev for genuinely ambiguous choices, and can apply bounded MCTS when multi-step consequences matter, with MCP plus Codex skill and hook integrations.

    yibie/awesome-jev
  • Fast decision routing for agent harnesses — native MCP with Jev for tool selection and MCTS for multi-step decisions.

    logicrw/awesome-jev-projects
  • Routes an agent's tool calls, as a hook on every call or a skill you invoke, with MCTS for multi-step decisions.

    MrJev/awesome-jev

Frequently asked questions

When is Jev called?

Only for genuinely ambiguous tool choices not resolved by the fast path or cache.

What is MCTS used for?

Choosing the first tool when multi-step consequences matter.

What happens without a key?

route returns a missing-key fallback; MCTS can run without the Jev prior.

Related projects

  • MIT plugin and local MCP server that hands an agent's closed questions to Jev or local Laya, with policy gates and receipts.

    Agent skillproductionPython
  • Claude Code and Codex skill that routes a task to one of 27 specialist roles, with an optional Jev engine for catalog selection.

    ProjectbetaPython
  • Orchestrator that probes which coding agents are installed and logged in, then has Jev pick the best one for a task.

    Agent skillbetaPython
  • Hooks for Claude Code, Codex and pi that use Jev to suggest a skill each turn, plus a rule gate for subagent model routing.

    HookbetaJavaScript
  • Per-prompt capability router for coding agents that picks at most one installed skill, MCP server, subagent or command via Jev, or none.

    MCP serverbetaTypeScript
  • Agent toolkit for Claude Code and Codex whose optional /d router uses Jev to pick agents, skills and workflows and gate dispatch on intent.

    ProjectbetaPython