mcpField
S
SupervisordMCP- AI Agent DevServer Management Made Simple

SupervisordMCP- AI Agent DevServer Management Made Simple

github.com/aether-platform其他434 周前更新

关于 SupervisordMCP- AI Agent DevServer Management Made Simple

Supervisord MCP 面向使用现有 Supervisord 环境的编码 Agent,提供进程管理服务。它通过 MCP 提供结构化控制与监控,包括进程状态和日志。

主要功能

  1. 01启动、停止和重启进程
  2. 02列出进程并检查状态
  3. 03获取 stdout 和 stderr 日志
  4. 04读取 Supervisord 系统信息
  5. 05重新加载进程配置

适用场景

  1. 01管理已配置的 Web 应用进程
  2. 02监控开发环境中的服务
  3. 03排查故障进程时检查日志
  4. 04控制多个已配置的微服务

MCP 相关

MCP 服务向编码 Agent 提供 Supervisord 进程控制和监控工具,并通过 HTTP XML-RPC 与 Supervisord 通信。它支持 stdio 传输。

详细介绍

Supervisord MCP

PyPI version Python 3.10+ License: MIT

通过 Model Context Protocol(MCP)集成 AI Agent,简化 Supervisord 进程管理。

Supervisord MCP 通过 Model Context Protocol 为编码 Agent 提供对 Supervisord 进程管理的直接访问。它提供标准化的进程控制能力,免去了复杂的 Shell 命令解析,并减少了 AI Agent 在生产和开发环境中的 Token 消耗。

MCP 集成流程

sequenceDiagram
    participant Agent as AI Coding Agent
    participant MCP as Supervisord MCP Server
    participant Supervisord as Supervisord Daemon
    participant Process as Application Process

    Agent->>MCP: Request: start_process("webapp")
    MCP->>Supervisord: Start process via XML-RPC
    Supervisord->>Process: Launch application
    Process-->>Supervisord: Process started (PID: 1234)
    Supervisord-->>MCP: Process status: RUNNING
    MCP-->>Agent: {"status": "ok", "message": "Process started"}

    Agent->>MCP: Request: get_logs("webapp", lines=50)
    MCP->>Supervisord: Fetch stdout/stderr logs
    Supervisord-->>MCP: Log entries
    MCP-->>Agent: {"status": "ok", "logs": ["Application started..."]}

什么是 Supervisord MCP?

Supervisord MCP 让 AI 编码 Agent 更高效地管理生产环境进程,有助于提升部署可靠性和运营效率。

Supervisord MCP 通过 Model Context Protocol 提供直接的进程控制,免去 Shell 命令的开销,并减少 AI Agent 管理生产和开发环境时的 Token 消耗。

核心功能:

  • AI 集成:内置 MCP 协议支持,适用于编码 Agent
  • 可用于生产环境:基于经过实战检验的 Supervisord 进程管理器
  • 实时监控:访问进程状态和日志
  • 可靠操作:可靠地管理进程生命周期

快速开始

安装
uv add supervisord-mcp
基本用法
# Start a process (requires it to be configured in supervisord.conf)
uv run supervisord-mcp start webapp

# Check what's running
uv run supervisord-mcp list-processes

# View logs
uv run supervisord-mcp logs webapp

# Get system information
uv run supervisord-mcp info

主要功能

🚀 轻松管理进程
# Start/stop/restart processes
uv run supervisord-mcp start api
uv run supervisord-mcp stop api
uv run supervisord-mcp restart api

# Get detailed status
uv run supervisord-mcp status api
📊 全面监控
# List all processes with status
uv run supervisord-mcp list-processes

# View real-time logs
uv run supervisord-mcp logs api --lines 100
uv run supervisord-mcp logs api --stderr

# System information
uv run supervisord-mcp info
🤖 AI Agent 集成

Supervisord MCP 内置 MCP 协议支持,让 AI Agent 能够管理你的进程:

# Start MCP server for AI integration
uv run supervisord-mcp mcp

在 AI Agent 中使用推荐的 stdio 传输方式进行配置:

{
  "mcpServers": {
    "supervisord-mcp": {
      "command": "uv",
      "args": ["run", "supervisord-mcp", "mcp"],
      "cwd": "/path/to/your/project"
    }
  }
}

适用于不同的项目配置:

{
  "mcpServers": {
    "supervisord-mcp": {
      "command": "uv",
      "args": ["run", "supervisord-mcp", "mcp"],
      "cwd": "/app"
    }
  }
}

注意:本工具面向生产和开发环境,使用 MCP 文档(https://modelcontextprotocol.io/)中所述的 stdio 传输方式。这种方式可在 AI Agent 与进程管理器之间提供安全、直接的通信。

常见用例

生产环境 Web 应用
# Configure in supervisord.conf:
[program:webapp]
command=gunicorn app:application
directory=/app
numprocs=4
autostart=true
autorestart=true

# Then manage via Supervisord MCP:
uv run supervisord-mcp start webapp
uv run supervisord-mcp logs webapp
开发环境
# Configure multiple services in supervisord.conf:
[program:frontend]
command=npm run dev
directory=/app/frontend
autostart=false

[program:backend]
command=python manage.py runserver
directory=/app/backend
autostart=false

# Manage the stack:
uv run supervisord-mcp start frontend
uv run supervisord-mcp start backend
uv run supervisord-mcp list-processes
微服务
# Multiple services configured in supervisord.conf
uv run supervisord-mcp start auth-service
uv run supervisord-mcp start user-service
uv run supervisord-mcp start notification-service

为什么选择 Supervisord MCP?

与 Circus MCP 相比
  • 面向生产环境:Supervisord 专为生产环境设计
  • 稳定性:经过多年生产环境使用检验的进程监控器
  • 配置:使用标准的 supervisord.conf 定义进程

注意:AI Agent 集成限制

Supervisord 的 XML-RPC API 在动态管理 AI Agent 进程方面存在限制:

  • API 不支持 add_process(需要手动编辑配置文件并执行 reload)
  • stdout/stderr 日志需要通过单独的 API 调用获取
  • API 无法提供 CPU/内存资源指标
  • 启动已运行的进程会抛出 ALREADY_STARTED 错误(非幂等操作)

对于 AI Agent 需要动态添加和监控进程的用例,Circus MCP 提供了更完整的 API。Supervisord MCP 最适合用于集成现有的 Supervisord 环境。

与 systemd 相比
  • 跨平台:可在任何安装了 Python 的系统上运行
  • 易于使用:命令简单,并支持 AI 集成
  • 灵活:易于配置和管理进程
与 PM2 相比
  • 原生支持 Python:非常适合 Python 应用
  • AI 集成:开箱即用地支持 MCP 协议
  • 经过生产环境验证:基于广泛使用的 Supervisord

高级功能

进程控制
# Standard operations
uv run supervisord-mcp start webapp
uv run supervisord-mcp stop webapp
uv run supervisord-mcp restart webapp

# Get detailed status
uv run supervisord-mcp status webapp
日志管理
# View logs with options
uv run supervisord-mcp logs webapp --lines 100
uv run supervisord-mcp logs webapp --stderr

# Real-time log monitoring (use supervisorctl tail in another terminal)
配置管理
# Reload configuration after changes
uv run supervisord-mcp reload

安装与设置

系统要求
  • Python 3.10 或更高版本
  • 已安装并运行 Supervisord
  • 任意操作系统(Linux、macOS、Windows)
安装选项
# From PyPI (recommended)
uv add supervisord-mcp

# With pip (alternative)
pip install supervisord-mcp

# From source
git clone https://github.com/aether-platform/supervisord-mcp.git
cd supervisord-mcp
uv sync
Supervisord 设置
  1. 安装 Supervisord:
pip install supervisor
  1. 创建配置目录:
mkdir -p /etc/supervisor/conf.d
  1. 创建主配置文件 /etc/supervisor/supervisord.conf:
[unix_http_server]
file=/tmp/supervisor.sock

[supervisord]
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

[inet_http_server]
port=127.0.0.1:9001

[include]
files = /etc/supervisor/conf.d/*.conf

重要:Supervisord MCP 需要启用 [inet_http_server] 配置块并允许 HTTP 访问。该工具通过 HTTP XML-RPC 协议连接 Supervisord,不支持 Unix 域套接字连接。

  1. 启动 Supervisord:
supervisord -c /etc/supervisor/supervisord.conf
验证安装
uv run supervisord-mcp --help
uv run supervisord-mcp info

配置

Supervisord MCP 可与标准 Supervisord 配置配合使用。将程序添加到 /etc/supervisor/conf.d/:

程序配置示例
[program:webapp]
command=gunicorn app:application --bind 0.0.0.0:8000
directory=/app
numprocs=1
autostart=true
autorestart=true
startsecs=10
startretries=3
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/webapp.log
自定义服务 URL
# Use custom Supervisord server
uv run supervisord-mcp --server-url http://localhost:9001/RPC2 list-processes

可用的 MCP 工具

以下工具可供 AI Agent 使用:

  • add_process:添加新进程(需要重新加载配置)
  • start_process:启动进程
  • stop_process:停止进程
  • restart_process:重启进程
  • list_processes:列出所有进程
  • get_process_status:获取详细的进程状态
  • get_logs:获取进程日志(stdout/stderr)
  • get_system_info:获取 Supervisord 系统信息
  • reload_config:重新加载 Supervisord 配置

获取帮助

文档
支持
快速命令参考
# Process Management
uv run supervisord-mcp start <name>
uv run supervisord-mcp stop <name>
uv run supervisord-mcp restart <name>
uv run supervisord-mcp status <name>

# Monitoring
uv run supervisord-mcp list-processes
uv run supervisord-mcp logs <name> [--lines N] [--stderr]
uv run supervisord-mcp info

# Configuration
uv run supervisord-mcp reload

# AI Integration
uv run supervisord-mcp mcp

AI Agent 的 Token 成本分析

**减少 token 消耗,让 Agent 更快地工作。**AI Agent 用于进程监控的每个 token,都是未用于解决实际问题的 token。研究显示,在 Agent 工作流中,迭代调试阶段消耗的 token 最多可占总量的 59.4%(Tokenomics,2026)。通过 MCP 提供结构化、简洁的响应,我们降低了 AI 辅助调试中最大的成本驱动因素:不必要的往返请求和非结构化输出解析。

工具架构开销(上下文驻留成本)

注册 MCP 工具后,其架构定义会在整个会话期间保留在对话上下文中。

项目预估 Token 数
9 个工具架构约 1,100 个 token
每次调用的 Token 成本
操作请求响应总计
list_processes(5 个进程)约 30约 120-200约 150-230
get_process_status约 40约 100-150约 140-190
get_logs(10 行)约 50约 150-450约 200-500
get_logs(50 行)约 50约 750-2,450约 800-2,500
get_logs(100 行,默认值)约 50约 1,450-4,950约 1,500-5,000
get_system_info约 30约 50-90约 80-120
start/stop/restart_process约 40约 30-60约 70-100
reload_config约 30约 40-70约 70-100
MCP 与原始 Linux 命令对比——“快速退出”问题排查

排查某个进程在启动后立即退出时的成本对比。

原始命令(不使用 MCP):12 个步骤
supervisorctl status                              # Step 1:  Check all processes
supervisorctl status webapp                       # Step 2:  Check target → FATAL
supervisorctl tail webapp stderr                  # Step 3:  stderr logs (unbounded output risk)
cat /var/log/supervisor/webapp-stderr.log | tail -50  # Step 4:  Read log file directly
supervisorctl start webapp                        # Step 5:  Attempt restart
sleep 2 && supervisorctl status webapp            # Step 6:  Check after restart
supervisorctl tail webapp stderr | tail -20       # Step 7:  Check logs again
ps aux | grep webapp                              # Step 8:  Verify process existence
journalctl -u supervisor --no-pager -n 30         # Step 9:  systemd logs
cat /etc/supervisor/conf.d/webapp.conf            # Step 10: Check configuration
lsof -i :8080                                     # Step 11: Check port conflicts
free -m                                           # Step 12: Check resource exhaustion
  • 每次 Bash 调用都有 约 60-90 个 token 的固定开销
  • supervisorctl tail 没有行数限制——存在 token 激增风险
  • 非结构化文本输出会导致 LLM 解析错误
  • 每个步骤之间都会消耗 推理 token(约 150-250 个 token/步)
  • “快速退出”场景通常需要对该流程 循环 2-3 次
MCP(结构化工具):5 个步骤
list_processes                                    # Spot FATAL immediately
get_process_status("webapp")                      # Detailed status
get_logs("webapp", lines=20, stderr=true)         # Error logs (bounded to 20 lines)
restart_process("webapp")                         # Restart
get_process_status("webapp")                      # Verify after restart
对比
指标原始命令MCP降幅
工具调用次数8-123-560-70%
输出 token 数2,000-8,500560-1,16070-85%
推理 token 数(步骤间)~1,500-3,000~500-1,00060-70%
总 token 数(不含 schema)2,900-9,400935-1,53560-85%
总 token 数(含 schema)2,900-9,4002,035-2,63530-70%
往返次数8-123-560%
实际耗时12-36s~5s60-85%
解析可靠性低(非结构化)高(结构化)—
重试时的扩展情况

需要重复调查时的累计成本(“快速退出”问题中很常见):

重试次数原始命令MCP节省
1(成功)~2,900-9,400~935-1,53560-85%
2 轮~5,000-15,000~1,500-2,50070-83%
3 轮~7,000-20,000~2,000-3,50071-82%

原始命令的成本会随重试次数呈指数增长(探索性命令不断累积),而 MCP 的成本则线性增长。

盈亏平衡点:将 schema 常驻成本(~1,100 个 token)计算在内后,MCP 在 3-4 次工具调用时成本相当,超过此次数后成本更低。

优化建议
建议效果
将 get_logs 限制为 lines=10~20日志检索成本降低 70-80%
使用一次 list_processes 调用获取概览无需逐个调用状态查询
使用 stderr=true 仅获取 stderr避免在 stdout 上浪费 token
仅检查状态时跳过 get_system_info节省 ~80-120 个 token
参考资料

本次 token 成本分析所依据的研究:

许可证

MIT License — 详见 LICENSE。

关于作者

AetherPlatform — 构建云原生开发工具的未来

我们的使命

我们通过 AI 集成和现代云原生技术开发工具,提升开发者的工作效率。Supervisord MCP 是我们更广泛的开发工具生态系统的一部分,旨在简化软件开发生命周期。

其他项目
  • AetherSaaS:SaaS 平台管理控制台
  • AetherCoding:AI 增强型开发环境
  • AetherOperation:运维和终端管理工具
  • Circus MCP:使用 Circus 实现的替代进程管理方案

致谢

我们衷心感谢 Supervisord 开发团队打造了如此稳健可靠的进程管理基础。正是他们的出色工作让本项目成为可能。Supervisord MCP 基于其坚实的架构构建,为进程管理带来现代 AI Agent 集成能力。

相关项目


由 AetherPlatform 倾情打造 ❤️

Supervisord MCP:面向生产环境的进程管理,AI 驱动的自动化。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。