Skip to main content
Glama
FradSer

Sequential Thinking Multi-Agent System

by FradSer

sequentialthinking

Breaks down complex problems into iterative reasoning steps, supporting revisions and branching with clear continuation signals until conclusion is reached.

Instructions

Multi-step sequential reasoning contract. Always treat this tool as iterative: after each response, read structuredContent.should_continue and continue calling until it is false. Actively use reflection: when a step reveals a flaw, explicitly send a revision step with isRevision=true. Input contract:

  • thought: one concrete reasoning step in natural language.

  • thoughtNumber: 1-based step index; increment by one for each new step.

  • totalThoughts: target number of steps for the current plan.

  • nextThoughtNeeded: true while the sequence should continue; false on final step.

  • isRevision: true only when revising an earlier conclusion.

  • branchFromThought + branchId: set together to explore an alternative branch.

  • needsMoreThoughts: true only when extending beyond totalThoughts. Output contract:

  • structuredContent.should_continue: canonical continuation signal.

  • structuredContent.next_thought_number: next recommended thoughtNumber.

  • structuredContent.stop_reason: canonical reason code for orchestration.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
thoughtYesCurrent reasoning step text. Keep this to one concrete step.
thoughtNumberYes1-based sequence index for this thought. Increment for each step.
totalThoughtsYesEstimated total number of steps in the current reasoning plan.
nextThoughtNeededYesSet true when another thought follows this one. Set false on the final thought.
isRevisionYesSet true only when this step revises an earlier conclusion.
branchFromThoughtYesOriginal thought number for branching. Null for the main path.
branchIdYesBranch identifier. Required when branchFromThought is not null.
needsMoreThoughtsYesSet true only when you must continue beyond totalThoughts.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
should_continueYesIf true, call sequentialthinking again. The tool is designed for multi-step reasoning loops.
next_thought_numberNoRecommended thoughtNumber for the next call. Null means no next step is currently required.
stop_reasonYesMachine-readable reason that explains why to continue or stop.
current_thought_numberYesEcho of the current thoughtNumber after normalization.
total_thoughtsYesEcho of current totalThoughts after normalization.
next_call_argumentsNoConcrete argument recommendations for the next call when the current run completes successfully and should continue.
parameter_usageYesContract reminders for each core parameter to keep multi-step iterations consistent.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed31 schema fields changedv0.8.0
    • addedInput schema / properties / branchFromThought
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Original thought number for branching. Null for the main path.",
      +  "title": "Branchfromthought"
      +}
    • addedInput schema / properties / branchId
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Branch identifier. Required when branchFromThought is not null.",
      +  "title": "Branchid"
      +}
    • removedInput schema / properties / branch_from
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Branch From"
      -}
    • removedInput schema / properties / branch_id
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Branch Id"
      -}
    • addedInput schema / properties / isRevision
      Added value: +{
      +  "description": "Set true only when this step revises an earlier conclusion.",
      +  "title": "Isrevision",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / is_revision
      Removed value: -{
      -  "default": false,
      -  "title": "Is Revision",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / needsMoreThoughts
      Added value: +{
      +  "description": "Set true only when you must continue beyond totalThoughts.",
      +  "title": "Needsmorethoughts",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / needs_more
      Removed value: -{
      -  "default": false,
      -  "title": "Needs More",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / nextThoughtNeeded
      Added value: +{
      +  "description": "Set true when another thought follows this one. Set false on the final thought.",
      +  "title": "Nextthoughtneeded",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / next_needed
      Removed value: -{
      -  "title": "Next Needed",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / revises_thought
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Revises Thought"
      -}
    • addedInput schema / properties / thought / description
      Added value: +"Current reasoning step text. Keep this to one concrete step."
    • addedInput schema / properties / thought / minLength
      Added value: +1
    • addedInput schema / properties / thoughtNumber
      Added value: +{
      +  "description": "1-based sequence index for this thought. Increment for each step.",
      +  "minimum": 1,
      +  "title": "Thoughtnumber",
      +  "type": "integer"
      +}
    • removedInput schema / properties / thought_number
      Removed value: -{
      -  "title": "Thought Number",
      -  "type": "integer"
      -}
    • addedInput schema / properties / totalThoughts
      Added value: +{
      +  "description": "Estimated total number of steps in the current reasoning plan.",
      +  "minimum": 1,
      +  "title": "Totalthoughts",
      +  "type": "integer"
      +}
    • removedInput schema / properties / total_thoughts
      Removed value: -{
      -  "title": "Total Thoughts",
      -  "type": "integer"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "thought",
      -  "thought_number",
      -  "total_thoughts",
      -  "next_needed"
      -]New value: +[
      +  "thought",
      +  "thoughtNumber",
      +  "totalThoughts",
      +  "nextThoughtNeeded",
      +  "isRevision",
      +  "branchFromThought",
      +  "branchId",
      +  "needsMoreThoughts"
      +]
    • addedInput schema / title
      Added value: +"sequentialthinkingArguments"
    • addedOutput schema / $defs
      Added value: +{
      +  "NextCallArguments": {
      +    "description": "Recommended arguments for the next tool call.",
      +    "properties": {
      +      "needsMoreThoughts": {
      +        "description": "Set to true only when you need to exceed totalThoughts and extend the sequence.",
      +        "title": "Needsmorethoughts",
      +        "type": "boolean"
      +      },
      +      "nextThoughtNeeded": {
      +        "description": "Set to true when another step should follow the next call. Set to false on the final thought.",
      +        "title": "Nextthoughtneeded",
      +        "type": "boolean"
      +      },
      +      "thoughtNumber": {
      +        "description": "Recommended thoughtNumber for the next tool call.",
      +        "minimum": 1,
      +        "title": "Thoughtnumber",
      +        "type": "integer"
      +      },
      +      "totalThoughts": {
      +        "description": "Recommended totalThoughts for the next tool call.",
      +        "minimum": 1,
      +        "title": "Totalthoughts",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "thoughtNumber",
      +      "totalThoughts",
      +      "nextThoughtNeeded",
      +      "needsMoreThoughts"
      +    ],
      +    "title": "NextCallArguments",
      +    "type": "object"
      +  },
      +  "StopReason": {
      +    "description": "Reason code for continuing or stopping thought iteration.",
      +    "enum": [
      +      "next_thought_required",
      +      "needs_more_thoughts",
      +      "thought_sequence_complete",
      +      "validation_error",
      +      "processing_error",
      +      "rate_limited",
      +      "request_too_large",
      +      "unexpected_error"
      +    ],
      +    "title": "StopReason",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / description
      Added value: +"Structured control fields returned on every tool response."
    • addedOutput schema / properties / current_thought_number
      Added value: +{
      +  "description": "Echo of the current thoughtNumber after normalization.",
      +  "minimum": 1,
      +  "title": "Current Thought Number",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / next_call_arguments
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/NextCallArguments"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Concrete argument recommendations for the next call when the current run completes successfully and should continue."
      +}
    • addedOutput schema / properties / next_thought_number
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Recommended thoughtNumber for the next call. Null means no next step is currently required.",
      +  "title": "Next Thought Number"
      +}
    • addedOutput schema / properties / parameter_usage
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Contract reminders for each core parameter to keep multi-step iterations consistent.",
      +  "title": "Parameter Usage",
      +  "type": "object"
      +}
    • removedOutput schema / properties / result
      Removed value: -{
      -  "title": "Result",
      -  "type": "string"
      -}
    • addedOutput schema / properties / should_continue
      Added value: +{
      +  "description": "If true, call sequentialthinking again. The tool is designed for multi-step reasoning loops.",
      +  "title": "Should Continue",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / stop_reason
      Added value: +{
      +  "$ref": "#/$defs/StopReason",
      +  "description": "Machine-readable reason that explains why to continue or stop."
      +}
    • addedOutput schema / properties / total_thoughts
      Added value: +{
      +  "description": "Echo of current totalThoughts after normalization.",
      +  "minimum": 1,
      +  "title": "Total Thoughts",
      +  "type": "integer"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "result"
      -]New value: +[
      +  "should_continue",
      +  "stop_reason",
      +  "current_thought_number",
      +  "total_thoughts",
      +  "parameter_usage"
      +]
    • changedOutput schema / title
      Previous value: -"sequentialthinkingOutput"New value: +"SequentialThinkingStructuredContent"
  2. First observedv1.0.0

TDQS

A4.5/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It discloses the iterative nature, revision mechanism, and output contract. It lacks explicit statements about side effects or auth but is sufficient for the intended reasoning use.

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

Conciseness4/5

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

The description is well-structured with clear sections (input contract, output contract) and front-loaded with the core concept. It is slightly lengthy but each sentence adds value, so it earns a 4.

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 the tool's complexity (8 required params, output schema), the description covers the input and output contracts, usage pattern, and corner cases like revision and branching. It is nearly complete, lacking only examples or defaults, which are covered by the schema.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all 8 parameters. The description adds value by contextualizing parameter usage, such as grouping branchFromThought and branchId, and clarifying that needsMoreThoughts extends beyond totalThoughts.

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 tool is a 'Multi-step sequential reasoning contract' and explains its iterative, revision, and branching capabilities. It is very specific and distinguishes itself by detailing the contract-like behavior.

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

Usage Guidelines5/5

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

The description explicitly instructs to treat the tool iteratively, read structuredContent.should_continue, and continue until false. It also specifies when to use revisions (when a flaw is revealed) and branching (with branchFromThought and branchId).

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/FradSer/mcp-server-mas-sequential-thinking'

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