Skip to main content
Glama
FradSer

Sequential Thinking Multi-Agent System

by FradSer

顺序思维多智能体系统(MAS)

铁匠徽章 Twitter 关注 Python 版本 框架

English |简体中文

该项目使用基于Agno框架构建并通过MCP提供服务的**多智能体系统 (MAS)**实现了先进的顺序思维过程。它通过利用协调一致的专用智能体进行更深入的分析和问题分解,代表了从简单的状态跟踪方法到更大规模的演进。

概述

该服务器提供了一个先进的顺序sequentialthinking工具,旨在解决复杂的问题。与前代产品不同,此版本采用了真正的多智能体系统 (MAS) 架构,其中:

  • 协调代理coordinate模式下的Team对象)管理工作流程。

  • 专门的代理(规划者、研究员、分析师、评论家、综合者)根据其定义的角色和专业知识处理特定的子任务。

  • 代理团队会主动处理、分析和综合传入的想法,而不仅仅是记录下来。

  • 该系统支持复杂的思维模式,包括修改先前的步骤和分支以探索替代路径。

  • Exa等外部工具的集成(通过研究人员代理)允许动态信息收集。

  • 强大的Pydantic验证可确保思考步骤的数据完整性。

  • 详细日志记录跟踪该过程,包括代理交互(由协调员处理)。

目标是通过利用专业角色协同工作的力量,实现比单个代理或简单状态跟踪更高质量的分析和更细致的思考过程。

Related MCP server: Sequential-Thinking

与原始版本(TypeScript)的主要区别

这个 Python/Agno 实现标志着与原始 TypeScript 版本的根本转变:

特征/方面

Python/Agno 版本(当前)

TypeScript 版本(原始)

建筑学

多代理系统(MAS) ;由一组代理主动处理。

单一类状态跟踪器;简单记录/存储。

智力

分布式代理逻辑;嵌入专门的代理和协调器。

仅限外部法学硕士;无内部情报。

加工

主动分析与综合;代理根据想法采取行动

被动记录;仅仅记录想法。

框架

Agno (MAS) + FastMCP (服务器) ;使用专用 MAS 库。

仅限 MCP SDK

协调

明确的团队协调逻辑Team处于coordinate模式)。

;没有协调概念。

验证

Pydantic Schema Validation ;强大的数据验证。

基本类型检查;可靠性较低。

外部工具

集成(通过研究员的 Exa) ;可以执行研究任务。

没有任何

日志记录

结构化 Python 日志记录(文件 + 控制台) ;可配置。

使用 Chalk 进行控制台记录;基本。

语言与生态系统

Python ;利用 Python AI/ML 生态系统。

TypeScript/Node.js

本质上,该系统从一个被动的思维记录器演变为一个由人工智能代理协作团队驱动的主动思维处理器

工作原理(坐标模式)

  1. **启动:**外部 LLM 使用sequential-thinking-starter提示来定义问题并启动流程。

  2. 工具调用: LLM 使用第一个(或后续)想法调用sequentialthinking工具,根据ThoughtData Pydantic 模型进行构建。

  3. **验证和日志记录:**该工具接收调用,使用 Pydantic 验证输入,记录传入的想法,并通过AppContext更新历史记录/分支状态。

  4. **协调器调用:**核心思想内容(以及有关修订/分支的上下文)被传递给SequentialThinkingTeamarun方法。

  5. 协调员分析与委派: Team (充当协调员)分析输入的想法,将其分解为子任务,并将这些子任务委派给最相关的专业代理(例如,分析任务的分析师、信息需求的研究人员)。

  6. **专家执行:**委托代理使用其指令、模型和工具(如ThinkingToolsExaTools )执行其特定的子任务。

  7. **答复收集:**专家将结果返回给协调员。

  8. **综合与指导:**协调员将专家的反馈整合成一份统一且连贯的成果。该成果可能包含基于专家发现(尤其是来自评论员和分析员的发现)的修改或分支建议。它还为法学硕士(LLM)的下一步思路提供指导。

  9. **返回值:**该工具返回一个 JSON 字符串,其中包含协调器的合成响应、状态和更新的上下文(分支、历史长度)。

  10. **迭代:**调用 LLM 使用协调员的响应和指导来制定下一个sequentialthinking工具调用,可能会根据建议触发修订或分支。

代币消耗警告

⚠️高令牌使用率:由于采用了多智能体系统架构,此工具比单智能体替代方案或之前的 TypeScript 版本消耗的令牌明显更多。每次sequentialthinking调用都会调用:

  • 协调员代理( Team本身)。

  • 多名专业代理(可能是规划师、研究员、分析师、评论家、合成师,取决于协调员的授权)。

与单智能体或状态跟踪方法相比,这种并行处理可以显著提高令牌使用率(每个思考步骤可能提高 3-6 倍或更多)。请根据实际情况制定预算和计划。此工具优先考虑**分析深度和质量,**而非令牌效率。

先决条件

  • Python 3.10+

  • 访问兼容的 LLM API(已针对agno配置)。系统目前支持:

    • **Groq:**需要GROQ_API_KEY

    • **DeepSeek:**需要DEEPSEEK_API_KEY

    • **OpenRouter:**需要OPENROUTER_API_KEY

    • 使用LLM_PROVIDER环境变量(默认为deepseek )配置所需的提供程序。

  • Exa API 密钥(仅在使用研究员代理的功能时需要)

    • 通过EXA_API_KEY环境变量设置。

  • uv包管理器(推荐)或pip

MCP 服务器配置(客户端)

此服务器以标准可执行脚本的形式运行,并通过 stdio 进行通信,这与 MCP 的预期一致。具体配置方法取决于您具体的 MCP 客户端实现。有关集成外部工具服务器的详细信息,请参阅客户端的文档。

MCP 客户端配置中的env部分应包含您选择的LLM_PROVIDER的 API 密钥。

{
  "mcpServers": {
      "mas-sequential-thinking": {
         "command": "uvx", // Or "python", "path/to/venv/bin/python" etc.
         "args": [
            "mcp-server-mas-sequential-thinking" // Or the path to your main script, e.g., "main.py"
         ],
         "env": {
            "LLM_PROVIDER": "deepseek", // Or "groq", "openrouter"
            // "GROQ_API_KEY": "your_groq_api_key", // Only if LLM_PROVIDER="groq"
            "DEEPSEEK_API_KEY": "your_deepseek_api_key", // Default provider
            // "OPENROUTER_API_KEY": "your_openrouter_api_key", // Only if LLM_PROVIDER="openrouter"
            "DEEPSEEK_BASE_URL": "your_base_url_if_needed", // Optional: If using a custom endpoint for DeepSeek
            "EXA_API_KEY": "your_exa_api_key" // Only if using Exa
         }
      }
   }
}

安装和设置

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装顺序思维多代理系统:

npx -y @smithery/cli install @FradSer/mcp-server-mas-sequential-thinking --client claude

手动安装

  1. 克隆存储库:

    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git
    cd mcp-server-mas-sequential-thinking
  2. **设置环境变量:**在项目根目录中创建一个.env文件或将变量直接导出到您的环境中:

    # --- LLM Configuration ---
    # Select the LLM provider: "deepseek" (default), "groq", or "openrouter"
    LLM_PROVIDER="deepseek"
    
    # Provide the API key for the chosen provider:
    # GROQ_API_KEY="your_groq_api_key"
    DEEPSEEK_API_KEY="your_deepseek_api_key"
    # OPENROUTER_API_KEY="your_openrouter_api_key"
    
    # Optional: Base URL override (e.g., for custom DeepSeek endpoints)
    # DEEPSEEK_BASE_URL="your_base_url_if_needed"
    
    # Optional: Specify different models for Team Coordinator and Specialist Agents
    # Defaults are set within the code based on the provider if these are not set.
    # Example for Groq:
    # GROQ_TEAM_MODEL_ID="llama3-70b-8192"
    # GROQ_AGENT_MODEL_ID="llama3-8b-8192"
    # Example for DeepSeek:
    # DEEPSEEK_TEAM_MODEL_ID="deepseek-chat" # Note: `deepseek-reasoner` is not recommended as it doesn't support function calling
    # DEEPSEEK_AGENT_MODEL_ID="deepseek-chat" # Recommended for specialists
    # Example for OpenRouter:
    # OPENROUTER_TEAM_MODEL_ID="deepseek/deepseek-r1" # Example, adjust as needed
    # OPENROUTER_AGENT_MODEL_ID="deepseek/deepseek-chat" # Example, adjust as needed
    
    # --- External Tools ---
    # Required ONLY if the Researcher agent is used and needs Exa
    EXA_API_KEY="your_exa_api_key"

    选型注意事项:

    • TEAM_MODEL_ID由协调员( Team对象)使用。此角色拥有强大的推理、综合和委托能力。建议在此使用更强大的模型(例如deepseek-chatclaude-3-opusgpt-4-turbo ),从而在性能与成本/速度之间取得平衡。

    • AGENT_MODEL_ID由专业代理(规划师、研究员等)使用。这些代理负责处理重点子任务。根据任务复杂性和预算/性能需求,速度更快或更经济高效的模型(例如deepseek-chatclaude-3-sonnetllama3-8b )可能更合适。

    • 如果未设置这些环境变量,则代码中(例如,在main.py中)会提供默认值。建议您进行实验,以找到适合您用例的最佳平衡点。

  3. **安装依赖项:**强烈建议使用虚拟环境。

    • 使用uv (推荐):

      # Install uv if you don't have it:
      # curl -LsSf https://astral.sh/uv/install.sh | sh
      # source $HOME/.cargo/env # Or restart your shell
      
      # Create and activate a virtual environment (optional but recommended)
      python -m venv .venv
      source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
      
      # Install dependencies
      uv pip install -r requirements.txt
      # Or if a pyproject.toml exists with dependencies defined:
      # uv pip install .
    • 使用pip

      # Create and activate a virtual environment (optional but recommended)
      python -m venv .venv
      source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
      
      # Install dependencies
      pip install -r requirements.txt
      # Or if a pyproject.toml exists with dependencies defined:
      # pip install .

用法

确保您的环境变量已设置并且虚拟环境(如果使用)处于活动状态。

运行服务器。选择以下方法之一:

  1. 使用uv run (推荐):

    uv --directory /path/to/mcp-server-mas-sequential-thinking run mcp-server-mas-sequential-thinking
  2. 直接使用 Python:

    python main.py

服务器将启动并通过 stdio 监听请求,使配置为使用该工具的兼容 MCP 客户端可以使用sequentialthinking工具。

sequentialthinking工具参数

该工具需要与ThoughtData Pydantic 模型匹配的参数:

# Simplified representation from src/models.py
class ThoughtData(BaseModel):
    thought: str                 # Content of the current thought/step
    thoughtNumber: int           # Sequence number (>=1)
    totalThoughts: int           # Estimated total steps (>=1, suggest >=5)
    nextThoughtNeeded: bool      # Is another step required after this?
    isRevision: bool = False     # Is this revising a previous thought?
    revisesThought: Optional[int] = None # If isRevision, which thought number?
    branchFromThought: Optional[int] = None # If branching, from which thought?
    branchId: Optional[str] = None # Unique ID for the new branch being created
    needsMoreThoughts: bool = False # Signal if estimate is too low before last step

与工具交互(概念示例)

LLM 将与该工具进行迭代交互:

  1. **LLM:**使用带有问题定义的启动提示(如sequential-thinking-starter )。

  2. **LLM:**使用thoughtNumber: 1 、初始thought (例如,“计划分析......”)、估计的totalThoughtsnextThoughtNeeded: True调用sequentialthinking工具。

  3. 服务器: MAS 处理想法。协调员整合专家的反馈并提供指导(例如,“分析计划已完成。建议下一步研究 X。暂无修改建议。”)。

  4. **LLM:**接收包含coordinatorResponse JSON 响应。

  5. **LLM:**根据coordinatorResponse制定下一个想法(例如,“使用可用工具研究 X...”)。

  6. **LLM:**使用thoughtNumber: 2调用sequentialthinking工具,即新的thought ,可能更新了totalThoughtsnextThoughtNeeded: True

  7. 服务器: MAS 处理。协调员进行综合(例如,“研究完成。研究结果表明,想法 1 的假设存在缺陷。建议:修改想法 1……”)。

  8. **LLM:**收到回复,注意到建议。

  9. **LLM:**制定修订思路。

  10. **LLM:**使用thoughtNumber: 3 、修订thoughtisRevision: TruerevisesThought: 1nextThoughtNeeded: True调用sequentialthinking工具。

  11. ...等等,根据需要可能分支或扩展流程。

工具响应格式

该工具返回一个 JSON 字符串,包含以下内容:

{
  "processedThoughtNumber": int,          // The thought number that was just processed
  "estimatedTotalThoughts": int,          // The current estimate of total thoughts
  "nextThoughtNeeded": bool,              // Whether the process indicates more steps are needed
  "coordinatorResponse": "...",           // Synthesized output from the agent team, including analysis, findings, and guidance for the next step.
  "branches": ["main", "branch-id-1"],  // List of active branch IDs
  "thoughtHistoryLength": int,          // Total number of thoughts processed so far (across all branches)
  "branchDetails": {
    "currentBranchId": "main",            // The ID of the branch the processed thought belongs to
    "branchOriginThought": null | int,    // The thought number where the current branch diverged (null for 'main')
    "allBranches": {                      // Count of thoughts in each active branch
      "main": 5,
      "branch-id-1": 2
     }
  },
  "isRevision": bool,                     // Was the processed thought a revision?
  "revisesThought": null | int,           // Which thought number was revised (if isRevision is true)
  "isBranch": bool,                       // Did this thought start a new branch?
  "status": "success | validation_error | failed", // Outcome status
  "error": null | "Error message..."     // Error details if status is not 'success'
}

日志记录

  • 日志默认写入~/.sequential_thinking/logs/sequential_thinking.log 。(配置可以在日志设置代码中调整)。

  • 使用 Python 的标准logging模块。

  • 包括旋转文件处理程序(例如,10MB 限制、5 个备份)和控制台处理程序(通常为 INFO 级别)。

  • 日志包括时间戳、级别、记录器名称和消息,包括正在处理的想法的结构化表示。

发展

  1. **克隆存储库:(**与安装中相同)

    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git
    cd mcp-server-mas-sequential-thinking
  2. **设置虚拟环境:(**推荐)

    python -m venv .venv
    source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
  3. **安装依赖项(包括 dev):**确保您的requirements-dev.txtpyproject.toml指定开发工具(如pytestruffblackmypy )。

    # Using uv
    uv pip install -r requirements.txt
    uv pip install -r requirements-dev.txt # Or install extras if defined in pyproject.toml: uv pip install -e ".[dev]"
    
    # Using pip
    pip install -r requirements.txt
    pip install -r requirements-dev.txt # Or install extras if defined in pyproject.toml: pip install -e ".[dev]"
  4. **运行检查:**执行 linters、格式化程序和测试(根据您的项目设置调整命令)。

    # Example commands (replace with actual commands used in the project)
    ruff check . --fix
    black .
    mypy .
    pytest
  5. **贡献:(**考虑添加贡献指南:分支策略、拉取请求流程、代码风格)。

执照

麻省理工学院

Available Tools

1 tool
sequentialthinkingA

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
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.

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.8.0
    • Changedsequentialthinking31 fields changed
      • 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. 1 tool updatev1.0.0
    • First observedsequentialthinking

TDQS

A4.7/5.0
Disambiguation5/5

Only one tool exists, so there is no possibility of ambiguity or confusion between tools.

Naming Consistency5/5

With a single tool, naming consistency is inherently perfect; the name clearly describes the action.

Tool Count5/5

One tool is appropriate for a focused multi-step reasoning system; the tool itself is complex and self-contained.

Completeness5/5

The tool covers the full sequential reasoning lifecycle including revision, branching, and extension, leaving no obvious gaps.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    An MCP server implementing the Unified Cognitive Processing Framework for advanced problem-solving, creative thinking, and cognitive analysis through structured tools for knowledge mapping, recursive questioning, and perspective generation.
    3
    16
    -
  • A
    license
    A
    quality
    D
    maintenance
    A MCP server that implements sequential thinking protocols, provides structured problem-solving methods, decomposes complex problems into manageable steps, and supports iterative optimization and alternative reasoning paths.
    1
    2
    Apache 2.0

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