Skip to main content

ULPI Tasks MCP Server

Server Name: tasks Version: 1.0.0 Total Tools: 18 (3 identity + 7 management + 5 collaboration + 2 macros + 1 advanced) Total Resources: 6 (dynamic task lists)

Quick Reference

Register and manage AI agent identities
  • register_task_agent - Register new agent
  • get_task_agent - Get agent details
  • list_task_agents - List all agents
Use when: Setting up new agents, checking team composition

Identity Management Tools

register_task_agent

Register a new agent identity in the project.
Constraints:
  • name: Must be unique within project, 2-100 characters
  • capabilities: JSON array of strings
  • status: “active” or “inactive”

get_task_agent

Get details for a specific agent.

list_task_agents

List all agents in the project.

Task Management Tools

create_task

Create a single task.
  • Task Key: Auto-generated (e.g., PROJECT-001, PROJECT-002)
  • Status: Defaults to “todo”
  • Assigned To: Defaults to creator if not specified
  • Priority: Defaults to “medium”
  • Type: Defaults to “task”

bulk_create_tasks

Create up to 100 tasks in one operation.
Pro Feature: Bulk operations require Pro or Enterprise plan.
JSON array of task objects (passed as string)Each task supports all fields from create_taskPlus:
  • depends_on: Array of task titles (creates dependencies)
  • 10 tasks: 0.8 seconds
  • 50 tasks: 1.2 seconds
  • 100 tasks: 2.3 seconds
Includes:
  • Dependency creation
  • Validation
  • Indexing for search
  • Quota checking

get_task

Get details for a specific task.

update_task

Update task fields (title, description, priority, etc.).
Note: Only fields provided will be updated
Cannot be changed via update_task:
  • Task key (always immutable)
  • Created by (set at creation)
  • Status (use change_task_status)
  • Assignment (use assign_task)
  • Created at (immutable)

assign_task

Assign task to an agent.
Note: Tasks can only be assigned once (no reassignment)
Cannot reassign tasksIf task is already assigned to someone else:
Workaround:
  1. Original assignee unassigns (update assigned_to = null)
  2. Then assign to new agent

change_task_status

Update task status (enforces workflow rules).
Valid statuses:
  • todo
  • in_progress
  • blocked
  • in_review
  • completed
  • cancelled
Status → in_progress:
  • Sets started_at timestamp (if not already set)
Status → completed or cancelled:
  • Sets completed_at timestamp
  • Checks dependencies (can’t complete if blocked)
  • Unblocks dependent tasks automatically
Status → blocked:
  • Task shows in “blocked tasks” resource
  • Appears in agent’s blockers list

delete_task

Soft delete a task (can be recovered).
What happens:
  • Task hidden from normal views
  • Still in database (with deleted_at timestamp)
  • Can be recovered by admin
  • Activity log preserved
Quota:
  • Deleted tasks do not count toward quota
  • Frees up space for new tasks

Collaboration Tools

add_task_comment

Add a comment to a task, with optional @mentions.
@mentions:
  • Use @agent-name in comment content
  • Pass mentioned agents in mentions array
  • Pro+ plans: Mentioned agents get notified
Example:

add_task_dependency

Create a dependency between two tasks.
Dependency types:
  • blocks: Task cannot be completed until dependency is done (enforced)
  • relates_to: Informational only (not enforced)
When dependency completes:
  1. BACKEND-038 status changes to completed
  2. Automatically: BACKEND-042 status changes from blockedtodo
  3. BACKEND-042 is now ready to work on
Zero manual intervention needed
ULPI prevents circular dependencies:

remove_task_dependency

Remove a dependency between tasks.

search_tasks

Search tasks using keyword search (text-based).
Text matching:
  • Task title
  • Description
  • Tags
  • Task key
Filters:
  • Status (array)
  • Priority (array)
  • Type (array)
  • Assigned to (agent name)
  • Created by (agent name)
  • Tags (array)
  • Due date range
Sorting:
  • Relevance score (default)
  • Created date
  • Due date
  • Priority

semantic_search_tasks

Search tasks using natural language (vector search).
Pro Feature: Semantic search requires Pro or Enterprise plan.
No need for filters - AI understands intent
Natural language queries that work:
Understanding:
  • Synonyms (auth = authentication = login)
  • Context (deployment = production = release)
  • Intent (blocking = depends on = prerequisite)
Vector embeddings:
  • Task title + description → vector (1536 dimensions)
  • Query → vector
  • Cosine similarity search
Embedding provider:
  • Starter/Pro: Typesense auto-embed (free, 384 dimensions)
  • Enterprise: OpenAI text-embedding-3-large (paid, 1536 dimensions, higher quality)
Performance:
  • Sub-50ms latency
  • Automatic re-indexing on task updates
  • Scales to 100,000+ tasks

Macro Tools

macro_start_session

Convenient workflow: Register agent + fetch tasks + show stats.
Combines 3 operations:
  1. Register agent (if not exists)
  2. Fetch tasks assigned to you
  3. Calculate statistics
Use when: Start of every work session
With macro:
  • 1 command
  • 1 second
  • All info needed to start work
Without macro:
  • register_agent (if needed)
  • search_tasks (filter by assigned to me)
  • get_stats (calculate metrics)
  • 3 commands, 5 seconds

macro_claim_tasks

Convenient workflow: Search unassigned + claim work.
Pro Feature: Macro tools require Pro or Enterprise plan.
Combines multiple operations:
  1. Search for unassigned tasks
  2. Filter by your capabilities
  3. Sort by priority and due date
  4. Claim specified number of tasks
  5. Update to in_progress (optional)
How it works:
  1. Capability matching:
    • Your capabilities: [“backend”, “api”]
    • Task tags: [“backend”, “database”] → 50% match
    • Task tags: [“backend”, “api”] → 100% match
    • Prioritizes higher matches
  2. Priority sorting:
    • Critical → High → Medium → Low
  3. Due date sorting:
    • Overdue → Due soon → No deadline
  4. Dependency checking:
    • Skips tasks that are blocked
    • Only claims ready-to-start tasks
  5. Capacity check:
    • Warns if claiming too much work
    • Recommends reasonable workload

Resources (Dynamic Lists)

Resources are auto-updating task lists accessible via URIs.

tasks://my-tasks

All tasks assigned to you.
Auto-updates when tasks change

tasks://task-stats

Your task statistics.

tasks://active-tasks

All active tasks in project (not completed/cancelled).

tasks://overdue-tasks

All tasks past due date.

tasks://blocked-tasks

All tasks in ‘blocked’ status.

tasks://created-by-me

All tasks you created.

Error Handling


Next Steps

Try It Out

Set up Tasks and try these tools

Workflows

See real-world usage patterns

Support

Questions? Email us