██████╗███████╗██████╗ ███████╗██████╗ ██████╗ ██████╗
██╔════╝██╔════╝██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔═══██╗
██║ █████╗ ██████╔╝█████╗ ██████╔╝██████╔╝██║ ██║
██║ ██╔══╝ ██╔══██╗██╔══╝ ██╔══██╗██╔══██╗██║ ██║
╚██████╗███████╗██║ ██║███████╗██████╔╝██║ ██║╚██████╔╝
╚═════╝╚══════╝╚═╝ ╚═╝╚══════╝╚═════╝ ╚═╝ ╚═╝ ╚═════╝
MCP Task Manager — Connect your team's AI's
Team-based task management with MCP integration — connect your Claude AI to track and manage tasks across your organization.
Cerebro is a production-ready task management server that exposes a standardized Model Context Protocol (MCP) interface. Teams can connect their Claude AI instances to track tasks across projects, with support for multiple users and role-based access. Includes a modern admin dashboard for oversight.
Use cases: Track tasks across a company or project team, give each team member's AI assistant access to shared task data, manage cross-user workflows.
Cerebro is a task management server that exposes a standardized MCP interface, allowing AI agents to create, track, and manage tasks through a clean REST API. It includes a modern admin dashboard for manual oversight.
Cerebro is very easy to deploy to Railway and will cost less than $5/month to run. Simply connect this repo and Railway will handle the rest.
Note: You need a dedicated public URL for the MCP OAuth flow to work. You cannot test it locally with Claude without running Claude in developer/MCP dev mode.
You can also easily deploy with Railway templates with this button below:
- Fork this Repo
- Make it Private
- Connect your Github to Railway and deploy
- Copy the .env.example to Railway vars and edit as need be.
- YOU need to pick either a Database Path or Databaase URL, the URL is setup in the .env.example file for Railway by default.
- Create the Postgress db in Railway and it should connect automatically.
# Install dependencies
bun install
# Set up environment
cp .env.example .env
# Edit .env with your database credentials
# Start the server
bun start
# or
bun run devThe server runs on http://localhost:3000 by default.
Cerebro exposes a full set of MCP tools that any connected AI agent (e.g. Claude) can call. Below is a reference of every tool, prompt, and resource available.
The recommended order of operations for an AI agent:
- Call
users_listto discover available team members. - Call
projects_list(orprojects_create) to find or create a project. - Add team members with
projects_assign_member. - Create tasks with
tasks_create— assign immediately or later withtasks_assign. - Progress tasks: pending → in_progress → completed (or cancelled) via
tasks_set_status. - Use
tasks_add_commentto log notes without changing status. - Use
tasks_set_dependenciesto declare blocking relationships. - Call
dashboard_getfor a high-level health check at any time.
| Tool | Description |
|---|---|
info |
Returns server metadata and caller identity. Call this first to orient the agent. |
dashboard_get |
Summary counts — tasks by status, projects, users, overdue, and due-soon items. |
| Tool | Description |
|---|---|
projects_create |
Create a new project. Params: name, description?. |
projects_list |
List all projects the caller belongs to, with member counts. |
projects_get |
Get a single project with its full member list and all tasks. Params: project_id. |
projects_assign_member |
Add a confirmed user to a project. Params: project_id, user_id, role? (owner | member). |
projects_remove_member |
Remove a user from a project. Params: project_id, user_id. |
projects_delete |
Permanently delete a project and all its tasks. Destructive. Params: project_id. |
| Tool | Description |
|---|---|
tasks_create |
Create a task. Params: project_id, title, description?, priority? (low | medium | high | urgent), assigned_to?, due_date? (ISO 8601). |
tasks_list |
List tasks with optional filters: project_id?, status?, assigned_to?. |
tasks_get |
Get a single task with its comments, blocks[], and blockedBy[]. Params: task_id. |
tasks_update |
Update a task's title, description, priority, or due_date. Params: task_id. |
tasks_set_status |
Change task status: pending | in_progress | completed | cancelled. Params: task_id, status. |
tasks_assign |
Bulk-assign tasks to a project member (or null to unassign). Params: task_ids[], user_id. |
tasks_delete |
Permanently delete a task. Destructive. Params: task_id. |
tasks_add_comment |
Append a timestamped comment to a task without changing its status. Params: task_id, content. |
tasks_set_dependencies |
Declare which tasks this task blocks. Full replace — pass the complete list each time, or [] to clear. Params: task_id, blocks_task_ids[]. |
| Tool | Description |
|---|---|
users_list |
List all confirmed, active users (id, name, username, role). Always call before assigning tasks. |
users_get |
Get a single user profile. Params: user_id. |
Note: AI agents cannot create or modify users. User management is handled by humans through the Admin UI.
Prompts are pre-built templates the AI can invoke for common workflows:
| Prompt | Description | Params |
|---|---|---|
daily_standup |
Generates a standup summary — in-progress tasks, overdue items, and upcoming deadlines. | user_id? |
project_brief |
Structured brief for a project: goals, team, status breakdown, blockers, and next actions. | project_id |
assign_unassigned_tasks |
Suggests assignees for unassigned tasks based on team members and offers to execute the assignments. | project_id |
- Only confirmed, non-disabled users can be assigned to tasks or projects.
tasks_assignaccepts an array oftask_ids— you can bulk-assign in one call.tasks_set_dependenciesis a full replace — pass the complete desired list each time.- All mutations trigger resource-change notifications to subscribed clients.
- Every tool call is logged in the activity log (visible to admins).
- All data is scoped — agents only see projects they are a member of.
- Runtime: Bun
- Framework: Hono
- Database: SQLite (For Dev) | PostgreSQL (For Prod)
- MCP SDK: @modelcontextprotocol/sdk
MIT
