# Todo MCP Server
一个用于Cursor集成的Todo任务管理MCP服务器,支持多用户配置。
## ✨ 功能特性
- 🔧 **6个MCP工具**: 创建、查询、更新、删除、搜索任务
- 📊 **3个资源**: 任务统计、最近任务、逾期任务
- 💬 **2个提示**: 任务摘要、优化建议
- 🔐 **多种认证**: 支持Token和用户名密码认证
- 🌐 **多服务器**: 支持连接不同的Todo API服务器
## 📦 安装
通过PyPI安装:
```bash
pip install todo-mcp-server
```
或使用uvx(推荐):
```bash
uvx todo-mcp-server --help
```
## 🚀 使用方法
### Cursor配置
在 `~/.cursor/mcp.json` 中添加配置:
#### 使用API Token认证
```json
{
"mcpServers": {
"my-todo": {
"command": "uvx",
"args": [
"todo-mcp-server",
"--api-url=https://your-todo-server.com:3000",
"--api-token=your-secret-token"
]
}
}
}
```
#### 使用用户名密码认证
```json
{
"mcpServers": {
"my-todo": {
"command": "uvx",
"args": [
"todo-mcp-server",
"--api-url=https://your-todo-server.com:3000",
"--username=your-username",
"--password=your-password"
]
}
}
}
```
### 命令行参数
| 参数 | 必需 | 描述 | 示例 |
|------|------|------|------|
| `--api-url` | ✅ | Todo API服务器地址 | `https://api.example.com:3000` |
| `--api-token` | 🔄 | API访问令牌 | `abc123...` |
| `--username` | 🔄 | 用户名 | `john.doe` |
| `--password` | 🔄 | 密码 | `secret123` |
| `--timeout` | ❌ | 请求超时时间(默认30秒) | `60` |
注:`--api-token` 或 `--username + --password` 必须提供其中一种。
## 🛠️ 可用工具
在Cursor中,你可以使用以下命令:
- **创建任务**: "帮我创建一个任务:完成项目文档"
- **查看任务**: "显示我的待办任务列表"
- **更新任务**: "将任务1标记为已完成"
- **搜索任务**: "搜索包含'项目'的任务"
- **获取统计**: "显示我的任务统计信息"
- **查看逾期**: "显示所有逾期的任务"
## 🔧 开发
### 本地开发安装
```bash
git clone https://github.com/huangzhenxin/todo-mcp-server.git
cd todo-mcp-server
pip install -e .
```
### 测试
```bash
# 测试MCP服务器
todo-mcp-server --api-url=http://localhost:3000 --api-token=test
```
## 📄 许可证
MIT许可证 - 详见 LICENSE 文件。
## 🤝 贡献
欢迎提交Issue和Pull Request!
## 📞 支持
如有问题,请在GitHub上创建Issue:
https://github.com/huangzhenxin/todo-mcp-server/issues
Raw data
{
"_id": null,
"home_page": null,
"name": "todo-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "ai, cursor, mcp, model-context-protocol, todo",
"author": null,
"author_email": "huangzhenxin <your-email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/1d/67/cb52e900d272e2d0ed238f53e817780545892fa87cc42798013b124bf459/todo_mcp_server-2.0.0.tar.gz",
"platform": null,
"description": "# Todo MCP Server\n\n\u4e00\u4e2a\u7528\u4e8eCursor\u96c6\u6210\u7684Todo\u4efb\u52a1\u7ba1\u7406MCP\u670d\u52a1\u5668\uff0c\u652f\u6301\u591a\u7528\u6237\u914d\u7f6e\u3002\n\n## \u2728 \u529f\u80fd\u7279\u6027\n\n- \ud83d\udd27 **6\u4e2aMCP\u5de5\u5177**: \u521b\u5efa\u3001\u67e5\u8be2\u3001\u66f4\u65b0\u3001\u5220\u9664\u3001\u641c\u7d22\u4efb\u52a1\n- \ud83d\udcca **3\u4e2a\u8d44\u6e90**: \u4efb\u52a1\u7edf\u8ba1\u3001\u6700\u8fd1\u4efb\u52a1\u3001\u903e\u671f\u4efb\u52a1\n- \ud83d\udcac **2\u4e2a\u63d0\u793a**: \u4efb\u52a1\u6458\u8981\u3001\u4f18\u5316\u5efa\u8bae\n- \ud83d\udd10 **\u591a\u79cd\u8ba4\u8bc1**: \u652f\u6301Token\u548c\u7528\u6237\u540d\u5bc6\u7801\u8ba4\u8bc1\n- \ud83c\udf10 **\u591a\u670d\u52a1\u5668**: \u652f\u6301\u8fde\u63a5\u4e0d\u540c\u7684Todo API\u670d\u52a1\u5668\n\n## \ud83d\udce6 \u5b89\u88c5\n\n\u901a\u8fc7PyPI\u5b89\u88c5\uff1a\n\n```bash\npip install todo-mcp-server\n```\n\n\u6216\u4f7f\u7528uvx\uff08\u63a8\u8350\uff09\uff1a\n\n```bash\nuvx todo-mcp-server --help\n```\n\n## \ud83d\ude80 \u4f7f\u7528\u65b9\u6cd5\n\n### Cursor\u914d\u7f6e\n\n\u5728 `~/.cursor/mcp.json` \u4e2d\u6dfb\u52a0\u914d\u7f6e\uff1a\n\n#### \u4f7f\u7528API Token\u8ba4\u8bc1\n```json\n{\n \"mcpServers\": {\n \"my-todo\": {\n \"command\": \"uvx\",\n \"args\": [\n \"todo-mcp-server\",\n \"--api-url=https://your-todo-server.com:3000\",\n \"--api-token=your-secret-token\"\n ]\n }\n }\n}\n```\n\n#### \u4f7f\u7528\u7528\u6237\u540d\u5bc6\u7801\u8ba4\u8bc1\n```json\n{\n \"mcpServers\": {\n \"my-todo\": {\n \"command\": \"uvx\", \n \"args\": [\n \"todo-mcp-server\",\n \"--api-url=https://your-todo-server.com:3000\",\n \"--username=your-username\",\n \"--password=your-password\"\n ]\n }\n }\n}\n```\n\n### \u547d\u4ee4\u884c\u53c2\u6570\n\n| \u53c2\u6570 | \u5fc5\u9700 | \u63cf\u8ff0 | \u793a\u4f8b |\n|------|------|------|------|\n| `--api-url` | \u2705 | Todo API\u670d\u52a1\u5668\u5730\u5740 | `https://api.example.com:3000` |\n| `--api-token` | \ud83d\udd04 | API\u8bbf\u95ee\u4ee4\u724c | `abc123...` |\n| `--username` | \ud83d\udd04 | \u7528\u6237\u540d | `john.doe` |\n| `--password` | \ud83d\udd04 | \u5bc6\u7801 | `secret123` |\n| `--timeout` | \u274c | \u8bf7\u6c42\u8d85\u65f6\u65f6\u95f4\uff08\u9ed8\u8ba430\u79d2\uff09 | `60` |\n\n\u6ce8\uff1a`--api-token` \u6216 `--username + --password` \u5fc5\u987b\u63d0\u4f9b\u5176\u4e2d\u4e00\u79cd\u3002\n\n## \ud83d\udee0\ufe0f \u53ef\u7528\u5de5\u5177\n\n\u5728Cursor\u4e2d\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a\n\n- **\u521b\u5efa\u4efb\u52a1**: \"\u5e2e\u6211\u521b\u5efa\u4e00\u4e2a\u4efb\u52a1\uff1a\u5b8c\u6210\u9879\u76ee\u6587\u6863\"\n- **\u67e5\u770b\u4efb\u52a1**: \"\u663e\u793a\u6211\u7684\u5f85\u529e\u4efb\u52a1\u5217\u8868\"\n- **\u66f4\u65b0\u4efb\u52a1**: \"\u5c06\u4efb\u52a11\u6807\u8bb0\u4e3a\u5df2\u5b8c\u6210\"\n- **\u641c\u7d22\u4efb\u52a1**: \"\u641c\u7d22\u5305\u542b'\u9879\u76ee'\u7684\u4efb\u52a1\"\n- **\u83b7\u53d6\u7edf\u8ba1**: \"\u663e\u793a\u6211\u7684\u4efb\u52a1\u7edf\u8ba1\u4fe1\u606f\"\n- **\u67e5\u770b\u903e\u671f**: \"\u663e\u793a\u6240\u6709\u903e\u671f\u7684\u4efb\u52a1\"\n\n## \ud83d\udd27 \u5f00\u53d1\n\n### \u672c\u5730\u5f00\u53d1\u5b89\u88c5\n\n```bash\ngit clone https://github.com/huangzhenxin/todo-mcp-server.git\ncd todo-mcp-server\npip install -e .\n```\n\n### \u6d4b\u8bd5\n\n```bash\n# \u6d4b\u8bd5MCP\u670d\u52a1\u5668\ntodo-mcp-server --api-url=http://localhost:3000 --api-token=test\n```\n\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\n\nMIT\u8bb8\u53ef\u8bc1 - \u8be6\u89c1 LICENSE \u6587\u4ef6\u3002\n\n## \ud83e\udd1d \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\n\n## \ud83d\udcde \u652f\u6301\n\n\u5982\u6709\u95ee\u9898\uff0c\u8bf7\u5728GitHub\u4e0a\u521b\u5efaIssue\uff1a\nhttps://github.com/huangzhenxin/todo-mcp-server/issues",
"bugtrack_url": null,
"license": "MIT",
"summary": "Todo MCP Server powered by FastMCP - \u652f\u6301\u591a\u7528\u6237\u7684\u5f85\u529e\u4e8b\u9879\u7ba1\u7406MCP\u670d\u52a1\u5668",
"version": "2.0.0",
"project_urls": {
"Documentation": "https://github.com/huangzhenxin/todo-mcp-server#readme",
"Homepage": "https://github.com/huangzhenxin/todo-mcp-server",
"Issues": "https://github.com/huangzhenxin/todo-mcp-server/issues",
"Repository": "https://github.com/huangzhenxin/todo-mcp-server"
},
"split_keywords": [
"ai",
" cursor",
" mcp",
" model-context-protocol",
" todo"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "afc2c06c6b2228c4fe68aa7817fff0fac3a8707df1280e4bee947456d3c1e9ab",
"md5": "96700ea145f466eb9c3b4567fea97815",
"sha256": "6254f0f13bd83c80f55f054702bc1b2dc5a579d12b3fbfd557bec1f6e6d01b23"
},
"downloads": -1,
"filename": "todo_mcp_server-2.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "96700ea145f466eb9c3b4567fea97815",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 18255,
"upload_time": "2025-08-05T05:37:49",
"upload_time_iso_8601": "2025-08-05T05:37:49.241614Z",
"url": "https://files.pythonhosted.org/packages/af/c2/c06c6b2228c4fe68aa7817fff0fac3a8707df1280e4bee947456d3c1e9ab/todo_mcp_server-2.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1d67cb52e900d272e2d0ed238f53e817780545892fa87cc42798013b124bf459",
"md5": "f1afc40b167854db653d95189dd1599d",
"sha256": "6ceafa4e21722f38190cfed08bde33ed4888b4702277080482b28f87bc96f451"
},
"downloads": -1,
"filename": "todo_mcp_server-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "f1afc40b167854db653d95189dd1599d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 14020,
"upload_time": "2025-08-05T05:37:50",
"upload_time_iso_8601": "2025-08-05T05:37:50.801977Z",
"url": "https://files.pythonhosted.org/packages/1d/67/cb52e900d272e2d0ed238f53e817780545892fa87cc42798013b124bf459/todo_mcp_server-2.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-05 05:37:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "huangzhenxin",
"github_project": "todo-mcp-server#readme",
"github_not_found": true,
"lcname": "todo-mcp-server"
}