顺序思维协议服务器

Sequential Thinking 是一个模型上下文协议(MCP)服务器,用于实现结构化思维会话,支持分析、假设、验证和结论等步骤,并允许分支思考和导出完整的推理链。

  • by bpradana
  • Go
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 bpradana/sequentialthinking

使用说明

顺序思维MCP服务器

顺序思维是一种模型上下文协议(MCP)服务器,用于操作深思熟虑的推理。它允许MCP客户端创建结构化思维会话,捕获连续步骤(分析→ 假设→ 验证→ 结论),分支到不同的思路,并输出或审计整个推理链。

概述

  • 用Go 1.24编写,MCP Go SDK是其唯一的直接依赖项。
  • 提供内存会话存储、分支管理、逻辑验证和推理质量启发式。
  • 提供11个MCP工具、会话和模板的资源端点以及3个推理提示。
  • 支持stdio(默认)和流式HTTP传输,以及发布为的最小基于划痕的Docker映像 bpradana/sequentialthinking.
  • 由跨处理程序的单元测试和端到端的MCP集成测试提供支持。

快速开始

先决条件

  • 转到1.24或更高版本
  • Git(或其他获取源代码的方法)

构建和运行(stdio传输)

go mod download
go build -o sequentialthinking ./cmd/sequentialthinking
./sequentialthinking

二进制文件在stdio上监听,并准备由支持MCP的客户端启动。

以HTTP服务器运行

./sequentialthinking -http :8080

这 -http 标志在提供的地址上启用可流式传输的HTTP。

Docker(预构建映像)

docker pull bpradana/sequentialthinking
docker run --rm -i bpradana/sequentialthinking

-i 保持stdin打开,这样MCP客户端就可以与容器化服务器进行stdio通信。

Docker(本地构建)

docker build -t sequentialthinking .
docker run --rm sequentialthinking

多级Dockerfile构建一个静态二进制文件,并从头开始运行它(UID 65532)。

与MCP客户端集成

  • MCP检查员
    npm install -g @modelcontextprotocol/inspector
    mcp-inspector ./sequentialthinking
    
  • Claude Desktop通过Docker(显示macOS路径)
    {
      "mcpServers": {
        "sequentialthinking": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "bpradana/sequentialthinking"
          ]
        }
      }
    }
    
    先用以下命令拉取图像 docker pull bpradana/sequentialthinking.Claude在MCP会话处于活动状态时保持容器活动,并根据需要重新创建它。

启动模板会话

连接后(Inspector、Claude或其他MCP客户端),调用 sequentialthinking.start_from_template 用于启动新会话的工具:

{
  "name": "sequentialthinking.start_from_template",
  "arguments": {
    "template": "scientific-method",
    "problem": "Why did the nightly build fail?",
    "context": {
      "repo": "widgets-service",
      "last_green_commit": "abc1234"
    }
  }
}

服务器以新的 session_id,从请求的模板填充步骤,并建议下一步操作。后续调用可以像往常一样扩展或分支推理。

工具表面

工具 目的 值得注意的论点
start_thinking 创建一个包含初步分析和建议的下一步的新会话。 problem,可选 context,可选 tags,可选 template
add_step 在主流程或分支中添加推理步骤。 session_id,可选 branch_id, step_type, step_content
update_step 编辑现有步骤的内容、类型或元数据。 session_id, step_number,要更新的可选字段
review_thinking 检索完整的链、连接、模式和摘要。 session_id,可选 format (linear, tree, summary)
branch_thinking 从现有步骤中分叉推理路径,并为分支播种。 session_id, from_step, alternative_reasoning
merge_insights 综合多个分支的结论。 session_id, branch_ids
validate_logic 标记逻辑问题并描述优势。 session_id,可选 range_start, range_end
export_session 将会话导出为markdown、JSON或纯文本。 session_id,可选 include_branches, format
list_sessions 带有质量分数的可过滤会话目录。 可选 status, tags, limit
delete_session 删除会话。 session_id
get_metrics 跨会话聚合推理指标。 可选 time_range (day, week, month, all)

资源和提示

  • 资源

    • thinking://session/{session_id} –单个会话的JSON快照。
    • thinking://sessions/list –内存中所有会话的JSON列表。
    • thinking://template/{template_type} –思维框架的JSON表示(scientific-method, five-whys, root-cause-analysis, decision-matrix, swot-analysis, pros-cons, first-principles, fishbone, pareto-analysis).
  • 提示

    • problem_breakdown –结构复杂问题分解。
    • critical_analysis –指导索赔和证据的评估。
    • synthesis_prompt –有助于将多种见解结合到连贯的输出中。

推理模型亮点

  • 步骤类型: analysis, hypothesis, verification, conclusion父引用和连接跟踪使客户端能够构建推理图。
  • 分支:任何步骤都可以分支为其他推理路径。分支步骤在本地编号,并与原始步骤保持关联。
  • 质量评分:启发式结合了步骤类型多样性(30%)、连接密度(30%)和深度(40%)。分数保持不变 [0,1] 并在每次更新后重新计算。
  • 逻辑验证:检测未经支持的结论和未经证实的假设。返回结构化问题、建议、优势亮点和总体有效性得分。
  • 模式检测:识别用于分析的重复推理模式(假设验证、逐步细化、分支综合)。
  • 出口:Markdown、JSON和文本导出器包括元数据、连接、分支和建议的文件名。

操作说明

  • 存储:在记忆中(internal/thinking.MemoryStore)由RW静音器保护。会话是短暂的,重新启动时会被清除。
  • 并发:读取返回深度克隆以防止外部突变;写入更新时间戳、当前步数计数器和质量分数。
  • 日志记录:用途 log/slog 用于初始化消息和 mcp.LoggingTransport 用于stdio诊断。
  • 完工支持:自动完成处理程序为MCP完成请求显示会话ID和模板名称。

开发工作流程

# Run unit and integration tests
go test ./...

# Format and lint
go fmt ./...
golangci-lint run    # optional, if installed

项目布局

cmd/sequentialthinking   CLI entry point and flag parsing
internal/server          MCP server assembly, transports, integration tests
internal/handlers        Tool, resource, prompt handlers and helper logic
internal/thinking        Core domain types, in-memory store, exports, metrics

发布提示

  • 建立 CGO_ENABLED=0 用于静态二进制文件(已在Dockerfile中使用)。
  • 将版本插入 internal/server.New 发布服务器更改时。
  • 使用提供的Dockerfile作为规范的容器构建。

许可证

MIT许可证(使用存储库根 LICENSE 如果存在)。