mcp-sequentialthinking-tools
mcp-sequentialthinking-tools
一个用于记录顺序推理步骤的轻量级 MCP 服务器。它是一个带有历史记录、分支、修订元数据以及可选的模型编写工具计划验证功能的草稿板。
它不会发现你的其他 MCP 工具,也不会为模型选择工具。如果你传入 available_tools 和 recommended_tools,服务器会验证推荐的名称是否存在并存储该步骤。
为什么要使用它?
当任务受益于明确、可检查的推理时,请使用它:
将混乱的问题分解为步骤;
修改或分支计划;
按会话保留简短的推理历史;
根据提供的工具列表验证工具计划名称;
在长时间的代理运行期间清除或检查推理历史。
不要将其用于琐碎的请求。它会增加开销。
Related MCP server: Sequential-Thinking
工具
sequentialthinking_tools
记录一个想法。
必需参数:
thought— 当前推理步骤thought_number— 当前步骤编号total_thoughts— 当前估计值;如果低于thought_number,则自动提高next_thought_needed— 是否需要另一个想法
可选参数:
session_id— 历史记录桶;默认为defaultis_revision,revises_thoughtbranch_from_thought,branch_idneeds_more_thoughtsavailable_tools— 工具名称数组或{ name, description }对象recommended_tools— 模型编写的用于验证/存储的推荐remaining_steps— 即将进行的步骤的简短列表
示例:
{
"session_id": "svelte-debug",
"thought": "First inspect the route files, then run the failing check.",
"thought_number": 1,
"total_thoughts": 3,
"next_thought_needed": true,
"available_tools": ["read", "bash"],
"recommended_tools": [
{
"tool_name": "read",
"confidence": 0.9,
"rationale": "Need to inspect the relevant files before editing.",
"priority": 1
}
]
}如果 recommended_tools 包含 available_tools 中不存在的名称,则调用返回 isError: true 且不存储该想法。
安全态势
服务器将想法文本、工具描述、基本原理和剩余步骤文本视为不受信任的输入。类似提示注入的文本在存储或在历史记录中返回之前会被扫描并编辑。包含编辑内容的调用会显示 security_warnings,指出哪些字段匹配。
这是防御性过滤,不能保证任意对抗性文本是安全的。不要在想法或工具描述中放入机密信息。
get_thinking_history
返回会话的存储想法。
参数:
session_id— 默认为defaultbranch_id— 可选的分支过滤器limit— 要返回的最大记录数;默认50,最大500
clear_thinking_history
清除一个会话或所有会话。
参数:
session_id— 默认为defaultall_sessions— 清除所有历史记录桶
提示
sequential-thinking-guidance
一个简短的提示,告诉模型如何诚实地使用此服务器:作为草稿板和验证器,而不是作为外部推理引擎。
配置
Claude Desktop / 兼容的 MCP 客户端
{
"mcpServers": {
"mcp-sequentialthinking-tools": {
"command": "npx",
"args": ["-y", "mcp-sequentialthinking-tools"],
"env": {
"MAX_HISTORY_SIZE": "1000"
}
}
}
}MAX_HISTORY_SIZE 是按会话计算的,默认为 1000。
服务器使用 tmcp 并包含一个小型 stdio 传输,它既接受标准的 Content-Length 帧 MCP 消息,也接受旧版 tmcp 工具使用的换行符分隔的 JSON。
开发
pnpm install
pnpm test
pnpm build
pnpm check该项目使用 vite-plus 进行构建、测试、格式化和 lint 编排。
发布
pnpm changeset
pnpm changeset version
pnpm release许可证
MIT 许可证 — 参见 LICENSE。
致谢
Available Tools
3 toolsclear_thinking_historyClear recorded sequential-thinking history for one session or all sessions.C
Clear recorded sequential-thinking history for one session or all sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | History bucket to clear | |
| all_sessions | No | Clear every history bucket |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for what is clearly a destructive operation. It never states that clearing is irreversible, whether an in-progress thinking session is affected, or whether confirmation/permissions are required — only the verb 'Clear' implies data loss.
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?
A single front-loaded sentence with no filler; the scope qualifier comes at the end but the core action leads. It is efficient, though it duplicates the title almost verbatim, so brevity comes at the cost of added information.
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?
For a destructive tool with no annotations, no output schema, and zero required parameters, the description is too thin. It omits irreversibility, default behavior when neither parameter is supplied, and any return/confirmation semantics an agent needs to call it safely.
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 description coverage is 100%, so the schema already documents 'session_id' and 'all_sessions'; baseline is 3. The description's 'one session or all sessions' loosely mirrors the two parameters but adds no format, default, or interaction details (e.g., behavior when both are omitted).
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?
Tautological: description restates name/title.
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?
There is no when-to-use or when-not-to-use guidance, no mention of prerequisites, and no pointer to the sibling get_thinking_history or sequentialthinking_tools. The phrase 'one session or all sessions' hints at the parameter choice but does not tell the agent which situation calls for which scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thinking_historyReturn recorded thoughts for a session. Use this to inspect or resume prior reasoning.C
Return recorded thoughts for a session. Use this to inspect or resume prior reasoning.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return; default 50 | |
| branch_id | No | Optional branch filter | |
| session_id | No | History bucket to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It implies a read operation ('Return', 'inspect') but says nothing about ordering, truncation, default limits, or what a returned thought record looks like — for a history-retrieval tool with zero annotation coverage this is a meaningful gap.
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?
Two short front-loaded sentences with no padding. The first sentence duplicates the title verbatim, which is mildly redundant rather than wasteful, so it stays efficient overall.
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?
For a simple three-parameter read tool whose schema is fully documented, the description is adequate but thin. With no output schema, it never describes the shape or content of returned thought records, leaving the agent to discover the return format empirically.
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 description coverage is 100%, documenting limit, branch_id, and session_id, so the baseline is 3. The description adds no meaning beyond the schema — it does not explain how branch_id interacts with session_id or what the limit default means in practice.
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?
Tautological: description restates name/title.
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?
'Use this to inspect or resume prior reasoning' gives implied usage context, but there is no explicit when-not guidance and no mention of the alternative clear_thinking_history or sequentialthinking_tools. The agent must infer which tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sequentialthinking_toolsRecord one step of sequential reasoning. Optionally include available_tools and recommended_tools; recommendations are validated, not generated, by this server.C
Record one step of sequential reasoning. Optionally include available_tools and recommended_tools; recommendations are validated, not generated, by this server.
| Name | Required | Description | Default |
|---|---|---|---|
| thought | Yes | Current thinking step | |
| branch_id | No | Branch identifier | |
| session_id | No | Optional history bucket. Defaults to "default". | |
| is_revision | No | Whether this revises a thought | |
| thought_number | Yes | Current thought number | |
| total_thoughts | Yes | Current estimate of total thoughts needed | |
| available_tools | No | Optional tool names/descriptions used only to validate recommendations | |
| remaining_steps | No | Optional high-level remaining steps | |
| revises_thought | No | Thought revised | |
| recommended_tools | No | Optional tool plan authored by the model; validated if available_tools is supplied | |
| branch_from_thought | No | Thought number this branch starts from | |
| needs_more_thoughts | No | Set when the estimate was too low | |
| next_thought_needed | Yes | Whether another thought is needed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose one genuinely non-obvious trait: recommendations are validated, not generated, by this server. However, it omits persistence behavior, whether steps accumulate in a session, and what the recorded step does for subsequent calls.
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?
Compact and front-loaded: the core action leads, and the optional-input/validation caveat follows in one clause. No filler sentences, though the text largely mirrors the title.
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?
For a 13-parameter tool with no annotations and no output schema, the description covers purpose and one behavioral trait but says nothing about session persistence, iterative invocation, or return behavior. The rich schema compensates for the parameter gaps, keeping this at a minimum-viable level.
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 description coverage is 100%, so the schema already documents all 13 parameters, making a 3 the baseline. The description adds only a reinforcing note that recommendations are validated against available_tools rather than invented, which the schema already implies.
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?
Tautological: description restates name/title.
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?
There is no statement of when to call this versus the history siblings, no note that it is meant to be invoked repeatedly to build a chain, and no prerequisites. The only usage-adjacent content is that available_tools and recommended_tools are optional, which is parameter guidance rather than when-to-use guidance.
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.
3 tool updates
v0.1.1- Added
clear_thinking_history - Added
get_thinking_history - Changed
sequentialthinking_tools15 fields changed- removed
Input schema / properties / available_mcp_toolsRemoved value: -{ - "description": "Array of MCP tool names available for use (e.g., [\"mcp-omnisearch\", \"mcp-turso-cloud\"])", - "items": { - "type": "string" - }, - "type": "array" -} - added
Input schema / properties / available_toolsAdded value: +{ + "description": "Optional tool names/descriptions used only to validate recommendations", + "items": { + "anyOf": [ + { + "description": "Tool name", + "type": "string" + }, + { + "properties": { + "description": { + "description": "Brief tool description", + "type": "string" + }, + "name": { + "description": "Tool name", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + } + ] + }, + "type": "array" +} - changed
Input schema / properties / branch_from_thought / descriptionPrevious value: -"Branching point thought number"New value: +"Thought number this branch starts from" - removed
Input schema / properties / current_stepRemoved value: -{ - "description": "Current step recommendation", - "properties": { - "expected_outcome": { - "description": "What to expect from this step", - "type": "string" - }, - "next_step_conditions": { - "description": "Conditions to consider for the next step", - "items": { - "type": "string" - }, - "type": "array" - }, - "recommended_tools": { - "description": "Tools recommended for this step", - "items": { - "properties": { - "alternatives": { - "description": "Alternative tools that could be used", - "items": { - "type": "string" - }, - "type": "array" - }, - "confidence": { - "description": "0-1 indicating confidence in recommendation", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "priority": { - "description": "Order in the recommendation sequence", - "type": "number" - }, - "rationale": { - "description": "Why this tool is recommended", - "type": "string" - }, - "suggested_inputs": { - "additionalProperties": {}, - "description": "Optional suggested parameters", - "type": "object" - }, - "tool_name": { - "description": "Name of the tool being recommended", - "type": "string" - } - }, - "required": [ - "tool_name", - "confidence", - "rationale", - "priority" - ], - "type": "object" - }, - "type": "array" - }, - "step_description": { - "description": "What needs to be done", - "type": "string" - } - }, - "required": [ - "step_description", - "recommended_tools", - "expected_outcome" - ], - "type": "object" -} - changed
Input schema / properties / is_revision / descriptionPrevious value: -"Whether this revises previous thinking"New value: +"Whether this revises a thought" - changed
Input schema / properties / needs_more_thoughts / descriptionPrevious value: -"If more thoughts are needed"New value: +"Set when the estimate was too low" - changed
Input schema / properties / next_thought_needed / descriptionPrevious value: -"Whether another thought step is needed"New value: +"Whether another thought is needed" - removed
Input schema / properties / previous_stepsRemoved value: -{ - "description": "Steps already recommended", - "items": { - "properties": { - "expected_outcome": { - "description": "What to expect from this step", - "type": "string" - }, - "next_step_conditions": { - "description": "Conditions to consider for the next step", - "items": { - "type": "string" - }, - "type": "array" - }, - "recommended_tools": { - "description": "Tools recommended for this step", - "items": { - "properties": { - "alternatives": { - "description": "Alternative tools that could be used", - "items": { - "type": "string" - }, - "type": "array" - }, - "confidence": { - "description": "0-1 indicating confidence in recommendation", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "priority": { - "description": "Order in the recommendation sequence", - "type": "number" - }, - "rationale": { - "description": "Why this tool is recommended", - "type": "string" - }, - "suggested_inputs": { - "additionalProperties": {}, - "description": "Optional suggested parameters", - "type": "object" - }, - "tool_name": { - "description": "Name of the tool being recommended", - "type": "string" - } - }, - "required": [ - "tool_name", - "confidence", - "rationale", - "priority" - ], - "type": "object" - }, - "type": "array" - }, - "step_description": { - "description": "What needs to be done", - "type": "string" - } - }, - "required": [ - "step_description", - "recommended_tools", - "expected_outcome" - ], - "type": "object" - }, - "type": "array" -} - added
Input schema / properties / recommended_toolsAdded value: +{ + "description": "Optional tool plan authored by the model; validated if available_tools is supplied", + "items": { + "properties": { + "alternatives": { + "description": "Alternative tool names", + "items": { + "type": "string" + }, + "type": "array" + }, + "confidence": { + "description": "Optional 0-1 confidence score", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "priority": { + "description": "Optional execution order hint", + "minimum": 1, + "type": "number" + }, + "rationale": { + "description": "Why this tool may help", + "type": "string" + }, + "suggested_inputs": { + "additionalProperties": {}, + "description": "Optional suggested tool arguments", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "tool_name": { + "description": "Name of the tool being recommended", + "type": "string" + } + }, + "required": [ + "tool_name" + ], + "type": "object" + }, + "type": "array" +} - changed
Input schema / properties / remaining_steps / descriptionPrevious value: -"High-level descriptions of upcoming steps"New value: +"Optional high-level remaining steps" - changed
Input schema / properties / revises_thought / descriptionPrevious value: -"Which thought is being reconsidered"New value: +"Thought revised" - added
Input schema / properties / session_idAdded value: +{ + "description": "Optional history bucket. Defaults to \"default\".", + "type": "string" +} - changed
Input schema / properties / thought / descriptionPrevious value: -"Your current thinking step"New value: +"Current thinking step" - changed
Input schema / properties / total_thoughts / descriptionPrevious value: -"Estimated total thoughts needed"New value: +"Current estimate of total thoughts needed" - changed
Input schema / requiredPrevious value: -[ - "available_mcp_tools", - "thought", - "next_thought_needed", - "thought_number", - "total_thoughts" -]New value: +[ + "thought", + "thought_number", + "total_thoughts", + "next_thought_needed" +]
1 tool update
v1.0.0- Changed
sequentialthinking_tools7 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / branch_from_thought / typePrevious value: -"integer"New value: +"number" - added
Input schema / properties / current_step / properties / recommended_tools / items / properties / suggested_inputs / additionalPropertiesAdded value: +{} - added
Input schema / properties / previous_steps / items / properties / recommended_tools / items / properties / suggested_inputs / additionalPropertiesAdded value: +{} - changed
Input schema / properties / revises_thought / typePrevious value: -"integer"New value: +"number" - changed
Input schema / properties / thought_number / typePrevious value: -"integer"New value: +"number" - changed
Input schema / properties / total_thoughts / typePrevious value: -"integer"New value: +"number"
1 tool update
- First observed
sequentialthinking_tools
TDQS
Scored across 3 tools
The three tools map cleanly to distinct actions on the same resource: write a thought, read the history, and clear it. There is no overlap or risk of misselection between recording, retrieving, and clearing.
get_thinking_history and clear_thinking_history follow a consistent verb_noun pattern, but sequentialthinking_tools breaks it entirely, using a compound noun with no verb and no clear action cue. The mix is readable but not uniform.
Three tools is lean but adequate for a reasoning-history server covering write, read, and clear. It is on the thin side, with no session-listing or search capability to round it out.
The record/get/clear trio covers the basic lifecycle of a thinking log with no dead ends. Minor gaps exist, such as listing sessions or fetching a single thought by id, which agents could work around.
Maintenance
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server for generating rough-draft project plans from natural-language prompts.
Hybrid human + AI expertise for faster, trusted answers and decisions via MCP Server.
Related MCP Servers
- AlicenseAqualityAmaintenanceThis server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.5102 PyPI959MIT
- 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
- AlicenseNot gradedqualityDmaintenanceA sequential thinking tool based on the MCP protocol, used to break down complex problems into manageable steps and provide intelligent tool recommendations for each step.2Apache 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.141 npm41MIT