Skip to content

MCP: get_tasks returns full task content, overloading AI agent context #32

@JanJetze

Description

@JanJetze

Problem

The get_tasks MCP tool returns the complete content of every task, including all fields like description, context_summary, working_files, blockers, handoff_notes, activity_summary, etc.

When listing 50+ tasks, this generates a massive response that:

  1. Overloads AI agent context - Claude Code shows warnings about context size
  2. Wastes tokens - Most of the detailed content is never used when just browsing/filtering tasks
  3. Slows down responses - Large payloads take longer to process

Example response for a single task:

{
  "id": "task-7de80f57",
  "story_id": "story-6c734053",
  "title": "Add Recognizer field to Dependencies struct",
  "status": "todo",
  "task_type": "feature",
  "estimate_hours": 0.5,
  "description": "In services/genie/face/internal/deps.go, add `Recognizer *goface.Recognizer` field...",
  "context_summary": null,
  "working_files": null,
  "blockers": null,
  "handoff_notes": null,
  "progress_percent": 0,
  "actual_hours": null,
  "created_at": "2026-02-03T19:27:51.283Z",
  "updated_at": "2026-02-03T19:27:51.283Z",
  "created_by": null,
  "activity_summary": null,
  "story_title": null,
  "epic_id": null,
  "epic_title": null,
  "epic_priority": null
}

Multiply this by 50-100 tasks and the response becomes enormous.

Expected Behavior

get_tasks should return a summary view by default:

{
  "id": "task-7de80f57",
  "title": "Add Recognizer field to Dependencies struct",
  "status": "todo",
  "task_type": "feature",
  "estimate_hours": 0.5,
  "story_id": "story-6c734053",
  "progress_percent": 0
}

The full task details should only be fetched via get_task(task_id) when needed.

Suggested Solutions

Option A: Default to summary, add full parameter

get_tasks(status: "todo", full: true)  // returns all fields
get_tasks(status: "todo")              // returns summary only

Option B: Add fields parameter

get_tasks(status: "todo", fields: ["id", "title", "status", "description"])

Option C: Separate endpoints

  • get_tasks - always returns summary
  • get_tasks_full - returns complete content (for specific use cases)

Impact

This is particularly important for AI agent workflows where context window management is critical. The current behavior forces agents to consume significant context just to get a task list, leaving less room for actual work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions