使用说明
Todoist MCP服务器
一个模型上下文协议(MCP)服务器,将Todoist与Claude和其他人工智能助手集成在一起。通过对话式人工智能直接管理您的任务、项目和标签。
特性
资源(只读数据)
todoist://tasks/active-所有活动(未完成)任务todoist://tasks/today-今天到期的任务todoist://projects-所有项目todoist://labels-所有标签
工具(动作)
create_task-创建带有标题、项目、标签、优先级和截止日期的新任务update_task-更新现有任务属性complete_task-将任务标记为已完成get_task-获取特定任务的详细信息list_tasks-使用筛选器列出任务create_project-创建新项目add_comment-向任务添加评论
安装
先决条件
- Node.js 18+(或使用asdf/mise)
- Todoist帐户
- Todoist API令牌(在这里买你的)
设置
-
克隆存储库
git clone https://github.com/jimdaga/todoist-mcp-server.git cd todoist-mcp-server -
安装依赖项
npm install -
配置环境变量
cp .env.example .env # Edit .env and add your TODOIST_API_TOKEN -
构建服务器
npm run build
用法
发展模式
在开发模式下运行服务器并自动重新加载:
npm run dev
生产模式
构建并运行:
npm run build
npm start
与Claude Code集成
将此配置添加到您的Claude Code MCP设置文件中:
macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"todoist": {
"command": "node",
"args": ["/absolute/path/to/todoist-mcp-server/dist/index.js"],
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}
或使用 npm run dev 发展:
{
"mcpServers": {
"todoist": {
"command": "npm",
"args": ["run", "dev"],
"cwd": "/absolute/path/to/todoist-mcp-server",
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}
发展
项目结构
todoist-mcp-server/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── todoist/
│ │ ├── client.ts # Todoist API wrapper
│ │ ├── types.ts # TypeScript types
│ │ └── schemas.ts # Zod validation schemas
│ ├── mcp/
│ │ ├── resources.ts # Resource handlers
│ │ ├── tools.ts # Tool handlers
│ │ └── prompts.ts # Prompt templates
│ └── utils/
│ ├── logger.ts # Logging utility (stderr only!)
│ ├── errors.ts # Error classes
│ └── config.ts # Environment config
├── tests/
│ └── integration.test.ts # Integration tests
├── package.json
├── tsconfig.json
└── README.md
开发命令
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode (auto-rebuild)
npm run watch
# Run in development mode
npm run dev
# Run built server
npm start
重要提示:日志记录
此MCP服务器使用STDIO传输。 所有日志记录必须转到stderr,永远不要stdout,以避免损坏协议流。记录器实用程序(src/utils/logger.ts)自动处理此问题。
❌ 切勿使用: console.log()
✅ 始终使用: logger.info(), logger.debug(), logger.error()
环境变量
TODOIST_API_TOKEN(必需)-您的Todoist API代币LOG_LEVEL(可选)-日志记录级别:调试、信息、警告、错误(默认值:信息)
安全
- 永远不要承诺你的
.env文件 -它包含您的API令牌 - 将令牌存储在环境变量中或进行安全的秘密管理
- 这
.gitignore排除.env默认情况下
发展路线图
- [x] 第一阶段: 项目设置和基础设施
- [ ] 第二阶段: Todoist API集成
- [ ] 第三阶段: MCP资源实施
- [ ] 第四阶段: MCP工具实施
- [ ] 第五阶段: 测试和文件
- [ ] 第6阶段: 波兰语和最佳实践
贡献
欢迎投稿!这是一个了解MCP服务器开发的学习项目。
许可证
麻省理工学院
