sequentialthinking
An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.
An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.
An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.
Facilitates a detailed, step-by-step thinking process for problem-solving and analysis.
Inputs:
- thought
(string): The current thinking step
- nextThoughtNeeded
(boolean): Whether another thought step is needed
- thoughtNumber
(integer): Current thought number
- totalThoughts
(integer): Estimated total thoughts needed
- isRevision
(boolean, optional): Whether this revises previous thinking
- revisesThought
(integer, optional): Which thought is being reconsidered
- branchFromThought
(integer, optional): Branching point thought number
- branchId
(string, optional): Branch identifier
- needsMoreThoughts
(boolean, optional): If more thoughts are needed
The Sequential Thinking tool is designed for: - Breaking down complex problems into steps - Planning and design with room for revision - Analysis that might need course correction - Problems where the full scope might not be clear initially - Tasks that need to maintain context over multiple steps - Situations where irrelevant information needs to be filtered out
Add this to your claude_desktop_config.json
:
{
"mcpServers": {
"sequential-thinking": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sequential-thinking"
]
}
}
}
{
"mcpServers": {
"sequentialthinking": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"mcp/sequentialthinking"
]
}
}
}
Docker:
docker build -t mcp/sequentialthinking -f src/sequentialthinking/Dockerfile .
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
[
{
"description": "A detailed tool for dynamic and reflective problem-solving through thoughts.nThis tool helps analyze problems through a flexible thinking process that can adapt and evolve.nEach thought can build on, question, or revise previous insights as understanding deepens.nnWhen to use this tool:n- Breaking down complex problems into stepsn- Planning and design with room for revisionn- Analysis that might need course correctionn- Problems where the full scope might not be clear initiallyn- Problems that require a multi-step solutionn- Tasks that need to maintain context over multiple stepsn- Situations where irrelevant information needs to be filtered outnnKey features:n- You can adjust total_thoughts up or down as you progressn- You can question or revise previous thoughtsn- You can add more thoughts even after reaching what seemed like the endn- You can express uncertainty and explore alternative approachesn- Not every thought needs to build linearly - you can branch or backtrackn- Generates a solution hypothesisn- Verifies the hypothesis based on the Chain of Thought stepsn- Repeats the process until satisfiedn- Provides a correct answernnParameters explained:n- thought: Your current thinking step, which can include:n* Regular analytical stepsn* Revisions of previous thoughtsn* Questions about previous decisionsn* Realizations about needing more analysisn* Changes in approachn* Hypothesis generationn* Hypothesis verificationn- next_thought_needed: True if you need more thinking, even if at what seemed like the endn- thought_number: Current number in sequence (can go beyond initial total if needed)n- total_thoughts: Current estimate of thoughts needed (can be adjusted up/down)n- is_revision: A boolean indicating if this thought revises previous thinkingn- revises_thought: If is_revision is true, which thought number is being reconsideredn- branch_from_thought: If branching, which thought number is the branching pointn- branch_id: Identifier for the current branch (if any)n- needs_more_thoughts: If reaching end but realizing more thoughts needednnYou should:n1. Start with an initial estimate of needed thoughts, but be ready to adjustn2. Feel free to question or revise previous thoughtsn3. Don't hesitate to add more thoughts if needed, even at the "end"n4. Express uncertainty when presentn5. Mark thoughts that revise previous thinking or branch into new pathsn6. Ignore information that is irrelevant to the current stepn7. Generate a solution hypothesis when appropriaten8. Verify the hypothesis based on the Chain of Thought stepsn9. Repeat the process until satisfied with the solutionn10. Provide a single, ideally correct answer as the final outputn11. Only set next_thought_needed to false when truly done and a satisfactory answer is reached",
"inputSchema": {
"properties": {
"branchFromThought": {
"description": "Branching point thought number",
"minimum": 1,
"type": "integer"
},
"branchId": {
"description": "Branch identifier",
"type": "string"
},
"isRevision": {
"description": "Whether this revises previous thinking",
"type": "boolean"
},
"needsMoreThoughts": {
"description": "If more thoughts are needed",
"type": "boolean"
},
"nextThoughtNeeded": {
"description": "Whether another thought step is needed",
"type": "boolean"
},
"revisesThought": {
"description": "Which thought is being reconsidered",
"minimum": 1,
"type": "integer"
},
"thought": {
"description": "Your current thinking step",
"type": "string"
},
"thoughtNumber": {
"description": "Current thought number",
"minimum": 1,
"type": "integer"
},
"totalThoughts": {
"description": "Estimated total thoughts needed",
"minimum": 1,
"type": "integer"
}
},
"required": [
"thought",
"nextThoughtNeeded",
"thoughtNumber",
"totalThoughts"
],
"type": "object"
},
"name": "sequentialthinking"
}
]