Skip to main content
Glama

get_big_picture

View all tasks in your stack to maintain work context, track progress with current task markers, and identify when all tasks are completed.

Instructions

See ALL tasks in your task stack (including completed ones). Shows full work context as a living document. Marks current task with 'YOU ARE HERE'. Indicates zen state when no tasks exist OR all tasks are completed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNoOutput formattext

Implementation Reference

  • Core implementation of get_big_picture: generates text or JSON overview of the entire task structure, marking the current task and handling zen state.
    def get_big_picture(self, format: str = "text") -> Any:
        if format == "json":
            tasks = []
            for main_task in self.global_tasks:
                task_data: Dict[str, Any] = {
                    "id": main_task.id,
                    "title": main_task.title,
                    "status": main_task.status.value,
                    "is_current": main_task == self.current_task,
                    "created_at": main_task.created_at.isoformat(),
                    "sub_tasks": [],
                }
                for sub_task in main_task.sub_tasks:
                    task_data["sub_tasks"].append(
                        {
                            "id": sub_task.id,
                            "title": sub_task.title,
                            "status": sub_task.status.value,
                            "is_current": sub_task == self.current_task,
                            "created_at": sub_task.created_at.isoformat(),
                        }
                    )
                tasks.append(task_data)
            return {"zen_state": self.is_zen_state, "tasks": tasks}
        else:  # text format
            lines = []
    
            for i, main_task in enumerate(self.global_tasks):
                status = main_task.status.value
                marker = " <-- YOU ARE HERE" if main_task == self.current_task else ""
                lines.append(f"{main_task.title} ({status}){marker}")
    
                for sub_task in main_task.sub_tasks:
                    status = sub_task.status.value
                    marker = (
                        " <-- YOU ARE HERE" if sub_task == self.current_task else ""
                    )
                    lines.append(f"  {sub_task.title} ({status}){marker}")
    
            if not lines:
                return "No tasks (zen state)"
            elif self.is_zen_state:
                return "\n".join(lines) + "\n\nAll tasks completed (zen state)"
            else:
                return "\n".join(lines)
  • Tool handler wrapper that invokes TaskManager.get_big_picture and wraps the result for JSON/text formats.
    async def handle_get_big_picture(self, format: str = "text") -> Dict[str, Any]:
        result = self.task_manager.get_big_picture(format)
        if format == "json":
            return result  # type: ignore
        else:
            return {"structure": result}
  • Input schema definition for the get_big_picture tool, including optional format parameter.
        name="get_big_picture",
        description="See ALL tasks in your task stack (including completed ones). Shows full work context as a living document. Marks current task with 'YOU ARE HERE'. Indicates zen state when no tasks exist OR all tasks are completed.",
        inputSchema={
            "type": "object",
            "properties": {
                "format": {
                    "type": "string",
                    "enum": ["text", "json"],
                    "description": "Output format",
                    "default": "text",
                }
            },
        },
    ),
  • src/server.py:56-58 (registration)
    Registration of the get_big_picture tool in the MCP server handler map.
    "get_big_picture": lambda: handlers.handle_get_big_picture(
        arguments.get("format", "text")
    ),
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses behavioral traits: output includes 'current task with 'YOU ARE HERE'' marking and 'zen state when no tasks exist OR all tasks are completed', which are useful context. However, it doesn't mention permissions, rate limits, or what 'zen state' entails (e.g., empty response vs message), leaving some gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by clarifying details. Each sentence adds value (e.g., 'living document', 'YOU ARE HERE', 'zen state') without redundancy, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does well by explaining key behavioral aspects (marking current task, zen state) and scope (ALL tasks, full context). However, for a tool with 1 parameter and no output schema, it could more fully describe the output format or examples, though the parameter covers format options. It's largely complete but has minor gaps in output details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'format' fully documented in the schema (enum: text/json, default: text). The description adds no parameter-specific information beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'see' and resource 'ALL tasks in your task stack (including completed ones)', specifying scope comprehensively. It distinguishes from siblings like get_current_task (single task), get_completed_tasks (only completed), and get_stack_overview (likely summary vs full context) by emphasizing 'ALL tasks' and 'full work context as a living document'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: 'See ALL tasks... Shows full work context' suggests it's for comprehensive review, and 'Marks current task with 'YOU ARE HERE'' indicates it helps orient within the stack. However, it doesn't explicitly state when to use this vs alternatives like get_stack_overview or peek_context, nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cheezcake/aidderall_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server