Skip to main content
Glama
spences10

mcp-sequentialthinking-tools

by spences10

mcp-sequentialthinking-tools

built with vite+ tested with vitest

一个用于记录顺序推理步骤的轻量级 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 — 历史记录桶;默认为 default

  • is_revision, revises_thought

  • branch_from_thought, branch_id

  • needs_more_thoughts

  • available_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 — 默认为 default

  • branch_id — 可选的分支过滤器

  • limit — 要返回的最大记录数;默认 50,最大 500

clear_thinking_history

清除一个会话或所有会话。

参数:

  • session_id — 默认为 default

  • all_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 tools
clear_thinking_historyClear recorded sequential-thinking history for one session or all sessions.C

Clear recorded sequential-thinking history for one session or all sessions.

NameRequiredDescriptionDefault
session_idNoHistory bucket to clear
all_sessionsNoClear every history bucket

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
limitNoMaximum records to return; default 50
branch_idNoOptional branch filter
session_idNoHistory bucket to inspect

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
thoughtYesCurrent thinking step
branch_idNoBranch identifier
session_idNoOptional history bucket. Defaults to "default".
is_revisionNoWhether this revises a thought
thought_numberYesCurrent thought number
total_thoughtsYesCurrent estimate of total thoughts needed
available_toolsNoOptional tool names/descriptions used only to validate recommendations
remaining_stepsNoOptional high-level remaining steps
revises_thoughtNoThought revised
recommended_toolsNoOptional tool plan authored by the model; validated if available_tools is supplied
branch_from_thoughtNoThought number this branch starts from
needs_more_thoughtsNoSet when the estimate was too low
next_thought_neededYesWhether another thought is needed

TDQS

C2.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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.

  1. 3 tool updatesv0.1.1
    • Addedclear_thinking_history
    • Addedget_thinking_history
    • Changedsequentialthinking_tools15 fields changed
      • removedInput schema / properties / available_mcp_tools
        Removed value: -{
        -  "description": "Array of MCP tool names available for use (e.g., [\"mcp-omnisearch\", \"mcp-turso-cloud\"])",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedInput schema / properties / available_tools
        Added 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"
        +}
      • changedInput schema / properties / branch_from_thought / description
        Previous value: -"Branching point thought number"New value: +"Thought number this branch starts from"
      • removedInput schema / properties / current_step
        Removed 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"
        -}
      • changedInput schema / properties / is_revision / description
        Previous value: -"Whether this revises previous thinking"New value: +"Whether this revises a thought"
      • changedInput schema / properties / needs_more_thoughts / description
        Previous value: -"If more thoughts are needed"New value: +"Set when the estimate was too low"
      • changedInput schema / properties / next_thought_needed / description
        Previous value: -"Whether another thought step is needed"New value: +"Whether another thought is needed"
      • removedInput schema / properties / previous_steps
        Removed 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"
        -}
      • addedInput schema / properties / recommended_tools
        Added 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"
        +}
      • changedInput schema / properties / remaining_steps / description
        Previous value: -"High-level descriptions of upcoming steps"New value: +"Optional high-level remaining steps"
      • changedInput schema / properties / revises_thought / description
        Previous value: -"Which thought is being reconsidered"New value: +"Thought revised"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Optional history bucket. Defaults to \"default\".",
        +  "type": "string"
        +}
      • changedInput schema / properties / thought / description
        Previous value: -"Your current thinking step"New value: +"Current thinking step"
      • changedInput schema / properties / total_thoughts / description
        Previous value: -"Estimated total thoughts needed"New value: +"Current estimate of total thoughts needed"
      • changedInput schema / required
        Previous value: -[
        -  "available_mcp_tools",
        -  "thought",
        -  "next_thought_needed",
        -  "thought_number",
        -  "total_thoughts"
        -]New value: +[
        +  "thought",
        +  "thought_number",
        +  "total_thoughts",
        +  "next_thought_needed"
        +]
  2. 1 tool updatev1.0.0
    • Changedsequentialthinking_tools7 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / branch_from_thought / type
        Previous value: -"integer"New value: +"number"
      • addedInput schema / properties / current_step / properties / recommended_tools / items / properties / suggested_inputs / additionalProperties
        Added value: +{}
      • addedInput schema / properties / previous_steps / items / properties / recommended_tools / items / properties / suggested_inputs / additionalProperties
        Added value: +{}
      • changedInput schema / properties / revises_thought / type
        Previous value: -"integer"New value: +"number"
      • changedInput schema / properties / thought_number / type
        Previous value: -"integer"New value: +"number"
      • changedInput schema / properties / total_thoughts / type
        Previous value: -"integer"New value: +"number"
  3. 1 tool update
    • First observedsequentialthinking_tools

TDQS

B3/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    2
    Apache 2.0