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.jsonto 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:
- Generate unit tests for utils.py
- Refactor database.py to use async/await
- 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 tasksmedium- 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-asyncruns 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
- Python 3.8+
- Codex CLI installed and authenticated
- Claude Code
- uvx (for easy installation)
License
MIT License - see LICENSE
Questions? Open an issue on GitHub.
Made with ❤️ for the Claude Code + Codex community
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29a996218115ba8b7b4f3155033a7560f88cb5b7c313909c61d3678dbdef60b1
|
|
| MD5 |
a7ddb3b5ad535189b18810d10424adf5
|
|
| BLAKE2b-256 |
748a731db018948184fe5f8d00ea34c7e437462d0622f7e8b46649d9b3aecc2d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
caea28f3d6a2240ae6f0111f699f1726294055770880d4a592f6e83eb8eb7a8f
|
|
| MD5 |
a6da9f901c3c72d642e47463d798b763
|
|
| BLAKE2b-256 |
85bbd803d9452e4a9653f7ddbae83de651d3f02ceb9dcdcd420ae7d7bd84c68e
|