{"name":"io.github.evalor/dida365","slug":"evalor-dida365","title":null,"description":"MCP Server for Dida365 (TickTick) Task Management Integration","url":"https://mcp.market/server/evalor-dida365","rating":null,"grade":"C","score":66,"certified":false,"status":"active","category":"productivity","tags":["productivity"],"presence":{"score":10,"stars":4,"forks":1,"downloads_week":null,"last_push_at":"2025-11-26T02:42:01.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/evalor/Dida365MCP","website":null,"version":"0.2.2","remotes":[],"packages":[{"registryType":"npm","identifier":"dida365-mcp-server","version":"0.2.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"OAuth2 Client ID for Dida365/TickTick API","isRequired":true,"format":"string","isSecret":true,"name":"DIDA365_CLIENT_ID"},{"description":"OAuth2 Client Secret for Dida365/TickTick API","isRequired":true,"format":"string","isSecret":true,"name":"DIDA365_CLIENT_SECRET"},{"description":"Region for the service (china or international)","format":"string","name":"DIDA365_REGION"}]}],"tools":[{"name":"check_auth_status","description":"Use when the user asks about being authorized (e.g. 'am I authorized', 'auth status', 'check auth'), or when deciding whether protected Dida365 operations can proceed and current state is unclear. Avoid repeated calls if status already known in the current conversation turn. Restricted to Dida365 MCP authorization context only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete_task","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_project","description":"Create a new project (folder/list) for organizing tasks. WHEN TO USE: - User wants to create a new task list, folder, or project - Organizing tasks into categories or areas REQUIRED: name (project title) OPTIONAL: - color: Hex color code (e.g., '#F18181') - viewMode: 'list' (default), 'kanban', or 'timeline' - kind: 'TASK' (default) for tasks, 'NOTE' for notes - sortOrder: Position in project list","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_task","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_project","description":"Permanently delete a project and all its contents. ⚠️ DESTRUCTIVE: This action cannot be undone. All tasks within the project will also be deleted. WHEN TO USE: - User explicitly requests to delete a project - Cleaning up unused/empty projects WHEN NOT TO USE: - Just archiving or hiding a project (not supported) - Moving tasks to another project first → use 'update_task' REQUIRED: projectId","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_task","description":"Permanently delete one or more tasks. Supports batch deletion. ⚠️ DESTRUCTIVE: This action cannot be undone! WHEN TO USE: - User explicitly requests to remove/delete a task - Cleaning up unwanted tasks WHEN NOT TO USE: - Complete a task → use 'complete_task' - Archive a task (not supported by API) REQUIRED (per task): - projectId: Project containing the task - taskId: Task to delete INPUT FORMAT: ","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_auth_url","description":"Use ONLY when a Dida365 MCP tool (task/project operations) fails with an authorization/OAuth error (e.g. missing, expired, or invalid token), or the user explicitly asks to start/redo Dida365 authorization. Not for generic OAuth of other services. Provides a short‑lived URL (≈5 min) to open in a browser; starts a local callback server to capture the authorization code.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project","description":"Retrieve metadata for a single project by ID. WHEN TO USE: - Check project settings (name, color, viewMode, permissions) - Verify a project exists before operations - Get project metadata without loading tasks WHEN NOT TO USE: - Need tasks within the project → use 'get_project_data' or 'list_tasks' - Need to filter tasks by date/priority → use 'list_tasks' RETURNS: Project metadata only (id, name,","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project_data","description":"Retrieve complete project data including project details, tasks, and kanban columns. WHEN TO USE: - Get all uncompleted tasks within a specific project - Need project metadata AND tasks together - View kanban column structure for kanban-view projects WHEN NOT TO USE: - Only need project metadata → use 'get_project' (faster) - Filter tasks by date/priority/across projects → use 'list_tasks' - Need ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_task","description":"Retrieve detailed information about a specific task. WHEN TO USE: - View complete task details (title, description, dates, priority) - Check task status before updating or completing - Verify a task exists WHEN NOT TO USE: - List multiple tasks → use 'list_tasks' - Get all tasks in a project → use 'get_project_data' or 'list_tasks' REQUIRED: projectId, taskId RESPONSE FIELDS: - content: Descriptio","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"Retrieve all projects (folders/lists) for the current user. WHEN TO USE: - Get an overview of all projects - Find a project ID before operating on tasks - Check project names, colors, and view modes RETURNS: Project list with id, name, color, viewMode, permissions, kind (TASK/NOTE). 💡 TIP: After getting the project list, use 'list_tasks' with projectId to get tasks, or 'get_project_data' for comp","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tasks","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"revoke_auth","description":"Use ONLY when the user explicitly requests to log out, revoke, reset, clear, or remove Dida365 authorization/tokens. Do NOT call for token refresh, generic OAuth logout of other services, or routine task operations. Clears stored tokens; user must re-authorize afterward.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_project","description":"Update an existing project's settings. WHEN TO USE: - Rename a project - Change project color, view mode, or type - Reorder projects in the list PARTIAL UPDATE: Only provide fields you want to change. Unspecified fields remain unchanged. REQUIRED: projectId OPTIONAL (at least one required): - name: New project name - color: New hex color (e.g., '#F18181') - viewMode: 'list', 'kanban', or 'timeline","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_task","description":"","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":66,"grade":"C","scanned_at":"2026-10-01T23:12:25.315Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-01T23:12:25.345Z","components":{"code":{"score":25,"max":25,"notes":["63 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":4,"max":15,"notes":["last push 310 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"dida365-mcp-server","version":"0.2.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2025-11-25T14:00:44.618Z","repositoryUrl":"git+https://github.com/evalor/Dida365MCP.git"}],"repo":{"found":true,"owner":"evalor","repo":"Dida365MCP","archived":false,"pushedAt":"2025-11-26T02:42:01Z","stars":4,"forks":1,"openIssues":7,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/26944445?v=4","ownerCreatedAt":"2017-04-05T23:41:22Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/26944445?v=4&s=128","source":"github"},"presence":{"stars":4,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2025-11-26T02:42:01.000Z","score":10}}}},"grade_history":[],"reviews":[]}