qtask
AI-native task manager with an MCP server — connect it to Claude Desktop, Cursor, or any MCP client.
Documentation
QTask
Open-source task management with a built-in MCP server — connect Claude Desktop, Cursor, or any MCP client.
Works with: Claude Desktop · Cursor · Ollama (local agent)
Production: https://qtask.dev · MCP setup guide · User guide · Contribute on GitHub
- MCP server — list, create, and update tasks and projects from Claude Desktop, Cursor, or other MCP clients
- Staged writes — external AI proposes changes; you approve before they apply
- Semantic search — find tasks by meaning, not just keywords
- Self-hosted — your data stays on your infrastructure, with swappable AI backends (Ollama, MCP-compatible models)
Prerequisites
- Node.js 20+
- Docker (for MongoDB)
- Ollama with tool-capable models:
ollama pull qwen3.5:2b
ollama pull nomic-embed-textIf upgrading an existing install, set `OLLAMA_MODEL=qwen3.5:2b` in `.env` and pull the model above.
Quick start
docker compose up -d
cp .env.example .env
# Set JWT_SECRET in .env
# Optional: cp .env.local.example .env.local # secrets / overrides (gitignored)
npm install
npm install --prefix client
npm run dev:all- API: http://localhost:3000
- Web client: http://localhost:5173
Create an account on first visit. For local secrets (e.g. Resend API key), use `.env.local` — it overrides `.env` and is not committed. On the production server, put those values in `.env` instead (see **docs/DEPLOY.md**).
Documentation
| Doc | Audience |
|---|---|
| docs/MCP.md | External AI clients — start here for Claude Desktop & Cursor (API keys, OAuth, staging) |
| docs/USER_GUIDE.md | End users — projects, tasks, agent, sharing |
| docs/QTask_Product_Requirements.md | Product specification |
| docs/DEPLOY.md | Operators — local and production deployment |
In the web app, signed-in users can open Help from the account menu.
Scripts
| Command | Description |
|---|---|
| `npm run dev` | Backend API only |
| `npm run dev:client` | React web client only |
| `npm run dev:all` | Backend + web client |
| `npm run mcp` | MCP stdio server (local dev / Cursor) |
| `npm run mcp:bridge` | Stdio bridge to hosted `/api/mcp` |
| `npm test` | Run integration tests |
| `npm run build` | Build API |
| `npm start` | Start production API (serves web client) |
Authentication
Email/password accounts with JWT. All API routes except `/health` and `/api/auth/*` require `Authorization: Bearer `.
MCP in Cursor
Log in via the web client, copy your JWT, and set `MCP_JWT` in your Cursor MCP config. See `mcp-config.example.json`.
For hosted qtask.dev, create an MCP API key in Account menu → External AI (MCP) and use `npm run mcp:bridge`. See docs/MCP.md.
Frequently asked questions
What is qtask?
qtask is AI-native task manager with an MCP server — connect it to Claude Desktop, Cursor, or any MCP client.
How do I install qtask?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is qtask open source?
Yes — it is hosted on GitHub at https://github.com/dbeasty/qtask.
Related MCP tools
Model Context Protocol Servers
The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
MCP server to provide Figma layout information to AI coding agents like Cursor
The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.
Instant is the best backend for AI-coded apps. You get auth, permissions, storage, presence, and streams — everything you need to ship apps your users will love.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP