DEV Community

Tsunamayo
Tsunamayo

Posted on

I Turned helix-agent into helix-agents: One MCP Server for Ollama, Codex, and OpenAI-Compatible Models

If you use Claude Code heavily, you eventually hit the same wall:

  • some tasks are cheap enough for local models
  • some tasks want a stronger coding agent
  • some tasks are better sent to an API model

But many MCP servers still force one provider and one execution style.

So I evolved helix-agent into helix-agents.

It now lets Claude Code delegate work across:

  • ollama
  • codex
  • openai-compatible

from one MCP server.

What changed

The original project was focused on one thing: sending routine work to local Ollama models with automatic routing.

The new version keeps that path, but adds:

  • multi-provider switching
  • Codex-backed code delegation
  • OpenAI-compatible chat API support
  • Claude Code-style background agents

Under the hood, the runtime now supports two different delegation styles:

  • a built-in ReAct loop for ollama and openai-compatible
  • an autonomous Codex-backed path for repo-heavy work

That means the workflow is no longer:

Claude Code -> one tool call -> one reply
Enter fullscreen mode Exit fullscreen mode

It can now be:

Claude Code
  -> spawn a worker
  -> send follow-up instructions
  -> wait for completion
  -> inspect and close
Enter fullscreen mode Exit fullscreen mode

Why this matters

Different providers are good at different things.

  • ollama: local reasoning, low-cost drafts, vision
  • codex: code-heavy implementation and repo work
  • openai-compatible: hosted chat models behind standard APIs

Instead of wiring three separate MCP servers with different interaction models, I wanted one consistent runtime.

New tools

Core tools:

  • think
  • agent_task
  • see
  • providers
  • models
  • config

Background agent tools:

  • spawn_agent
  • send_agent_input
  • wait_agent
  • list_agents
  • close_agent

Example flows

1. Code review via Codex

think(
  task="Review this diff for regressions",
  provider="codex",
  cwd="/repo"
)
Enter fullscreen mode Exit fullscreen mode

2. Local summarization via Ollama

think(
  task="Summarize this build log",
  provider="ollama"
)
Enter fullscreen mode Exit fullscreen mode

3. Persistent investigation worker

spawn_agent(
  description="Investigate flaky tests",
  provider="codex",
  agent_type="explorer"
)
Enter fullscreen mode Exit fullscreen mode

Then:

send_agent_input(...)
wait_agent(...)
close_agent(...)
Enter fullscreen mode Exit fullscreen mode

Setup

git clone https://github.com/tsunamayo7/helix-agent.git
cd helix-agent
uv sync
uv run python server.py
Enter fullscreen mode Exit fullscreen mode

Add to Claude Code:

{
  "mcpServers": {
    "helix-agents": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/helix-agent", "python", "server.py"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Notes

  • Codex requires codex on PATH
  • OpenAI-compatible mode requires an API key
  • The generic OpenAI-compatible path is currently text-first
  • Vision is currently centered on the Ollama path

GitHub: helix-agent

Top comments (0)