Claude Code Multi-Process MCP Server
by L-x-C
README.md
# Claude Code 多进程 MCP 服务器
## 项目定位
基于 **FastMCP 框架**的多进程并行执行服务器,为 Claude Code CLI 提供异步任务处理能力。
---
## 核心架构
```
┌─────────────────────────────────────────────────────────────┐
│ Claude Code CLI │
└───────────────────────────┬─────────────────────────────────┘
│ JSON-RPC (stdio)
┌───────────────────────────▼─────────────────────────────────┐
│ FastMCP Server │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ @server.tool Decorators │ │
│ │ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
│ │ │execute_cc │ │start_cc_async│ │check_status │ │ │
│ │ │_task │ │ │ │ │ │ │
│ │ └─────────────┘ └──────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ TaskManager Class │ │
│ │ • SIGCHLD 信号处理 (自动回收僵尸进程) │ │
│ │ • 进程生命周期管理 │ │
│ │ • UUID 任务追踪 │ │
│ └─────────────────────────────────────────────────────┘ │
└───────────────────────────┬─────────────────────────────────┘
│ subprocess.Popen()
┌───────────────────────────▼─────────────────────────────────┐
│ 子进程池 (并行执行) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Task 1 │ │ Task 2 │ │ Task 3 │ │ Task N │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────────────────▼─────────────────────────────────┐
│ 文件系统持久化 (/tmp/) │
│ • cc_process_tasks/ → 任务结果 (JSON) │
│ • *.stdout → 标准输出 │
│ • *.stderr → 错误输出 │
│ • cc_process_mcp.log → 运行日志 │
└─────────────────────────────────────────────────────────────┘
```
---
## MCP 工具集
| 工具名 | 类型 | 功能 |
|--------|------|------|
| `execute_cc_task` | 同步 | 阻塞执行,返回结果 |
| `start_cc_task_async` | 异步 | 立即返回 task_id |
| `check_task_status` | 查询 | 获取状态和结果 |
| `list_active_tasks` | 监控 | 列出所有运行中任务 |
| `cleanup_task` | 清理 | 终止进程并删除数据 |
---
## 关键技术点
| 技术领域 | 实现方案 |
|----------|----------|
| **进程管理** | `subprocess.Popen` + SIGCHLD 信号处理 |
| **僵尸进程防护** | `os.waitpid(-1, WNOHANG)` 非阻塞自动回收 |
| **任务持久化** | 文件系统 JSON 存储 + 进程状态混合判断 |
| **进程存活检测** | `os.kill(pid, 0)` + `ps` 命令状态验证 |
| **输出解析** | 支持 stream-json/json/text 多格式提取 |
| **任务隔离** | 每任务独立目录 + UUID 标识 |
---
## 技术栈
```
Python 3.6+ + FastMCP ≥0.12.0 + 标准库 (signal/subprocess/json)
```
---
## 状态流转
```
启动 → running → (poll检测/文件mtime判断) → completed/failed/timeout
↑ ↓
└────────────── SIGCHLD 自动清理 ←────────────┘
```
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues