Skip to main content
Glama

step_by_step_analysis

Read-onlyIdempotent

Perform detailed step-by-step analysis of tasks to break down complex problems into manageable components for clear understanding.

Instructions

단계별|차근차근|하나씩|step by step|one by one|gradually - Perform detailed step-by-step analysis

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
taskYesTask to analyze step by step
contextNoAdditional context for the task
detailLevelNoLevel of detail

Implementation Reference

  • The core handler function that executes the step-by-step analysis tool logic. It generates a structured breakdown of the task into steps with actions, checkpoints, and estimates based on the detail level.
    export async function stepByStepAnalysis(args: { task: string; context?: string; detailLevel?: string }): Promise<ToolResult> {
      const { task, context = '', detailLevel = 'detailed' } = args;
      
      const stepCount = detailLevel === 'basic' ? 3 : detailLevel === 'detailed' ? 5 : 7;
      const stepAnalysis = {
        action: 'step_by_step_analysis',
        task,
        context,
        detailLevel,
        steps: Array.from({ length: stepCount }, (_, i) => {
          const stepNum = i + 1;
          return {
            stepNumber: stepNum,
            title: `Step ${stepNum}: ${task} - Phase ${stepNum}`,
            description: `Detailed analysis of ${task} in step ${stepNum}`,
            actions: [
              `Analyze requirements for step ${stepNum}`,
              `Identify dependencies and prerequisites`,
              `Execute the planned actions`,
              `Validate results and check for issues`,
              `Prepare for next step`
            ],
            checkpoints: [
              `Verify step ${stepNum} requirements are met`,
              `Confirm outputs are as expected`,
              `Check for any blocking issues`
            ],
            estimatedTime: detailLevel === 'comprehensive' ? `${stepNum * 10} minutes` : `${stepNum * 5} minutes`
          };
        }),
        summary: {
          totalSteps: stepCount,
          estimatedTotalTime: detailLevel === 'comprehensive' ? `${stepCount * 35} minutes` : `${stepCount * 20} minutes`,
          complexity: detailLevel === 'basic' ? 'low' : detailLevel === 'detailed' ? 'medium' : 'high'
        },
        status: 'success'
      };
      
      return {
        content: [{ type: 'text', text: `Task: ${task}\nDetail: ${detailLevel}\nSteps: ${stepCount}\n\n${stepAnalysis.steps.map(s => `Step ${s.stepNumber}: ${s.title}\n  Time: ${s.estimatedTime}\n  Actions: ${s.actions.join(', ')}\n  Checkpoints: ${s.checkpoints.join(', ')}`).join('\n\n')}\n\nTotal Time: ${stepAnalysis.summary.estimatedTotalTime} | Complexity: ${stepAnalysis.summary.complexity}` }]
      };
    }
  • The ToolDefinition object providing the schema, description, input validation, and annotations for the step_by_step_analysis tool.
    export const stepByStepAnalysisDefinition: ToolDefinition = {
      name: 'step_by_step_analysis',
      description: '단계별|차근차근|하나씩|step by step|one by one|gradually - Perform detailed step-by-step analysis',
      inputSchema: {
        type: 'object',
        properties: {
          task: { type: 'string', description: 'Task to analyze step by step' },
          context: { type: 'string', description: 'Additional context for the task' },
          detailLevel: { type: 'string', description: 'Level of detail', enum: ['basic', 'detailed', 'comprehensive'] }
        },
        required: ['task']
      },
      annotations: {
        title: 'Step-by-Step Analysis',
        audience: ['user', 'assistant'],
        readOnlyHint: true,
        destructiveHint: false,
        idempotentHint: true,
        openWorldHint: false
      }
    };
  • src/index.ts:191-194 (registration)
    Registration of the stepByStepAnalysis handler in the toolHandlers object, which is used for dynamic dispatch during tool calls.
    'create_thinking_chain': createThinkingChain,
    'analyze_problem': analyzeProblem,
    'step_by_step_analysis': stepByStepAnalysis,
    'format_as_plan': formatAsPlan,
  • src/index.ts:126-129 (registration)
    Inclusion of the stepByStepAnalysisDefinition in the tools array, used by the server to list available tools.
    createThinkingChainDefinition,
    analyzeProblemDefinition,
    stepByStepAnalysisDefinition,
    formatAsPlanDefinition,
  • src/index.ts:38-38 (registration)
    Import statement bringing in the tool definition and handler function for use in the main server index.
    import { stepByStepAnalysisDefinition, stepByStepAnalysis } from './tools/thinking/stepByStepAnalysis.js';
Behavior3/5

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

Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, indicating a safe, repeatable, and bounded operation. The description adds minimal behavioral context with 'detailed' and 'step-by-step', but doesn't elaborate on aspects like output format, error handling, or performance characteristics. It doesn't contradict annotations, so it meets the lower bar with annotations present.

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

Conciseness2/5

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

The description is a single run-on phrase with redundant synonyms ('단계별|차근차근|하나씩|step by step|one by one|gradually'), which adds noise without value. It's front-loaded but inefficient, wasting space on repetition rather than providing clear, actionable information. The structure lacks coherence and could be more streamlined.

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

Completeness2/5

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

Given the tool has no output schema and annotations cover basic safety, the description should explain what the analysis produces (e.g., a list of steps, a report). It fails to do so, leaving gaps in understanding the tool's output. For a 3-parameter tool with siblings offering similar analyses, this incompleteness reduces its utility for an agent.

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 clear descriptions for 'task', 'context', and 'detailLevel' (including enum values). The description adds no parameter-specific information beyond what the schema provides, such as examples or usage tips. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract.

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

Purpose2/5

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

The description is tautological, essentially restating the tool name 'step_by_step_analysis' with synonyms like 'step by step' and 'one by one'. It mentions 'Perform detailed step-by-step analysis' but lacks specificity about what kind of analysis or what resource it operates on. Compared to siblings like 'analyze_complexity' or 'analyze_dependency_graph', it doesn't clearly distinguish its unique function.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. It doesn't specify scenarios, prerequisites, or exclusions. Given siblings like 'analyze_problem' and 'analyze_requirements', the description fails to help an agent decide when this tool is the appropriate choice, leaving usage ambiguous.

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/su-record/hi-ai'

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