codex-mcp-todo-assistant
An MCP server that provides todo management tools (add, list, complete, clear, summarize) and a resource for reading all todos, enabling Codex or other MCP clients to organize and track tasks via natural language.
README
Codex MCP Todo Assistant
这个项目演示如何为 Codex 接入一个本地 MCP Server,并通过 AGENTS.md 约束 Codex 在任务规划场景中使用 MCP tools。
当前 demo 提供的是一个 todo 规划助手:用户要求组织、拆解、跟踪任务时,Codex 会调用本地 MCP tools,而不是只在对话里临时记忆任务。
文件说明
todo_mcp_server.py:MCP Server 主程序,基于mcp.server.fastmcp.FastMCP,通过 stdio 运行。requirements.txt:Python 依赖,目前只有mcp[cli]。todos.json:todo 数据文件,MCP tools 会读写这个文件。AGENTS.md:给 Codex 的项目级指令,定义什么时候使用 todo MCP tools,以及如何拆解任务。READMD.md:已有说明草稿,文件名疑似拼写错误;正式文档见本文件。
提供的 MCP tools
todo_mcp_server.py 暴露了以下工具:
add_todo(title, priority):新增 todo,priority可为low、normal、high。list_todos(include_completed):列出 todo,可选择是否包含已完成项。complete_todo(todo_id):按 ID 标记 todo 为已完成。clear_todos(only_completed):清空 todo,或只清理已完成项。get_todo_summary():按状态和优先级汇总 todo。generate_task_flow(name, flow_id):将当前 todo 生成符合 TaskFlow protobuf 结构的执行流。
同时还暴露了一个 MCP resource:
todo://all:读取全部 todo 数据。
安装 Python 依赖
建议使用虚拟环境,避免污染系统 Python 环境。
下面命令中的 <path> 表示你本机存放项目的父目录,例如 /path/to。
cd <path>/codex-mcp-todo-assistant
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
如果你不使用虚拟环境,也可以直接安装:
cd <path>/codex-mcp-todo-assistant
python3 -m pip install -r requirements.txt
本地运行 MCP Server
这个 MCP Server 使用 stdio transport,通常由 Codex 启动,不需要你手动长期运行。
如需做最基本的启动检查,可以执行:
cd <path>/codex-mcp-todo-assistant
python3 todo_mcp_server.py
该命令会进入 stdio 服务状态,等待 MCP client 通信;手动运行时没有交互输出是正常的。需要退出时按 Ctrl+C。
在 Codex 中注册 MCP Server
推荐使用 Codex CLI 注册:
codex mcp add todo_skill_demo -- python3 <path>/codex-mcp-todo-assistant/todo_mcp_server.py
如果你使用上面创建的虚拟环境,建议把命令里的 python3 换成虚拟环境解释器:
codex mcp add todo_skill_demo -- <path>/codex-mcp-todo-assistant/.venv/bin/python <path>/codex-mcp-todo-assistant/todo_mcp_server.py
注册后检查:
codex mcp list
你应该能看到类似条目:
Name Command Args Status
todo_skill_demo python3 <path>/codex-mcp-todo-assistant/todo_mcp_server.py enabled
也可以手动编辑 ~/.codex/config.toml,加入以下配置:
[mcp_servers.todo_skill_demo]
command = "python3"
args = ["<path>/codex-mcp-todo-assistant/todo_mcp_server.py"]
startup_timeout_sec = 10
tool_timeout_sec = 30
使用虚拟环境时,对应写法是:
[mcp_servers.todo_skill_demo]
command = "<path>/codex-mcp-todo-assistant/.venv/bin/python"
args = ["<path>/codex-mcp-todo-assistant/todo_mcp_server.py"]
startup_timeout_sec = 10
tool_timeout_sec = 30
修改配置后,重新启动 Codex,让 MCP Server 配置生效。
使用方式
进入本项目目录后启动 Codex:
cd <path>/codex-mcp-todo-assistant
codex
然后可以用自然语言让 Codex 管理任务,例如:
帮我把发布前检查拆成 todo
还有哪些任务没完成?
把 3 号任务标记完成
由于 AGENTS.md 已定义项目级工作流,Codex 在识别到计划、拆解、跟踪、更新任务等请求时,会使用 MCP tools 读写 todos.json。
TaskFlow 生成规则
generate_task_flow 会将 todo 列表转换为可用于 UpsertTaskFlowRequest.flow 或
RunTaskFlowRequest.inline_flow 的 TaskFlow 结构:
- 每个 todo 对应一个
TaskNode,节点 ID 为todo-{id}。 action_params保存 todo 标题、优先级、数值优先级、ID 和完成状态。- 节点按 todo 顺序排列,并通过
CONDITION_ON_SUCCESS的TaskEdge串行连接。 - 节点使用
JOIN_ALL和PREEMPT_AND_RESUME,成功条件为completed = true。 ActionType暂用枚举零值0;接入具体机器人能力时应映射为capability_type.proto中对应的动作类型。
工具返回示例:
{
"success": true,
"flow": {
"flow_id": "todo-task-flow",
"name": "发布前检查",
"nodes": [
{
"node_id": "todo-1",
"action_type": 0,
"action_params": {
"title": "运行回归测试",
"priority": "high",
"priority_value": 3,
"todo_id": 1,
"completed": false
},
"join_type": "JOIN_ALL",
"preemption_rule": "PREEMPT_AND_RESUME",
"success_condition": {"completed": true},
"timeout_ms": 0
}
],
"edges": []
}
}
数据存储
todo 数据保存在项目根目录的 todos.json。这是 demo 用的本地 JSON 存储,不适合多用户并发写入或生产环境使用。
常见问题
codex mcp list 看不到 server
确认是否执行过注册命令,并检查 ~/.codex/config.toml 中是否存在 [mcp_servers.todo_skill_demo]。
Codex 无法启动 MCP Server
优先检查:
python3是否可用。- 是否已安装依赖:
python3 -m pip install -r requirements.txt。 todo_mcp_server.py是否使用绝对路径注册。- 如果使用虚拟环境,
command是否指向.venv/bin/python。
todo 数据异常
todo_mcp_server.py 会读取 todos.json。如果文件不是合法 JSON list,server 会按空列表处理。需要重置 demo 数据时,可以把 todos.json 改为:
[]
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。