Skip to main content

Asynchronous MCP wrapper for OpenAI Codex CLI with context filtering

Project description

Codex MCP Async Server

Asynchronous MCP wrapper for OpenAI Codex CLI with 95% context savings

Enable Claude Code to call Codex (GPT-5) asynchronously, filtering out thinking processes to save 95% context tokens.

Features

  • Async execution - Start Codex tasks in background, continue working
  • Context-efficient - Filters thinking/exec logs, returns only core results
  • Full control - Access all Codex models and reasoning efforts
  • Zero config - Works out of the box with Claude Code

Quick Start

🚀 Install with UVX

Zero configuration - just run:

uvx codex-mcp-async

Configure Claude Code

Add to your ~/.claude/settings.json:

{
  "mcpServers": {
    "codex-mcp": {
      "command": "uvx",
      "args": ["codex-mcp-async"],
      "env": {}
    }
  }
}

Or use the provided config: Copy mcp-config.json to your Claude settings directory

Restart Claude Code

Reload or restart Claude Code to load the MCP server.

Usage Examples

🚀 Async Execution (Game Changer!)

Start a long Codex task and continue working immediately:

You:

Please analyze this entire codebase and generate comprehensive documentation

Claude: I'll analyze your entire codebase and generate comprehensive documentation. This is a large task, so I'll start it asynchronously...

Task Started (Task ID: abc12345) You can continue working on other things while it runs in the background!

You: (Continue working immediately)

While the documentation is being generated, help me fix this bug

Claude: Sure! Let me help you fix that bug...

You: (A few minutes later)

Can you check if the documentation task is finished?

Claude:Documentation Complete!

[View Generated Documentation]

  • API reference
  • Code examples
  • Architecture overview
  • Setup instructions

⚡ Parallel Execution

Run multiple Codex tasks simultaneously:

You:

I need to do three things at once:

  1. Generate unit tests for utils.py
  2. Refactor database.py to use async/await
  3. Add type hints to all functions in api.py

Claude: I'll start all three tasks in parallel!

🔄 Task 1 Started (Task ID: task1) - Generating unit tests 🔄 Task 2 Started (Task ID: task2) - Refactoring database code 🔄 Task 3 Started (Task ID: task3) - Adding type hints

All tasks are running in parallel...

You: (Later)

Are all three tasks finished?

Claude:All Complete!

  • ✅ Task 1: Unit tests for utils.py generated
  • ✅ Task 2: database.py refactored to async mode
  • ✅ Task 3: Type hints added to api.py functions

🎯 Quick Sync Tasks

For simple immediate tasks:

You:

Write a Python function to validate email addresses

Claude:

import re

def validate_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return re.match(pattern, email) is not None

# Usage examples
print(validate_email("user@example.com"))  # True
print(validate_email("invalid-email"))    # False

Task Complete!

🧠 Model Selection

You:

Analyze this research paper using GPT-5 with high reasoning

Claude:

# Uses analysis model instead of coding model
mcp__codex_mcp__codex_execute(
    prompt="Analyze this research paper on machine learning",
    args=["--full-auto", "-m", "gpt-5", "--config", "model_reasoning_effort=high"]
)

Why Async + Context Filtering?

Problem 1: Codex blocks Claude Code while running. Problem 2: Codex outputs 3000+ tokens of thinking logs for every task.

Solution: This MCP server runs Codex asynchronously and filters out 95% of the noise.

Benefits:

  • 🚀 Start a task and continue working immediately
  • ⚡ Run multiple tasks in parallel
  • 💾 95% context savings (3000 tokens → 150 tokens)
  • 🎯 Clean, focused results only
  • 🧹 Automatic process cleanup

Advanced Usage

Model Selection

gpt-5-codex (default) - Best for coding, debugging, implementation gpt-5 - Best for analysis, planning, research

Reasoning Levels

  • minimal/low - Quick tasks
  • medium - Standard work (default)
  • high - Complex problems

Example Configurations

# Quick coding task
args=["--full-auto", "--config", "model_reasoning_effort=low"]

# Complex analysis
args=["--full-auto", "-m", "gpt-5", "--config", "model_reasoning_effort=high"]

# Web search + analysis
args=["--full-auto", "--search", "-m", "gpt-5"]

Architecture & Performance

Claude Code (you)
    ↓ calls MCP tool
codex-mcp-async (runs Codex in background)
    ↓ filters thinking logs (95% savings!)
Codex CLI (GPT-5)
    ↓ returns clean result
Claude Code (receives focused output)

Context Savings:

  • Before: 3600 tokens (thinking + logs + result)
  • After: 180 tokens (clean result only)
  • 95% reduction!

Troubleshooting

Server not showing up?

  • Check: uvx codex-mcp-async runs without errors
  • Restart Claude Code after config change

Task stuck in "running"?

  • Large tasks take time to complete
  • Check debug logs: /tmp/codex_mcp_debug.log

Context too large?

  • Enable filtering: Always use async mode for long tasks
  • Split large tasks into smaller chunks

Requirements

License

MIT License - see LICENSE


Questions? Open an issue on GitHub.

Made with ❤️ for the Claude Code + Codex community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_jeanchristophe13v_codex_mcp_async-0.2.1.tar.gz.

File metadata

  • Download URL: iflow_mcp_jeanchristophe13v_codex_mcp_async-0.2.1.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_jeanchristophe13v_codex_mcp_async-0.2.1.tar.gz
Algorithm Hash digest
SHA256 29a996218115ba8b7b4f3155033a7560f88cb5b7c313909c61d3678dbdef60b1
MD5 a7ddb3b5ad535189b18810d10424adf5
BLAKE2b-256 748a731db018948184fe5f8d00ea34c7e437462d0622f7e8b46649d9b3aecc2d

See more details on using hashes here.

File details

Details for the file iflow_mcp_jeanchristophe13v_codex_mcp_async-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_jeanchristophe13v_codex_mcp_async-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_jeanchristophe13v_codex_mcp_async-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 caea28f3d6a2240ae6f0111f699f1726294055770880d4a592f6e83eb8eb7a8f
MD5 a6da9f901c3c72d642e47463d798b763
BLAKE2b-256 85bbd803d9452e4a9653f7ddbae83de651d3f02ceb9dcdcd420ae7d7bd84c68e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page