@ticktick-ecosystem/mcp-server
README.md
# @ticktick-ecosystem/mcp-server
A Model Context Protocol (MCP) server for integrating TickTick task management with AI applications like Claude, ChatGPT, and other LLM-powered tools.
[](https://badge.fury.io/js/%40ticktick-ecosystem%2Fmcp-server)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
## โจ Features
### ๐ ๏ธ Tools (AI Actions)
- **Task Management**
- `create_task` - Create new tasks with due dates, priorities, and projects
- `get_tasks` - Retrieve tasks with filtering options
- `update_task` - Modify existing tasks
- `complete_task` - Mark tasks as completed
- `delete_task` - Remove tasks
- `search_tasks` - Search tasks by title or content
- `get_today_tasks` - Get today's scheduled tasks
- `get_overdue_tasks` - Get overdue tasks
- **Project Management**
- `get_projects` - List all projects
- `create_project` - Create new projects
- `update_project` - Modify project details
- `delete_project` - Remove projects
- `get_project_tasks` - Get tasks within a specific project
### ๐ Resources (Data Access)
- `ticktick://tasks/today` - Today's tasks
- `ticktick://tasks/overdue` - Overdue tasks
- `ticktick://tasks/completed` - Recently completed tasks
- `ticktick://projects/all` - All projects
- `ticktick://stats/summary` - Productivity statistics
### ๐ก Prompts (AI Assistance)
- `daily_planning` - AI-powered daily task planning
- `task_breakdown` - Break complex tasks into subtasks
- `priority_analysis` - Analyze and suggest task priorities
- `weekly_review` - Review productivity and plan ahead
- `project_planning` - Comprehensive project planning
## ๐ Quick Start
### Demo Mode (No Authentication Required)
Perfect for testing and evaluation:
```bash
# Clone and set up
git clone https://github.com/marketing-shibata50/ticktick-mcp.git
cd ticktick-mcp/ticktick-mcp-server
npm install
npm run build
# Run in demo mode
node dist/index.js --demo
```
### Claude Code CLI Integration (Demo Mode)
```bash
# Auto-configure for Claude Code CLI
node install-mcp.js
# Select "Demo Mode" option
# Start Claude Code CLI in your project
cd /your/project/directory
claude
```
### Claude Desktop Integration (Demo Mode)
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"ticktick-demo": {
"command": "node",
"args": ["/FULL/PATH/TO/ticktick-mcp-server/dist/index.js", "--demo"]
}
}
}
```
Restart Claude Desktop and start asking about your tasks!
## ๐ ๏ธ Step-by-Step Installation Guide
Choose your preferred installation method based on your use case:
### ๐ฏ Method A: Git Clone Installation (Recommended for Developers)
Perfect for customization, development, or local modifications:
#### Step 1: Clone Repository and Setup
```bash
# 1. Clone the repository
git clone https://github.com/marketing-shibata50/ticktick-mcp.git
# 2. Navigate to the directory
cd ticktick-mcp/ticktick-mcp-server
# 3. Install dependencies and build
npm install
npm run build
```
#### Step 2: Get TickTick API Credentials
1. Visit [TickTick Developer Portal](https://developer.ticktick.com/)
2. Login with your TickTick account
3. Click "Manage Apps" โ "+App Name"
4. Enter app name (e.g., "My Personal MCP Server")
5. Set redirect URI to: `http://localhost:3000/callback`
6. Copy your **Client ID** and **Client Secret**
#### Step 3: Production Setup (Real TickTick Data)
```bash
# 4. Run production setup (NOT demo mode)
node dist/index.js --setup
```
**Important**: Do NOT use `--demo` flag for production!
The interactive setup will:
1. **Prompt for API credentials** (Client ID & Secret from Step 2)
2. **Start OAuth server** on `http://localhost:3000`
3. **Open browser** for TickTick authorization
4. **Exchange authorization code** for access tokens
5. **Save configuration** to `~/.ticktick-mcp/config.json`
**Expected Output:**
```
๐ง TickTick MCP Server ใปใใใขใใใ้ๅงใใพใ...
๐ TickTick API่ช่จผๆ
ๅ ฑใฎๅๅพๆนๆณ๏ผ
Client ID ใๅ
ฅๅใใฆใใ ใใ: [your_client_id]
Client Secret ใๅ
ฅๅใใฆใใ ใใ: [your_client_secret]
๐ OAuth่ช่จผใ้ๅงใใพใ...
๐ ใใฉใฆใถใ้ใใพใ: http://localhost:3000
โ
่ช่จผๅฎไบ๏ผ่จญๅฎใไฟๅญใใใพใใ
```
#### Step 4: Test Production Installation
```bash
# 5. Test with real TickTick data
node dist/index.js
# or
npm start
```
**Verification Commands:**
```bash
# Check if configuration exists
ls ~/.ticktick-mcp/config.json
# View saved configuration
cat ~/.ticktick-mcp/config.json
# Test MCP server connection
npx @modelcontextprotocol/inspector node dist/index.js
```
**Expected Behavior:**
- โ
No authentication errors
- โ
Connects to your real TickTick account
- โ
Shows actual tasks and projects
#### Step 5: Claude Code CLI Setup (Automatic)
```bash
# 7. Auto-configure Claude Code CLI
node install-mcp.js
```
This will:
- โ
Create `.mcp.json` in your project root
- โ
Set up correct local paths automatically
- โ
Offer production and demo mode options
- โ
Handle all Claude Code CLI configuration
**For Claude Desktop users**, add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"ticktick": {
"command": "node",
"args": ["/FULL/PATH/TO/ticktick-mcp-server/dist/index.js"]
}
}
}
```
#### Step 6: Start Using with Claude Code CLI
```bash
# 8. Start Claude Code CLI in your project
cd /your/project/directory
claude
```
**Test with natural language:**
- "Show me my TickTick tasks for today"
- "Create a new task: Review quarterly budget"
- "What are my overdue tasks?"
- "Show me all projects"
๐ **You're now managing real TickTick data with AI!**
**For Claude Desktop users:**
1. Restart Claude Desktop
2. Use the same natural language commands
**Mode Summary:**
| Mode | Command | Data Source | Use Case |
|------|---------|-------------|----------|
| **Production** | `node dist/index.js` | Your real TickTick | Daily use |
| **Demo** | `node dist/index.js --demo` | Mock data | Testing only |
---
### ๐ Method B: Direct Download (Alternative)
Alternative method if you don't want to use git:
#### Step 1: Download Source
```bash
# 1. Download and extract
curl -L https://github.com/marketing-shibata50/ticktick-mcp/archive/main.zip -o ticktick-mcp.zip
unzip ticktick-mcp.zip
cd ticktick-mcp-main/ticktick-mcp-server
```
#### Step 2-6: Same as Method A
Follow Steps 2-6 from Method A (Git Clone Installation)
---
### ๐ญ Method C: Demo Mode (No Authentication)
Perfect for testing and evaluation:
#### Step 1: Quick Demo
```bash
# 1. Install and run demo instantly
npx @ticktick-ecosystem/mcp-server --demo
```
#### Step 2: Claude Desktop Demo Setup
```json
{
"mcpServers": {
"ticktick-demo": {
"command": "npx",
"args": ["@ticktick-ecosystem/mcp-server", "--demo"],
"env": {
"TICKTICK_DEMO_MODE": "true"
}
}
}
}
```
#### Step 3: Test Features
1. Restart Claude Desktop
2. Try: "Show me demo tasks"
3. Test all features with mock data
4. ๐ฏ **Evaluate before setting up real authentication**
---
## ๐ง Post-Installation Verification
### Verify Installation
```bash
# Check version (from ticktick-mcp-server directory)
node dist/index.js --version
# Test MCP connection
npx @modelcontextprotocol/inspector node dist/index.js --demo
```
### Common Setup Commands
```bash
# Re-run production setup if needed
node dist/index.js --setup
# Test production mode (real data)
node dist/index.js
# Test demo mode (mock data)
node dist/index.js --demo
# View saved configuration
cat ~/.ticktick-mcp/config.json
# Check version
node dist/index.js --version
```
### ๐ Production vs Demo Quick Reference
#### Production Mode (Real TickTick Data)
```bash
# Setup once (from project directory)
node dist/index.js --setup
# Daily usage
node dist/index.js
# Claude Desktop config
{
"mcpServers": {
"ticktick": {
"command": "node",
"args": ["/FULL/PATH/TO/ticktick-mcp-server/dist/index.js"]
}
}
}
```
#### Demo Mode (Mock Data - Testing Only)
```bash
# No setup needed (from project directory)
node dist/index.js --demo
# Claude Desktop config
{
"mcpServers": {
"ticktick-demo": {
"command": "node",
"args": ["/FULL/PATH/TO/ticktick-mcp-server/dist/index.js", "--demo"]
}
}
}
```
**โ ๏ธ Important**:
- **Production**: Uses your real TickTick account data
- **Demo**: Uses fake test data for evaluation only
## ๐ฆ Installation
```bash
npm install @ticktick-ecosystem/mcp-server
```
Or install globally:
```bash
npm install -g @ticktick-ecosystem/mcp-server
```
## ๐ง Authentication Setup (For Real Data)
### 1. Get TickTick API Credentials
1. Visit [TickTick Developer Portal](https://developer.ticktick.com/)
2. Create a new application
3. Note your Client ID and Client Secret
4. Set OAuth Redirect URL to: `http://localhost:3000/callback`
### 2. Environment Configuration
Create a `.env` file or set environment variables:
```bash
# Required
TICKTICK_CLIENT_ID=your_client_id_here
TICKTICK_CLIENT_SECRET=your_client_secret_here
# Optional (will be obtained through OAuth if not provided)
TICKTICK_REDIRECT_URI=http://localhost:3000/callback
TICKTICK_ACCESS_TOKEN=your_access_token_here
TICKTICK_REFRESH_TOKEN=your_refresh_token_here
```
### 3. Interactive Setup (Recommended)
```bash
# Install the package
npm install -g @ticktick-ecosystem/mcp-server
# Run interactive setup
npx @ticktick-ecosystem/mcp-server --setup
```
This will guide you through:
1. Getting TickTick API credentials
2. OAuth authorization flow
3. Automatic configuration saving to `~/.ticktick-mcp/config.json`
## ๐ฏ Usage Examples
### Creating Tasks with AI
```
User: "Create a task to review the quarterly budget report, due next Friday with high priority"
AI Response: "I'll create that task for you with high priority and set the due date for next Friday."
Result: New task created in TickTick with proper priority and due date
```
### Daily Planning
```
User: "Help me plan my day"
AI Response: Based on your current tasks, I recommend:
1. Morning: Focus on the quarterly budget review (high priority)
2. Afternoon: Team meeting preparation
3. Evening: Code review for the new feature
Would you like me to adjust any task priorities or deadlines?
```
### Project Management
```
User: "Show me all tasks in my 'Website Redesign' project that are overdue"
AI Response: [Lists overdue tasks with details and suggests next actions]
```
## ๐ง Configuration
### Demo Mode Features
- โ
No authentication required
- โ
Uses realistic mock data
- โ
All functions work with sample tasks and projects
- โ
Perfect for testing and evaluation
- โ
Safe for public demonstrations
### Production Mode Features
- ๐ Real-time TickTick synchronization
- ๐ OAuth 2.0 secure authentication
- ๐ Access to your actual tasks and projects
- ๐ Automatic token refresh
- ๐ Real productivity statistics
### Claude Desktop Configuration (Production)
```json
{
"mcpServers": {
"ticktick": {
"command": "npx",
"args": ["@ticktick-ecosystem/mcp-server"],
"env": {
"TICKTICK_CLIENT_ID": "your_client_id",
"TICKTICK_CLIENT_SECRET": "your_client_secret",
"TICKTICK_ACCESS_TOKEN": "your_access_token",
"TICKTICK_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
```
### Other MCP Clients
The server uses stdio transport and is compatible with any MCP-compliant client:
```bash
# For MCP Inspector
npx @modelcontextprotocol/inspector npx @ticktick-ecosystem/mcp-server --demo
# For custom integrations
npx @ticktick-ecosystem/mcp-server
```
## ๐ API Reference
### Task Priority Levels
- `0` - None
- `1` - Low
- `3` - Medium
- `5` - High
### Date Formats
- Due dates: ISO format (`YYYY-MM-DD` or `YYYY-MM-DDTHH:mm:ss`)
- All dates are in UTC unless timezone is specified
### Response Format
All tools return structured responses:
**Success:**
```json
{
"success": true,
"data": { ... },
"message": "Operation completed successfully"
}
```
**Error:**
```json
{
"success": false,
"error": "Error description"
}
```
## ๐งช Testing
```bash
# Quick demo test
npm run demo
# With MCP Inspector
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector npx @ticktick-ecosystem/mcp-server --demo
```
See [TESTING.md](TESTING.md) for comprehensive testing instructions.
## ๐ Security & Privacy
- OAuth 2.0 secure authentication
- Tokens stored locally only
- No data collection or telemetry
- Open source and auditable
- Demo mode uses no real data
## ๐ ๏ธ Development
```bash
# Clone repository
git clone https://github.com/ticktick-ecosystem/mcp-server
cd mcp-server
# Install dependencies
npm install
# Build
npm run build
# Development mode
npm run dev
# Run tests
npm test
# Demo mode
npm run demo
```
## ๐ Documentation
- [Authentication Guide](AUTHENTICATION.md) - Detailed authentication setup
- [Testing Guide](TESTING.md) - Comprehensive testing instructions
- [MCP Protocol](https://modelcontextprotocol.io/) - Learn about Model Context Protocol
- [TickTick API](https://developer.ticktick.com/) - Official TickTick API documentation
## ๐ค Contributing
We welcome contributions! Please see our contributing guidelines:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Support
- ๐ [Documentation](https://github.com/ticktick-ecosystem/mcp-server#readme)
- ๐ [Issue Tracker](https://github.com/ticktick-ecosystem/mcp-server/issues)
- ๐ฌ [Discussions](https://github.com/ticktick-ecosystem/mcp-server/discussions)
## ๐ Related Projects
- [Model Context Protocol](https://modelcontextprotocol.io/) - The protocol this server implements
- [TickTick](https://ticktick.com/) - The task management platform
- [Claude Desktop](https://claude.ai/desktop) - AI assistant with MCP support
- [MCP Inspector](https://github.com/modelcontextprotocol/inspector) - Tool for testing MCP servers
## ๐ Acknowledgments
- [Anthropic](https://anthropic.com/) for developing the Model Context Protocol
- [TickTick](https://ticktick.com/) for providing the task management API
- The MCP community for feedback and contributions
---
**Made with โค๏ธ for the TickTick and MCP communities**
๐ **Ready to supercharge your productivity with AI-powered task management!**This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues