TODO MCP CLI 和服务器
该存储库包含待办事项列表应用程序的最小模型上下文协议 (MCP) 实现,包括:
FastAPI 服务器(
server/):公开一个用于工具发现的/tools端点和一个用于 JSON-RPC 调用的/rpc端点来对任务执行操作。CLI 客户端(
client/cli.py):一个 Python 命令行界面,可与 LLM(通过 OpenAI)和 MCP 服务器交互,以使用函数调用来创建、列出和完成任务。
特征
添加带有标题、内容和可选截止日期的任务
列出所有任务
将任务标记为已完成
服务器端任务ID生成
工具调用符合 JSON-RPC 2.0 标准
先决条件
Python 3.10+
用于虚拟环境的pipenv或
venvOpenAI API 密钥
安装
克隆仓库:
git clone https://github.com/oseni99/todo-mcp cd todo-mcp创建并激活虚拟环境:
python3 -m venv .venv source .venv/bin/activate安装依赖项:
pip install -r requirements.txt在项目根目录中创建一个
.env:OPENAI_API_KEY=sk-... MCP_SERVER=http://127.0.0.1:8000
目录结构
todoMCP/
├── client/ # CLI client code
│ └── cli.py # Main entrypoint for the MCP-CLI
├── server/ # FastAPI server code
│ ├── handlers.py # Business logic for add, list, complete
│ ├── tools.py # JSON-Schema tool manifest
│ └── main.py # FastAPI app with /tools and /rpc
├── .env # Environment variables (not committed)
├── requirements.txt # Python dependencies
└── README.md # This file
运行服务器
fastapi dev server/main.py
访问http://127.0.0.1:8000/docs获取交互式 API 文档。
运行 CLI
从项目根目录:
python -m client.cli
在提示符下输入自然语言命令,例如:
> Create a task titled "Write blog post" with content "Outline first draft" due 2025-05-20
> List my tasks
> Mark the first task as done
> Thanks!
> exit
CLI 将打印工具调用和 LLM 响应。