A complete, unofficial Model Context Protocol (MCP) server for TickTick that runs in Docker.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http counts 25 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_tag_to_task
-
complete_task
-
create_note
-
create_project
-
create_tag
-
create_task
-
delete_note
-
delete_project
-
delete_tag
-
delete_task
-
get_note
-
get_project
-
get_task
-
list_columns
-
list_notes
-
list_project_members
-
list_projects
-
list_tags
-
list_tasks
-
remove_tag_from_task
-
rename_tag
-
set_task_parent
-
update_note
-
update_project
-
update_task
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 7aab959 · analyzer v33 · 2w ago
skills & prompt files 1
- agent-rules halfst-ticktick-mcp-7aab959/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 22
filesystem 5
- fs (weak) halfst-ticktick-mcp-7aab959/tests/test_client_auth.py :10
from pathlib import Path - fs (weak) halfst-ticktick-mcp-7aab959/tests/test_client_methods.py :11
from pathlib import Path - fs (weak) halfst-ticktick-mcp-7aab959/tests/test_config.py :9
from pathlib import Path - fs halfst-ticktick-mcp-7aab959/ticktick_mcp/client/session.py :20
from pathlib import Path - fs halfst-ticktick-mcp-7aab959/ticktick_mcp/config.py :23
from pathlib import Path
network 5
- net (weak) halfst-ticktick-mcp-7aab959/tests/test_client_auth.py :4
``httpx.MockTransport`` so the auth state machine is exercised deterministically. - net (weak) halfst-ticktick-mcp-7aab959/tests/test_client_live.py :14
from urllib.parse import quote - net halfst-ticktick-mcp-7aab959/ticktick_mcp/client/client.py :25
from urllib.parse import quote - net halfst-ticktick-mcp-7aab959/ticktick_mcp/client/session.py :23
import httpx - net halfst-ticktick-mcp-7aab959/ticktick_mcp/client/transport.py :19
import httpx
tool registrations 25
- create_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :45
- create_note halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :100
- create_project halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :132
- list_tasks halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :146
- get_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :180
- update_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :193
- set_task_parent halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :254
- complete_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :284
- delete_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :297
- get_project halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :311
- list_projects halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :324
- list_columns halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :337
- list_project_members halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :352
- update_project halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :367
- delete_project halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :388
- create_tag halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :401
- list_tags halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :415
- rename_tag halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :425
- delete_tag halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :446
- add_tag_to_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :459
- remove_tag_from_task halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :473
- get_note halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :489
- list_notes halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :502
- update_note halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :527
- delete_note halfst-ticktick-mcp-7aab959/ticktick_mcp/server/app.py :563
declared dependencies 4
- fastmcp@>=2.0
- httpx@>=0.27
- pydantic@>=2.6
- pytest@>=8.0