Loading project...
# todoist-api-migration
**Status:** 🟢 Active
**Phase:** Operational
**Priority:** High
**Deadline:** Feb 10, 2026 (6 days)
**Last Activity:** 2026-02-04 (Reopened — mcporter reference cleanup across workspace)
---
## Linear Metadata
**Project ID:** `a3d22e22-af9a-4ee8-ac00-f2a1707aa5fb`
**Team ID:** `96b685fe-2252-47c5-97ee-273d8c484942`
**Last Synced:** `2026-02-06T13:24:03.260Z`
## ⚠️ CRITICAL ISSUE
The current `todoist-mcp` package uses **Todoist API v9**, which will be **permanently shut down on February 10, 2026** (6 days from now).
**Impact:**
- All Minna workflows broken (research, morning, evening, inbox processing)
- Cannot read/write tasks from OpenClaw
- Complete failure after Feb 10
---
## Current State
### What's Breaking
**Package:** `todoist-mcp` (deprecated)
- Uses Todoist API v9
- Stdio transport
- API key authentication
**Error Message:**
```
API error: API version 9 is deprecated and will be shut down on 2026-02-10. Please migrate to API v10.
```
---
## Migration Options
### Option 1: Hosted HTTP Server (Recommended)
**Use Doist's official hosted MCP server with OAuth**
```bash
mcporter config remove todoist
mcporter config add todoist --transport http https://ai.todoist.net/mcp
```
**Then follow OAuth flow to authenticate**
**Pros:**
- Official Doist solution
- HTTP transport (more reliable)
- OAuth authentication (more secure)
- No local process management
- Always up-to-date
**Cons:**
- Requires OAuth setup (browser authorization)
- Dependency on hosted service availability
---
### Option 2: Local npx Package
**Run the new package locally via npx**
```bash
mcporter config remove todoist
mcporter config add todoist --command "npx" --args "[\"@doist/todoist-ai\"]"
```
**Pros:**
- Local control
- No network dependency for the server itself
- Can pin version
**Cons:**
- Stdio transport (less reliable than HTTP)
- Must manage local process
- Still uses network for Todoist API calls
---
## Comparison: Old vs New
| Feature | todoist-mcp (OLD) | @doist/todoist-ai (NEW) |
|---------|-------------------|-------------------------|
| API Version | v9 (deprecated) | v10 (current) |
| Transport | stdio | HTTP (hosted) or stdio (local) |
| Auth | API key | OAuth |
| Maintenance | Abandoned | Active (official) |
| MCP Protocol | Early version | Latest spec |
---
## Recommended Approach
**Use Option 1: Hosted HTTP Server**
1. Better reliability (HTTP vs stdio)
2. Official Doist support
3. OAuth is more secure long-term
4. No local process management
**Migration Steps:**
1. Update mcporter config:
```bash
mcporter config remove todoist
mcporter config add todoist --transport http https://ai.todoist.net/mcp
```
2. Complete OAuth authorization (browser popup)
3. Test with OpenClaw:
```bash
mcporter call todoist.getTasks --args '{"projectId": ""}'
```
4. Update any scripts/crons that rely on Todoist
5. Monitor for 24h to ensure stability
---
### Backlog (Intent Over Implementation Audit)
(All tasks complete)
## Risk Assessment
**Severity:** 🔴 **Critical**
- Complete Todoist integration failure after Feb 10
- All Minna workflows affected
- No graceful degradation
**Mitigation:**
- Migrate immediately (today/tomorrow)
- Test thoroughly before Feb 10 deadline
- Have rollback plan ready
**Timeline:**
- Feb 4-5: Migration + testing
- Feb 6-9: Monitor for issues
- Feb 10: API v9 shutdown (hard deadline)
---
## Related Systems
**Affected Components:**
- Minna Research cron (every 3 hours)
- Minna Morning briefing
- Minna Evening review
- All Todoist-based skills/workflows
- mcporter todoist server
**Testing Required:**
- Task retrieval (getTasks)
- Task creation (addTask)
- Task updates (updateTask)
- Project listing (getProjects)
- Label filtering
---
## Future Work: Extensions & Enhancements
**Phase 2 (Post-Migration):**
Once the migration is stable, we can build a **local enhancement layer** that wraps the Todoist MCP server with custom capabilities:
### Extension Opportunities
**1. Local Caching Layer**
- Cache frequently-accessed tasks locally
- Build search index for faster queries
- Reduce API calls to Todoist
- Pre-fetch related data
**2. Computed Fields**
- `daysUntilDue` - Auto-calculate from due date
- `complexityScore` - Estimate based on content/labels/subtasks
- `estimatedDuration` - ML-based prediction
- `priorityScore` - Custom priority algorithm combining due date, priority, project
- `ageInDays` - Time since task created
**3. Cross-System Integration**
- Link tasks to related emails (from relationship-archaeology)
- Connect tasks to project files in workspace
- Sync with calendar events
- Link to GitHub issues/PRs
**4. Local Metadata Database**
- Store custom fields Todoist doesn't support
- Track time spent on tasks (local timer)
- Store task history/versions
- Custom tags and categorization
**5. Smart Batch Operations**
- Intelligent batching of API calls
- Transaction-like operations with rollback
- Bulk updates with validation
- Scheduled batch processing
**6. Advanced Analytics**
- Task completion patterns
- Productivity metrics
- Project velocity tracking
- Workload forecasting
### Architecture Approach
```
OpenClaw → mcporter → Hosted Todoist MCP (v10 API) → Todoist Cloud
↓
Custom Enhancement Service
- Local SQLite cache
- Computed field engine
- Cross-system linker
- Analytics pipeline
```
**Benefits:**
- Keeps MCP server simple and maintainable
- Extensions don't break if Doist updates MCP server
- Can use any language/framework for enhancements
- Easier to test and develop locally
**Implementation:**
- Build as Node.js service or Python module
- Expose via local API or direct function calls
- Hook into OpenClaw skills as needed
- Store data in SQLite for simplicity
---
## Related Projects
**Dependencies:**
- [minna-workflow-tuning](../minna-workflow-tuning/STATUS.md) - All Minna workflows depend on Todoist
- mcporter (todoist MCP server)
**Dependent Projects:**
- [minna-workflow-tuning](../minna-workflow-tuning/STATUS.md) - Blocked until migration complete
---
*Last updated: 2026-02-04 (migration approved, extensions planned)*