Skip to main content
Glama

GitHub Tag Code Style License Last Commit PHP Version Support Packagist Downloads

📟 codemcp 📟

codemcp exposes agentic coding through the official harnesses of Codex and Claude Code as a small mcp server. runs are asynchronous: they execute detached, results are collected by polling — safe behind any transport timeout.

installation

composer require vielhuber/codemcp

Related MCP server: claude-code-mcp

setup

.env in the project root (only for mcps via http):

MCP_TOKEN=

usage

every function below is also exposed 1:1 as an mcp tool of the same name.

$code = codemcp::create();

$session = $code->start(
    prompt: 'Fix the failing tests.',
    workdir: '/app',
    provider: 'claude',
    model: 'claude-opus-4-8',
    effort: 'high'
);

$session = $code->wait(
    session_id: $session['session_id'],
    timeout: 120
);

$session = $code->status(
    session_id: $session['session_id']
);
$code->status();

$session = $code->continue(
    session_id: $session['session_id'],
    prompt: 'Now also fix the linter warnings.'
);

$session = $code->stop(
    session_id: $session['session_id']
);

$providers = $code->providers();

When workdir is omitted, each new session gets a random isolated directory under sys_get_temp_dir()/codemcp/. An explicit directory is created recursively when it does not exist, so new projects start in their final workspace and retain folder continuity. A running session for that folder is reused; otherwise Codemcp resumes the most recently active native Codex or Claude session and creates a new thread only when no folder history exists. model and effort are optional; when omitted, the selected coding agent uses its own defaults. Supported explicit effort values are minimal, low, medium, high and xhigh.

When start or continue submits a prompt to an existing session, the immediate response has status queued. queued_prompt and queue_position describe the new submission, while previous_prompt and previous_result expose the prior context without presenting it as the new result. session_status contains the underlying runtime state. Subsequent wait and status calls return the regular session status (running, completed, error or stopped) and the new final answer in last_content.

Long-running agents are limited by inactivity, not total runtime. MCP progress events and command output reset the internal inactivity timeout, so an active run can continue beyond 30 minutes while a stalled run is still terminated.

tests

./vendor/bin/phpunit

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Delegates work from MCP clients (like Claude Code) to the Codex CLI, allowing spawning of autonomous Codex subagents for tasks.
    2
    45 PyPI
    174
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Wraps Claude Code as tools for MCP clients, enabling autonomous coding tasks via a 4-tool lifecycle with session management, async polling, and permission controls.
    4
    34 npm
    20
    MIT