Lightweight project and task manager with MCP tools for Claude Code
Project description
taskflow-agent
Lightweight project and task manager with MCP tools for Claude Code.
SQLite backend, 23+ MCP tools, web UI with embedded AI chat, and a FastAPI REST API. Built as a self-hosted Asana replacement optimized for AI-assisted workflows.
Features
- 23+ MCP tools — projects, tasks, sections, goals, daily focus, search, views, repo integration, service lifecycle
- Web UI — dark-theme SPA with project boards, task details, inline editing
- AI chat — embedded Claude chat with workspace awareness, tool access, and persistent memory
- Daily focus — Today view with goals, focus list, and AI-assisted daily planning
- Goals — timeframe-scoped goals (day/week/month/quarter) that guide daily prioritization
- Agent memory — persistent context across chat sessions (preferences, decisions, patterns)
- Repo integration — read-only git status, recent commits, and TODOs across connected repos
- FTS search — full-text search across task names and notes
- Server-side chat storage — chat history persisted in SQLite with compaction
- Asana import — bulk import from Asana CSV exports
- Service management — start/stop the web server via MCP tools or Makefile
Quick Start
pip install -e ".[web]"
# Start the MCP server (for Claude Code)
taskflow
# Start the web UI
make serve # foreground
taskflow-web # via CLI
MCP Tools
Projects
| Tool | Description |
|---|---|
tf_list_projects |
List active projects with task counts |
tf_get_project |
Get project with sections and tasks |
tf_create_project |
Create a new project |
tf_update_project |
Update project fields |
tf_archive_project |
Archive a project |
Sections
| Tool | Description |
|---|---|
tf_create_section |
Add a section to a project |
tf_update_section |
Update section fields |
tf_move_section |
Reorder a section |
tf_delete_section |
Delete a section (tasks moved to Ungrouped) |
Tasks
| Tool | Description |
|---|---|
tf_list_tasks |
List tasks with filters |
tf_get_task |
Get task details with subtasks and tags |
tf_create_task |
Create a task |
tf_update_task |
Update task fields |
tf_complete_task |
Mark task completed |
tf_reopen_task |
Reopen a completed task |
tf_move_task |
Move task between projects/sections |
tf_delete_task |
Delete a task |
Goals & Daily Focus
| Tool | Description |
|---|---|
tf_create_goal |
Create a goal (day/week/month/quarter) |
tf_update_goal |
Update goal fields |
tf_goal_list |
List active goals |
tf_goal_complete |
Mark a goal complete |
tf_goal_reopen |
Reopen a goal |
tf_goal_remove |
Remove a goal |
tf_today |
Show today's focus list and goals |
tf_focus |
Pin a task to today's focus |
tf_unfocus |
Remove a task from today's focus |
tf_move_focus |
Reorder focus list |
Search & Views
| Tool | Description |
|---|---|
tf_search |
Full-text search across tasks |
tf_due_soon |
Tasks due within N days |
tf_overdue |
All overdue tasks |
tf_active |
Top tasks from each active project |
tf_backlog |
Open tasks in the general backlog |
Repo Integration
| Tool | Description |
|---|---|
tf_repo_list |
List connected git repos |
tf_repo_status |
Git status, commits, and TODOs for a repo |
Service Lifecycle
| Tool | Description |
|---|---|
tf_serve_status |
Check if web server is running |
tf_serve_start |
Start web server in background |
tf_serve_stop |
Stop web server |
MCP Registration
Add to ~/.claude.json:
{
"mcpServers": {
"taskflow": {
"type": "stdio",
"command": "path/to/venv/bin/python",
"args": ["-m", "src.server"],
"cwd": "path/to/taskflow"
}
}
}
Web UI
Start the web server on port 8787:
make serve # foreground, Ctrl-C to stop
make dev # with auto-reload
make status # check if running
make stop # stop the server
Or manage via MCP tools from Claude Code — ask Claude to "start the taskflow server."
Database
SQLite with WAL mode. Tables: projects, sections, tasks, tags, task_tags, tasks_fts (FTS5), goals, today_focus, chat_messages.
Database is created automatically on first run via db.init_db().
License
PolyForm Noncommercial 1.0.0 — free for personal and noncommercial use.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taskflow_agent-0.2.2.tar.gz.
File metadata
- Download URL: taskflow_agent-0.2.2.tar.gz
- Upload date:
- Size: 60.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6497ae46a4c58eba4cc6b0f1e3978d9e944d1d72a260d0094af50c2c4f9ac2a8
|
|
| MD5 |
d2613523542ed6d694b86dc2816b3dea
|
|
| BLAKE2b-256 |
109c8db6b301f546ea79a36f0bb7ec780419366bacc28a4a0b4ecc139461d82e
|
File details
Details for the file taskflow_agent-0.2.2-py3-none-any.whl.
File metadata
- Download URL: taskflow_agent-0.2.2-py3-none-any.whl
- Upload date:
- Size: 42.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38043f4628c3c07f051c851114d08346640c7188fa451f40b3bae1e878efac2d
|
|
| MD5 |
a5540939e45c61370c341e4b3e248162
|
|
| BLAKE2b-256 |
39deda7c7b44b5eeac328e850014f876fe3c5a5df919a25672fcc7689e6c66ab
|