Sequential Thinking MCP Server - 结构化思维问题解决
官方实现 | Stars: 2000+ | TypeScript | MIT License
概述
Sequential Thinking MCP Server 是 Model Context Protocol 官方提供的结构化思维服务器。它通过维护一个动态的思维序列,帮助 AI 助手系统地解决复杂问题。
该服务器的核心是 sequential_thinking 工具,支持逐步分解问题、动态修订思考、分支到替代推理路径等功能。特别适合处理复杂规划、需要多步推理的分析任务、以及初始范围不明确的问题。通过结构化的思考过程,AI 能够更好地维护上下文,过滤无关信息,生成和验证假设。
核心特性
- ✅ 官方 MCP 实现,完全兼容协议规范
- 🧠 动态思维序列管理,支持灵活的步骤数调整
- 🔄 思考修订功能,支持回溯和改进推理路径
- 🌳 分支推理支持,可探索多个替代方案
- 📝 上下文维护,保持思考过程的连贯性
- 📊 可选的思考日志记录,便于调试和分析
- 🚀 轻量级部署,支持 NPX 和 Docker
- 📜 MIT 许可证,完全开源
工具列表
sequential_thinking
功能:通过结构化思维过程进行动态和反思性的问题解决
参数:
| 参数名 |
类型 |
必需 |
说明 |
thought |
string |
✅ |
当前思考步骤的内容,描述当前的推理、分析或决策 |
nextThoughtNeeded |
boolean |
✅ |
是否需要进行下一个思考步骤,用于控制思维序列的继续或终止 |
thoughtNumber |
integer |
✅ |
当前思考步骤的编号(从1开始) |
totalThoughts |
integer |
✅ |
预计需要的总思考步骤数(可动态调整) |
isRevision |
boolean |
❌ |
标记当前思考是否是对之前思考的修订 |
revisesThought |
integer |
❌ |
指定要修订的思考步骤编号(当 isRevision 为 true 时使用) |
branchFromThought |
integer |
❌ |
指定从哪个思考步骤分支出新的推理路径 |
branchId |
string |
❌ |
分支的唯一标识符,用于追踪不同的推理路径 |
needsMoreThoughts |
boolean |
❌ |
指示是否需要超出最初估计的总步骤数 |
基础使用示例:
1 2 3 4 5 6
| { "thought": "首先,我需要分析问题的核心需求和约束条件", "nextThoughtNeeded": true, "thoughtNumber": 1, "totalThoughts": 5 }
|
修订思考示例:
1 2 3 4 5 6 7 8
| { "thought": "修订之前的假设:考虑到新信息,应该采用不同的方法", "nextThoughtNeeded": true, "thoughtNumber": 4, "totalThoughts": 5, "isRevision": true, "revisesThought": 2 }
|
分支推理示例:
1 2 3 4 5 6 7 8
| { "thought": "探索替代方案:如果采用方案B会如何?", "nextThoughtNeeded": true, "thoughtNumber": 3, "totalThoughts": 6, "branchFromThought": 2, "branchId": "alternative-path-1" }
|
配置方式
环境变量
1 2
| DISABLE_THOUGHT_LOGGING=false
|
Claude Desktop 配置
在 claude_desktop_config.json 中添加:
1 2 3 4 5 6 7 8 9 10 11
| { "mcpServers": { "sequential-thinking": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-sequential-thinking" ] } } }
|
NPM 包安装
1 2 3 4 5 6 7 8
| npx -y @modelcontextprotocol/server-sequential-thinking
npm install -g @modelcontextprotocol/server-sequential-thinking
npm install @modelcontextprotocol/server-sequential-thinking
|
Docker 部署
1 2 3 4 5
| docker run --rm -i mcp/sequentialthinking
docker build -t mcp/sequentialthinking -f src/sequentialthinking/Dockerfile .
|
Docker 配置示例:
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "mcpServers": { "sequential-thinking": { "command": "docker", "args": [ "run", "--rm", "-i", "mcp/sequentialthinking" ] } } }
|
使用场景
1. 复杂问题分解
将大型、复杂的问题分解为一系列可管理的步骤,系统地分析每个子问题。
示例场景:设计一个分布式系统架构
1 2 3 4 5
| 思考1: 确定系统的核心功能和性能要求 思考2: 分析各组件之间的通信模式和数据流 思考3: 评估不同的架构模式(微服务 vs 单体) 思考4: 设计数据存储策略和一致性保证 思考5: 规划部署和扩展方案
|
2. 规划与设计
在软件架构、产品设计等需要多轮迭代的规划任务中,支持动态修订和完善计划。
示例场景:产品功能规划
1 2 3 4 5
| 思考1: 定义产品核心价值主张 思考2: 列出所有潜在功能列表 思考3: [修订思考1] 根据市场反馈,调整价值主张重点 思考4: 按优先级排序功能(基于修订后的价值主张) 思考5: 制定分阶段发布计划
|
3. 多路径推理
探索多个解决方案路径,通过分支功能并行评估不同方案的可行性。
示例场景:性能优化策略选择
1 2 3 4 5 6
| 思考1: 识别性能瓶颈 思考2: 提出优化方向A(缓存策略) 思考3: [分支自思考2] 探索方向B(数据库索引优化) 思考4a: [分支A] 评估缓存方案的成本和收益 思考4b: [分支B] 评估索引优化的效果 思考5: 综合对比,选择最佳方案
|
4. 算法设计
逐步推导算法逻辑,验证每个步骤的正确性,支持回溯和优化。
示例场景:设计排序算法
1 2 3 4 5 6
| 思考1: 定义输入输出规范和性能目标 思考2: 选择基础算法框架(分治法) 思考3: 设计分割策略 思考4: 设计合并逻辑 思考5: 分析时间和空间复杂度 思考6: [修订思考3] 优化分割策略以减少递归深度
|
5. 系统分析
对复杂系统进行全面分析,维护分析上下文,过滤无关信息。
示例场景:故障根因分析
1 2 3 4 5
| 思考1: 收集故障现象和日志信息 思考2: 识别可能的故障点 思考3: 排除不符合症状的原因 思考4: 深入分析剩余可能原因 思考5: 验证假设并定位根因
|
6. 假设验证
生成、测试和验证多个假设,系统地排除不可行方案。
示例场景:用户流失原因分析
1 2 3 4 5
| 思考1: 提出假设A(产品功能不足) 思考2: 收集相关数据验证假设A 思考3: [分支] 提出假设B(用户体验问题) 思考4: [分支] 验证假设B 思考5: 综合分析,确定主要原因
|
思维模式详解
线性思维模式
最基础的使用模式,按顺序进行思考:
1
| 思考1 → 思考2 → 思考3 → 思考4 → 思考5
|
适用场景:
修订思维模式
支持回溯和修正之前的思考:
1 2 3 4 5
| 思考1 → 思考2 → 思考3 ↓ (发现问题) 思考4 [修订思考2] ↓ 思考5 (基于修订后的思考2)
|
适用场景:
- 发现之前的假设错误
- 获得新的信息
- 需要调整推理方向
分支思维模式
探索多个并行的推理路径:
1 2 3 4 5 6 7 8 9 10 11
| 思考1 ↓ 思考2 ↙ ↘ [分支A] [分支B] 思考3a 思考3b ↓ ↓ 思考4a 思考4b ↘ ↙ 思考5 (综合评估)
|
适用场景:
- 多个可能的解决方案
- 需要对比不同方法
- 探索替代路径
动态扩展模式
初始估计步骤数,但可以动态增加:
1 2 3 4 5 6 7 8 9 10 11
| 思考1 (总步骤: 3) ↓ 思考2 (发现问题更复杂) ↓ 思考3 (needsMoreThoughts: true) ↓ 思考4 (总步骤: 6, 动态扩展) ↓ 思考5 ↓ 思考6
|
适用场景:
- 初始范围不明确的问题
- 探索性分析任务
- 复杂度超出预期的场景
最佳实践
1. 合理估计总步骤数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| { "totalThoughts": 5, "thoughtNumber": 1, "thought": "定义问题范围" }
{ "totalThoughts": 8, "thoughtNumber": 1, "thought": "分析多个相关因素" }
{ "totalThoughts": 15, "thoughtNumber": 1, "thought": "系统性分析大型问题" }
{ "totalThoughts": 5, "thoughtNumber": 1, "thought": "初步探索问题", "needsMoreThoughts": false }
|
2. 清晰的思考描述
1 2 3 4 5 6 7 8 9 10 11
| { "thought": "继续分析", "thoughtNumber": 2 }
{ "thought": "分析用户反馈数据,发现 60% 的用户反映加载速度慢,主要集中在图片加载环节", "thoughtNumber": 2 }
|
3. 适时使用修订
1 2 3 4 5 6 7 8
| { "thought": "之前假设数据库查询是瓶颈,但实际分析发现是网络延迟导致的慢查询。需要重新考虑优化策略。", "thoughtNumber": 5, "totalThoughts": 8, "isRevision": true, "revisesThought": 2 }
|
4. 有效的分支管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| { "thought": "考虑两种可能的实现方案", "thoughtNumber": 3, "totalThoughts": 8 }
{ "thought": "方案A:使用 Redis 作为缓存层,评估其性能和成本", "thoughtNumber": 4, "totalThoughts": 8, "branchFromThought": 3, "branchId": "redis-cache" }
{ "thought": "方案B:使用 CDN 加速静态资源,评估覆盖范围和费用", "thoughtNumber": 4, "totalThoughts": 8, "branchFromThought": 3, "branchId": "cdn-acceleration" }
{ "thought": "对比两个方案:Redis 缓存适合动态内容,CDN 适合静态资源。建议采用混合方案。", "thoughtNumber": 5, "totalThoughts": 8 }
|
5. 控制思维序列长度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
{ "totalThoughts": 50, "thoughtNumber": 1 }
{ "totalThoughts": 5, "thoughtNumber": 5, "thought": "完成问题分析阶段", "nextThoughtNeeded": false }
{ "totalThoughts": 6, "thoughtNumber": 1, "thought": "基于分析结果,开始设计解决方案" }
|
技术架构
工作流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| ┌─────────────────────────────────────────────────────────┐ │ MCP Client (Claude) │ └─────────────────────┬───────────────────────────────────┘ │ │ sequential_thinking 请求 ↓ ┌─────────────────────────────────────────────────────────┐ │ Sequential Thinking MCP Server │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Thought Sequence Manager │ │ │ │ │ │ │ │ • 维护思考历史 │ │ │ │ • 跟踪分支路径 │ │ │ │ • 记录修订关系 │ │ │ │ • 管理思考编号 │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Context Maintenance │ │ │ │ │ │ │ │ • 保持上下文连贯性 │ │ │ │ • 过滤无关信息 │ │ │ │ • 维护推理链 │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ Logging (可选) │ │ │ │ │ │ │ │ • 记录思考过程 │ │ │ │ • 调试和分析 │ │ │ │ • 可通过环境变量禁用 │ │ │ └──────────────────────────────────────────────────┘ │ └───────────────────────┬─────────────────────────────────┘ │ │ 返回处理结果 ↓ ┌─────────────────────┐ │ 思考记录和上下文 │ └─────────────────────┘
|
数据结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| interface ThoughtInput { thought: string; nextThoughtNeeded: boolean; thoughtNumber: number; totalThoughts: number; isRevision?: boolean; revisesThought?: number; branchFromThought?: number; branchId?: string; needsMoreThoughts?: boolean; }
interface ThoughtSequence { thoughts: Thought[]; branches: Map<string, Thought[]>; revisions: Map<number, number>; }
|
与其他思考工具对比
| 特性 |
Sequential Thinking |
Chain of Thought |
Tree of Thoughts |
| 结构化程度 |
⭐⭐⭐⭐⭐ 高度结构化 |
⭐⭐⭐ 中等 |
⭐⭐⭐⭐ 较高 |
| 修订支持 |
✅ 原生支持 |
❌ 无 |
部分支持 |
| 分支推理 |
✅ 完整支持 |
❌ 线性 |
✅ 树形结构 |
| 动态扩展 |
✅ 支持 |
❌ 固定 |
部分支持 |
| 上下文维护 |
⭐⭐⭐⭐⭐ 优秀 |
⭐⭐⭐ 中等 |
⭐⭐⭐⭐ 较好 |
| 易用性 |
⭐⭐⭐⭐ 较易 |
⭐⭐⭐⭐⭐ 简单 |
⭐⭐⭐ 中等 |
| 适用场景 |
复杂规划/分析 |
简单推理 |
探索性搜索 |
常见问题
Q: 如何禁用思考日志记录?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| export DISABLE_THOUGHT_LOGGING=true
{ "mcpServers": { "sequential-thinking": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"], "env": { "DISABLE_THOUGHT_LOGGING": "true" } } } }
|
Q: 思考序列的最大长度是多少?
没有硬性限制,但建议:
- 简单问题:3-5步
- 中等问题:5-10步
- 复杂问题:10-20步
- 超过20步建议分阶段处理
Q: 如何处理思考过程中的错误?
使用修订功能:
1 2 3 4 5 6 7
| { "thought": "发现之前的分析有误,重新评估...", "thoughtNumber": 6, "totalThoughts": 10, "isRevision": true, "revisesThought": 3 }
|
Q: 分支太多会影响性能吗?
建议控制分支数量:
- 每个思考点最多2-3个分支
- 分支深度不超过3层
- 及时合并或终止不必要的分支
Q: 如何与其他 MCP 工具配合使用?
Sequential Thinking 可以作为问题分析工具,与执行工具配合:
1 2 3 4
| 1. 使用 Sequential Thinking 分析问题 2. 使用 Fetch Server 获取数据 3. 使用 Sequential Thinking 处理数据 4. 使用 Memory Server 存储结果
|
性能考虑
内存使用
1 2 3 4 5
| 思考序列长度: 10步 分支数: 2个 平均思考内容: 200字符
预估内存: ~5KB / 序列
|
延迟
1 2 3 4 5
| 处理单个思考: <10ms 维护上下文: ~5ms 日志记录: ~2ms (可禁用)
总延迟: 通常 <20ms
|
扩展性
- ✅ 支持并发请求
- ✅ 无状态设计
- ✅ 轻量级实现
- ✅ 易于水平扩展
评分详情
| 维度 |
评分 |
说明 |
| 功能性 |
5.0/5.0 |
功能完善,支持复杂思维模式 |
| 文档质量 |
4.8/5.0 |
文档详细,示例丰富 |
| 社区活跃度 |
5.0/5.0 |
官方维护,社区活跃 |
| 维护状态 |
5.0/5.0 |
持续更新,快速响应 |
| 代码质量 |
5.0/5.0 |
代码规范,测试完善 |
| 综合评分 |
5.0/5.0 |
优秀的结构化思维工具 |
总结
Sequential Thinking MCP Server 是一个强大的结构化思维工具,特别适合需要系统化问题解决的场景。它通过动态思维序列、修订机制和分支推理,帮助 AI 助手更好地处理复杂问题。
推荐指数: ⭐⭐⭐⭐⭐ (5/5)
适合你的情况:
- ✅ 需要系统化问题分解
- ✅ 处理复杂规划和设计任务
- ✅ 需要探索多个解决方案
- ✅ 需要维护推理上下文
- ✅ 需要修订和优化思考路径
不适合的情况:
- ❌ 简单的单步问题
- ❌ 不需要结构化推理的场景
- ❌ 对延迟极其敏感的实时应用
相关资源
实战案例
案例1:软件架构设计
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| { "thought": "需要设计一个支持百万级并发的电商系统,要求高可用、可扩展", "thoughtNumber": 1, "totalThoughts": 10, "nextThoughtNeeded": true }
{ "thought": "考虑微服务架构,便于独立扩展和部署", "thoughtNumber": 2, "totalThoughts": 10, "nextThoughtNeeded": true }
{ "thought": "方案A:使用 REST API 作为服务间通信方式,简单直接", "thoughtNumber": 3, "totalThoughts": 10, "branchFromThought": 2, "branchId": "sync-communication", "nextThoughtNeeded": true }
{ "thought": "方案B:使用消息队列(Kafka)实现异步通信,解耦服务", "thoughtNumber": 3, "totalThoughts": 10, "branchFromThought": 2, "branchId": "async-communication", "nextThoughtNeeded": true }
{ "thought": "对比两种方案:REST 实现简单但耦合度高;消息队列解耦但复杂度增加。建议混合使用:同步调用用于查询,异步消息用于事件通知。", "thoughtNumber": 5, "totalThoughts": 10, "nextThoughtNeeded": true }
|
案例2:问题根因分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| { "thought": "生产环境出现间歇性响应超时,影响约 5% 的请求", "thoughtNumber": 1, "totalThoughts": 8, "nextThoughtNeeded": true }
{ "thought": "假设是数据库查询性能问题导致", "thoughtNumber": 2, "totalThoughts": 8, "nextThoughtNeeded": true }
{ "thought": "检查数据库监控数据,发现查询时间正常,排除数据库问题", "thoughtNumber": 3, "totalThoughts": 8, "nextThoughtNeeded": true }
{ "thought": "修订假设:可能是网络层问题或服务实例健康问题", "thoughtNumber": 4, "totalThoughts": 8, "isRevision": true, "revisesThought": 2, "nextThoughtNeeded": true }
{ "thought": "发现部分服务实例内存泄漏,触发频繁 GC 导致响应延迟。根因确定。", "thoughtNumber": 5, "totalThoughts": 8, "nextThoughtNeeded": true }
|
更新时间: 2025-10-14
数据来源: GitHub, 质量评分: 5.0/5.0