Sequential Thinking Multi-Agent System
顺序思维多智能体系统(MAS)
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 。 |
协调 | 明确的团队协调逻辑( | 无;没有协调概念。 |
验证 | Pydantic Schema Validation ;强大的数据验证。 | 基本类型检查;可靠性较低。 |
外部工具 | 集成(通过研究员的 Exa) ;可以执行研究任务。 | 没有任何。 |
日志记录 | 结构化 Python 日志记录(文件 + 控制台) ;可配置。 | 使用 Chalk 进行控制台记录;基本。 |
语言与生态系统 | Python ;利用 Python AI/ML 生态系统。 | TypeScript/Node.js 。 |
本质上,该系统从一个被动的思维记录器演变为一个由人工智能代理协作团队驱动的主动思维处理器。
工作原理(坐标模式)
**启动:**外部 LLM 使用
sequential-thinking-starter提示来定义问题并启动流程。工具调用: LLM 使用第一个(或后续)想法调用
sequentialthinking工具,根据ThoughtDataPydantic 模型进行构建。**验证和日志记录:**该工具接收调用,使用 Pydantic 验证输入,记录传入的想法,并通过
AppContext更新历史记录/分支状态。**协调器调用:**核心思想内容(以及有关修订/分支的上下文)被传递给
SequentialThinkingTeam的arun方法。协调员分析与委派:
Team(充当协调员)分析输入的想法,将其分解为子任务,并将这些子任务委派给最相关的专业代理(例如,分析任务的分析师、信息需求的研究人员)。**专家执行:**委托代理使用其指令、模型和工具(如
ThinkingTools或ExaTools)执行其特定的子任务。**答复收集:**专家将结果返回给协调员。
**综合与指导:**协调员将专家的反馈整合成一份统一且连贯的成果。该成果可能包含基于专家发现(尤其是来自评论员和分析员的发现)的修改或分支建议。它还为法学硕士(LLM)的下一步思路提供指导。
**返回值:**该工具返回一个 JSON 字符串,其中包含协调器的合成响应、状态和更新的上下文(分支、历史长度)。
**迭代:**调用 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手动安装
克隆存储库:
git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git cd mcp-server-mas-sequential-thinking**设置环境变量:**在项目根目录中创建一个
.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-chat、claude-3-opus、gpt-4-turbo),从而在性能与成本/速度之间取得平衡。AGENT_MODEL_ID由专业代理(规划师、研究员等)使用。这些代理负责处理重点子任务。根据任务复杂性和预算/性能需求,速度更快或更经济高效的模型(例如deepseek-chat、claude-3-sonnet、llama3-8b)可能更合适。如果未设置这些环境变量,则代码中(例如,在
main.py中)会提供默认值。建议您进行实验,以找到适合您用例的最佳平衡点。
**安装依赖项:**强烈建议使用虚拟环境。
使用
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 .
用法
确保您的环境变量已设置并且虚拟环境(如果使用)处于活动状态。
运行服务器。选择以下方法之一:
使用
uv run(推荐):uv --directory /path/to/mcp-server-mas-sequential-thinking run mcp-server-mas-sequential-thinking直接使用 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 将与该工具进行迭代交互:
**LLM:**使用带有问题定义的启动提示(如
sequential-thinking-starter)。**LLM:**使用
thoughtNumber: 1、初始thought(例如,“计划分析......”)、估计的totalThoughts和nextThoughtNeeded: True调用sequentialthinking工具。服务器: MAS 处理想法。协调员整合专家的反馈并提供指导(例如,“分析计划已完成。建议下一步研究 X。暂无修改建议。”)。
**LLM:**接收包含
coordinatorResponseJSON 响应。**LLM:**根据
coordinatorResponse制定下一个想法(例如,“使用可用工具研究 X...”)。**LLM:**使用
thoughtNumber: 2调用sequentialthinking工具,即新的thought,可能更新了totalThoughts,nextThoughtNeeded: True。服务器: MAS 处理。协调员进行综合(例如,“研究完成。研究结果表明,想法 1 的假设存在缺陷。建议:修改想法 1……”)。
**LLM:**收到回复,注意到建议。
**LLM:**制定修订思路。
**LLM:**使用
thoughtNumber: 3、修订thought、isRevision: True、revisesThought: 1、nextThoughtNeeded: True调用sequentialthinking工具。...等等,根据需要可能分支或扩展流程。
工具响应格式
该工具返回一个 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 级别)。
日志包括时间戳、级别、记录器名称和消息,包括正在处理的想法的结构化表示。
发展
**克隆存储库:(**与安装中相同)
git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git cd mcp-server-mas-sequential-thinking**设置虚拟环境:(**推荐)
python -m venv .venv source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`**安装依赖项(包括 dev):**确保您的
requirements-dev.txt或pyproject.toml指定开发工具(如pytest、ruff、black、mypy)。# 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]"**运行检查:**执行 linters、格式化程序和测试(根据您的项目设置调整命令)。
# Example commands (replace with actual commands used in the project) ruff check . --fix black . mypy . pytest**贡献:(**考虑添加贡献指南:分支策略、拉取请求流程、代码风格)。
执照
麻省理工学院
Available Tools
1 toolsequentialthinkingA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| thought | Yes | Current reasoning step text. Keep this to one concrete step. | |
| thoughtNumber | Yes | 1-based sequence index for this thought. Increment for each step. | |
| totalThoughts | Yes | Estimated total number of steps in the current reasoning plan. | |
| nextThoughtNeeded | Yes | Set true when another thought follows this one. Set false on the final thought. | |
| isRevision | Yes | Set true only when this step revises an earlier conclusion. | |
| branchFromThought | Yes | Original thought number for branching. Null for the main path. | |
| branchId | Yes | Branch identifier. Required when branchFromThought is not null. | |
| needsMoreThoughts | Yes | Set true only when you must continue beyond totalThoughts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| should_continue | Yes | If true, call sequentialthinking again. The tool is designed for multi-step reasoning loops. |
| next_thought_number | No | Recommended thoughtNumber for the next call. Null means no next step is currently required. |
| stop_reason | Yes | Machine-readable reason that explains why to continue or stop. |
| current_thought_number | Yes | Echo of the current thoughtNumber after normalization. |
| total_thoughts | Yes | Echo of current totalThoughts after normalization. |
| next_call_arguments | No | Concrete argument recommendations for the next call when the current run completes successfully and should continue. |
| parameter_usage | Yes | Contract reminders for each core parameter to keep multi-step iterations consistent. |
TDQS
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.
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.
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.
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.
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.
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 tool update
v0.8.0- Changed
sequentialthinking31 fields changed- added
Input schema / properties / branchFromThoughtAdded value: +{ + "anyOf": [ + { + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "Original thought number for branching. Null for the main path.", + "title": "Branchfromthought" +} - added
Input schema / properties / branchIdAdded value: +{ + "anyOf": [ + { + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Branch identifier. Required when branchFromThought is not null.", + "title": "Branchid" +} - removed
Input schema / properties / branch_fromRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Branch From" -} - removed
Input schema / properties / branch_idRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Branch Id" -} - added
Input schema / properties / isRevisionAdded value: +{ + "description": "Set true only when this step revises an earlier conclusion.", + "title": "Isrevision", + "type": "boolean" +} - removed
Input schema / properties / is_revisionRemoved value: -{ - "default": false, - "title": "Is Revision", - "type": "boolean" -} - added
Input schema / properties / needsMoreThoughtsAdded value: +{ + "description": "Set true only when you must continue beyond totalThoughts.", + "title": "Needsmorethoughts", + "type": "boolean" +} - removed
Input schema / properties / needs_moreRemoved value: -{ - "default": false, - "title": "Needs More", - "type": "boolean" -} - added
Input schema / properties / nextThoughtNeededAdded value: +{ + "description": "Set true when another thought follows this one. Set false on the final thought.", + "title": "Nextthoughtneeded", + "type": "boolean" +} - removed
Input schema / properties / next_neededRemoved value: -{ - "title": "Next Needed", - "type": "boolean" -} - removed
Input schema / properties / revises_thoughtRemoved value: -{ - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "title": "Revises Thought" -} - added
Input schema / properties / thought / descriptionAdded value: +"Current reasoning step text. Keep this to one concrete step." - added
Input schema / properties / thought / minLengthAdded value: +1 - added
Input schema / properties / thoughtNumberAdded value: +{ + "description": "1-based sequence index for this thought. Increment for each step.", + "minimum": 1, + "title": "Thoughtnumber", + "type": "integer" +} - removed
Input schema / properties / thought_numberRemoved value: -{ - "title": "Thought Number", - "type": "integer" -} - added
Input schema / properties / totalThoughtsAdded value: +{ + "description": "Estimated total number of steps in the current reasoning plan.", + "minimum": 1, + "title": "Totalthoughts", + "type": "integer" +} - removed
Input schema / properties / total_thoughtsRemoved value: -{ - "title": "Total Thoughts", - "type": "integer" -} - changed
Input schema / requiredPrevious value: -[ - "thought", - "thought_number", - "total_thoughts", - "next_needed" -]New value: +[ + "thought", + "thoughtNumber", + "totalThoughts", + "nextThoughtNeeded", + "isRevision", + "branchFromThought", + "branchId", + "needsMoreThoughts" +] - added
Input schema / titleAdded value: +"sequentialthinkingArguments" - added
Output schema / $defsAdded 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" + } +} - added
Output schema / descriptionAdded value: +"Structured control fields returned on every tool response." - added
Output schema / properties / current_thought_numberAdded value: +{ + "description": "Echo of the current thoughtNumber after normalization.", + "minimum": 1, + "title": "Current Thought Number", + "type": "integer" +} - added
Output schema / properties / next_call_argumentsAdded 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." +} - added
Output schema / properties / next_thought_numberAdded 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" +} - added
Output schema / properties / parameter_usageAdded value: +{ + "additionalProperties": { + "type": "string" + }, + "description": "Contract reminders for each core parameter to keep multi-step iterations consistent.", + "title": "Parameter Usage", + "type": "object" +} - removed
Output schema / properties / resultRemoved value: -{ - "title": "Result", - "type": "string" -} - added
Output schema / properties / should_continueAdded value: +{ + "description": "If true, call sequentialthinking again. The tool is designed for multi-step reasoning loops.", + "title": "Should Continue", + "type": "boolean" +} - added
Output schema / properties / stop_reasonAdded value: +{ + "$ref": "#/$defs/StopReason", + "description": "Machine-readable reason that explains why to continue or stop." +} - added
Output schema / properties / total_thoughtsAdded value: +{ + "description": "Echo of current totalThoughts after normalization.", + "minimum": 1, + "title": "Total Thoughts", + "type": "integer" +} - changed
Output schema / requiredPrevious value: -[ - "result" -]New value: +[ + "should_continue", + "stop_reason", + "current_thought_number", + "total_thoughts", + "parameter_usage" +] - changed
Output schema / titlePrevious value: -"sequentialthinkingOutput"New value: +"SequentialThinkingStructuredContent"
1 tool update
v1.0.0- First observed
sequentialthinking
TDQS
Only one tool exists, so there is no possibility of ambiguity or confusion between tools.
With a single tool, naming consistency is inherently perfect; the name clearly describes the action.
One tool is appropriate for a focused multi-step reasoning system; the tool itself is complex and self-contained.
The tool covers the full sequential reasoning lifecycle including revision, branching, and extension, leaving no obvious gaps.
Maintenance
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
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for building and testing AI agents with multi-model experimentation and insights.
An MCP server for deep research or task groups
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
Related MCP Servers
- FlicenseCqualityDmaintenanceAn 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.316-
- AlicenseAqualityDmaintenanceA 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.12Apache 2.0
- AlicenseAqualityDmaintenanceA structured problem-solving MCP server that breaks down complex tasks into sequential steps, supports iterative refinement and branching, and helps maintain context and explore alternative reasoning paths.11542MIT
- AlicenseNot gradedqualityDmaintenanceA powerful MCP server that enhances LLMs with advanced sequential thinking capabilities, supporting 19 thinking modes for structured reasoning and complex cognitive tasks.17MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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