JoshGPT MCP
用于JoshGPT工具执行和角色路由编排的容器化MCP服务。
目的
此存储库包含三个运行时服务:
toolhost(工具主机)
- 文件/搜索工具 - 可选命令执行工具
dispatcher(能力)
- 角色工作者的任务路由/状态 - 主管问答链接
supervisor(能力)
- 规范食品法典监督决策引擎(ask_codex_supervisor) - 本阶段支持Codex CLI
建筑
- 单一仓库,独立的服务/容器。
- 调度员和主管是能力,而不是角色。
- 主管能力使用规范
ask-codex-supervisor合同。 - 角色工作者注入升级有效载荷并消耗主管决策。
合同
规范主管模式:
contracts/ask-codex-supervisor.request.schema.jsoncontracts/ask-codex-supervisor.response.schema.jsoncontracts/ask-codex-supervisor.tool.json
故障安全规则:
- 如果有效负载验证或Codex运行时执行失败,监督程序将返回一个有效的确定性模式
pause_for_human回应。
服务和工具
1) 工具主机(toolhost)
只读:
list_filesread_filesearch_textserver_info
执行(策略门控):
run_host_commandrun_container_command
2) 调度员(dispatcher)
dispatch_role_taskclaim_next_taskset_task_statussubmit_supervisor_questionlist_pending_supervisor_questionsrespond_supervisor_questionget_task_statuslist_role_queuesdispatcher_info
3) 主管能力(supervisor)
ask_codex_supervisor
快速开始
cp .env.example .env
# set shared tokens before start
docker compose up --build -d
docker compose ps默认端口:
- 工具主机:
127.0.0.1:8787 - 调度员:
127.0.0.1:8788 - 主管能力:
127.0.0.1:8789
Codex CLI登录(主管)
主管要求经过认证 codex 监控器运行时内的CLI会话。
docker exec -it jgp-supervisor codex login --device-auth
docker exec jgp-supervisor codex login status本地运行(无Docker)
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# tool-host
python src/joshgpt_mcp_server.py
# dispatcher (separate terminal)
python src/dispatcher_mcp_server.py
# supervisor capability (separate terminal)
python src/supervisor_capability_server.py环境
工具主机
JOSHGPT_MCP_*变量在.env.example
调度员
JOSHGPT_DISPATCHER_BIND_HOSTJOSHGPT_DISPATCHER_BIND_PORTJOSHGPT_DISPATCHER_TRANSPORTJOSHGPT_DISPATCHER_PUBLISH_HOSTJOSHGPT_DISPATCHER_PUBLISH_PORTJOSHGPT_DISPATCHER_DB_PATHJOSHGPT_DISPATCHER_REQUIRE_SHARED_TOKENJOSHGPT_DISPATCHER_SHARED_TOKEN
主管能力
JOSHGPT_SUPERVISOR_BIND_HOSTJOSHGPT_SUPERVISOR_BIND_PORTJOSHGPT_SUPERVISOR_TRANSPORTJOSHGPT_SUPERVISOR_PUBLISH_HOSTJOSHGPT_SUPERVISOR_PUBLISH_PORTJOSHGPT_SUPERVISOR_REQUIRE_SHARED_TOKENJOSHGPT_SUPERVISOR_SHARED_TOKENJOSHGPT_SUPERVISOR_CODEX_CLI_BINJOSHGPT_SUPERVISOR_CODEX_CLI_TIMEOUT_SECONDSJOSHGPT_SUPERVISOR_CODEX_MODELJOSHGPT_SUPERVISOR_CODEX_STATE_VOLUME
烟雾检查
python3 -m py_compile src/joshgpt_mcp_server.py src/dispatcher_mcp_server.py src/supervisor_capability_server.pydocker compose logs --tail=100 dispatcher
docker compose logs --tail=100 supervisor端到端角色/主管循环(仅限MCP)
从repo根运行规范烟雾脚本:
.venv/bin/python scripts/smoke_worker_supervisor_loop.py --summary-only带有显式令牌/端点的可选示例:
.venv/bin/python scripts/smoke_worker_supervisor_loop.py \
--dispatcher-url http://127.0.0.1:8788/mcp \
--supervisor-url http://127.0.0.1:8789/mcp \
--dispatcher-shared-token replace-me-dispatcher-token \
--supervisor-shared-token replace-me-supervisor-token \
--worker-role-slug implementation-specialist \
--supervisor-role-slug hr-ai-agent-specialist \
--requested-decision next_step脚本序列:
- 调度任务
- 认领任务
- 提交主管问题
- 呼叫
ask_codex_supervisor - 记录主管的回应
- 获取最终任务状态/事件
备注
- Dispatcher将SQLite用于MVP状态。
- 默认情况下,调度器和监督工具启用了共享令牌保护。
- 在此阶段,主管后端仅为Codex CLI。
