Use when complex problems require systematic step-by-step reasoning with the ability to revise thoughts, branch into alternative approaches, or dynamically adjust scope. Ideal for multi-stage analysis, design planning, problem decomposition, or tasks with an initially unclear scope.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
README.mdreferences/advanced.mdreferences/examples.mdThis skill enables structured problem-solving through iterative reasoning, with capabilities for revision and branching.
Use the reasoning.sequentialthinking tool when a problem requires multiple, interconnected reasoning steps, especially if the initial scope is uncertain or you may need to backtrack and revise earlier conclusions.
Don't use for: Simple queries, direct facts, or single-step tasks.
The MCP tool reasoning.sequentialthinking accepts the following parameters:
thought (string): The current reasoning step.nextThoughtNeeded (boolean): Whether more reasoning is needed.thoughtNumber (integer): The current step number (starts at 1).totalThoughts (integer): The estimated total number of steps needed.isRevision (boolean): Indicates this thought revises a previous one.revisesThought (integer): The thought number being reconsidered.thoughtNumber: 1).thought parameter and update the totalThoughts estimate. Set nextThoughtNeeded: true to continue the chain.nextThoughtNeeded: false.// First thought
await reasoning.sequentialthinking({
thought: "The problem involves optimizing database queries. The first step is to identify the primary bottlenecks.",
thoughtNumber: 1,
totalThoughts: 5,
nextThoughtNeeded: true
});
// Second thought
await reasoning.sequentialthinking({
thought: "Analysis of the query logs reveals a significant N+1 problem in the user data fetching endpoint.",
thoughtNumber: 2,
totalThoughts: 5, // Scope remains the same
nextThoughtNeeded: true
});
// ... continue until the final thought
await reasoning.sequentialthinking({
thought: "The solution is to refactor the endpoint to use a single join. No further thought is needed on this specific problem.",
thoughtNumber: 5,
totalThoughts: 5,
nextThoughtNeeded: false
});