微软Todo MCP服务器
Microsoft Todo应用程序CLI的MCP(模型上下文协议)服务器包装器。
概述
此MCP服务器在MCP客户端和Microsoft Todo命令行工具之间提供桥梁(ms-todo-app).它执行JSON格式的shell命令来管理任务和列表。
特性
- 列表列表:获取所有Microsoft Todo列表(包括可选的虚拟列表)
- 列出任务:使用筛选选项查询列表中的任务
- 获取任务:检索特定任务的详细信息
- 创建任务:创建具有可选截止日期、提醒和注释的新任务
- 更新任务:修改现有任务
- 删除任务:永久删除任务
需求
- 防锈工具链
- Microsoft Todo CLI应用程序(
ms-todo-app)
配置
必修的: 通往 ms-todo-app 二进制文件必须通过配置 MS_TODO_BINARY 环境变量。
设置环境变量
本届会议:
export MS_TODO_BINARY=/path/to/ms-todo-app永久(添加到您的shell配置文件中):
# For zsh (default on Pop OS)
echo 'export MS_TODO_BINARY=/path/to/ms-todo-app' >> ~/.zshrc
source ~/.zshrc
# For bash
echo 'export MS_TODO_BINARY=/path/to/ms-todo-app' >> ~/.bashrc
source ~/.bashrc例子:
export MS_TODO_BINARY=/home/digit1024/proj/msToDO/target/release/ms-todo-app如果发生以下情况,服务器将无法启动 MS_TODO_BINARY 未设置或指向不存在的文件。
建筑
cargo build --release测试
该项目包括全面的单元测试和可选的集成测试。
运行所有单元测试
cargo test仅运行单元测试(库)
cargo test --lib运行集成测试
集成测试需要 ms-todo-app 二进制文件可用,可能会修改您的Todo数据。默认情况下,它们会被忽略:
# Run integration tests (requires ms-todo-app binary)
cargo test -- --ignored注: 如果没有找到二进制文件,集成测试将自动跳过,但如果二进制文件存在,它们将对Microsoft Todo进行真正的API调用。
用法
服务器使用MCP协议通过stdio进行通信。它可以与MCP兼容的客户端一起使用。
MCP客户端配置示例
要与MCP客户端一起使用,请配置服务器路径并确保 MS_TODO_BINARY 已设置:
{
"mcpServers": {
"todo": {
"command": "/path/to/todomcp/target/release/todo-mcp-server",
"env": {
"MS_TODO_BINARY": "/path/to/ms-todo-app"
}
}
}
}注: 一些MCP客户端支持环境变量配置。确保 MS_TODO_BINARY 在shell环境或MCP客户端配置中设置。
工具
list_lists
列出所有Microsoft Todo列表。
参数:
include_virtual(可选,布尔值):包括虚拟列表,如“我的一天”和“计划”
list_tasks
在特定列表中列出任务。
参数:
list_id(必填,字符串):列表的IDfilter(可选,字符串):按标题中的子字符串过滤任务today(可选,布尔值):仅显示今天到期或提醒的任务include_finished(可选,布尔值):包括已完成的任务
get_task
获取任务的详细信息。
参数:
task_id(必填,字符串):任务的ID
create_task
创建新任务。
参数:
list_id(必填,字符串):列表的IDtitle(必填,字符串):任务标题due_date(可选,字符串):到期日期,格式为YYYY-MM-DDreminder(可选,字符串):YYYY-MM-DDTHH:MM:SSZ格式的提醒note(可选,字符串):任务注释
update_task
更新现有任务。
参数:
task_id(必填,字符串):任务的IDtitle(可选,字符串):新标题due_date(可选,字符串):YYYY-MM-DD格式的新截止日期reminder(可选,字符串):YYYY-MM-DDTHH:MM:SSZ格式的新提醒note(可选,字符串):新注释status(可选,字符串):任务状态(“待定”、“未启动”、“已完成”、“完成”)
delete_task
永久删除任务。
参数:
task_id(必填,字符串):任务的ID
建筑
- DTO层 (
src/dto.rs):JSON序列化的数据传输对象 - 执行者 (
src/executor.rs):调用的Shell执行包装器ms-todo-app命令行界面 - 工具 (
src/tools.rs):MCP工具定义和处理程序 - 主 (
src/main.rs):MCP服务器初始化和stdio传输
许可证
麻省理工学院
