使用说明
项目简介
MAS序贯思考MCP服务器 (MCP Server MAS Sequential Thinking) 是一个旨在提升大型语言模型(LLM)序贯思考能力的应用后端。它基于 Model Context Protocol (MCP) 构建,并集成了 Agno 框架实现多智能体系统(MAS)。该服务器通过提供结构化的思考流程,帮助LLM在复杂问题解决和决策制定中进行更深入、更有效的推理。核心功能包括资源管理(通过代码体现为集成的工具和模型)、工具注册与执行('sequentialthinking' 工具)、以及Prompt模板定义('sequential-thinking-starter' Prompt)。
主要功能点
- 序贯思考流程管理: 通过 'sequentialthinking' 工具,服务器能够处理和追踪LLM的序贯思考步骤,支持思考过程的迭代、修订和分支探索。
- 多智能体协作: 内置 Agno 框架,利用多智能体团队(Planner, Researcher, Analyzer, Critic, Synthesizer)协同工作,从不同角度分析和处理LLM的思考步骤,提升思考的深度和广度。
- 非线性思考支持: 鼓励和支持非线性的思考模式,包括思考步骤的修订(Revision)和分支探索(Branching),使LLM能够更灵活地应对复杂问题。
- 详细的日志记录: 提供全面的日志记录,包括每个思考步骤的详细信息,以及多智能体团队的协作过程,方便用户监控和分析思考过程。
- 标准MCP协议支持: 基于 FastMCP 框架构建,遵循 MCP 协议标准,易于与 MCP 客户端集成。
安装步骤
- 克隆仓库:
git clone https://github.com/iniarfia/mcp-server-mas-sequential-thinking.git - 进入项目目录:
cd mcp-server-mas-sequential-thinking - 安装依赖:
npm install
服务器配置
为了让 MCP 客户端能够连接到 MAS序贯思考MCP服务器,需要配置服务器的启动命令。以下是一个典型的 MCP 服务器配置示例,客户端需要将其配置为与服务器建立连接的信息。
{ "serverName": "mas-sequential-thinking-server", "command": "npm", "args": ["start"], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器的名称,可以自定义,例如 "mas-sequential-thinking-server"。
- 'command': 启动服务器的命令。由于项目使用 Node.js 和 npm,因此设置为 "npm"。
- 'args': 传递给启动命令的参数。使用 'npm start' 启动服务器,因此参数设置为 '["start"]'。
- 'transport': 服务器使用的传输协议。根据代码 'mcp.run(transport="stdio")',这里设置为 '"stdio"',表示使用标准输入输出流进行通信。
环境变量配置:
该服务器依赖以下环境变量,请确保在使用前正确配置:
- 'DEEPSEEK_API_KEY': DeepSeek API 密钥,用于初始化 Agno 框架中使用的 DeepSeek 模型。
- 'EXA_API_KEY' (可选): Exa API 密钥,如果需要使用 ExaTools 进行信息检索,则需要配置此环境变量。
可以在项目根目录下创建 '.env' 文件,并将 API 密钥配置在文件中,例如:
DEEPSEEK_API_KEY=your_deepseek_api_key EXA_API_KEY=your_exa_api_key
基本使用方法
- 启动服务器: 在项目根目录下运行命令 'npm start' 启动 MCP 服务器。服务器将通过标准输入输出流 (stdio) 与 MCP 客户端进行通信。
- 配置 MCP 客户端: 在 MCP 客户端中,配置上述的服务器连接信息(JSON配置)。
- 调用 Prompt 和 Tool:
- 使用 'sequential-thinking-starter' Prompt 启动序贯思考流程,提供需要解决的问题和可选的上下文信息。
- 使用 'sequentialthinking' Tool 提交每个思考步骤。Tool 接受 'thought' (思考内容), 'thoughtNumber' (思考步骤序号), 'totalThoughts' (预计总步骤数), 'nextThoughtNeeded' (是否需要下一步思考) 等参数,并支持修订和分支思考。
- 查看结果: 'sequentialthinking' Tool 的返回结果为 JSON 字符串,包含了多智能体系统协调器的综合响应、思考步骤状态、分支信息以及下一步思考的指导建议。根据返回结果,客户端可以继续提交后续的思考步骤,直到完成整个序贯思考流程。
序贯思考流程示例:
- 客户端调用 'sequential-thinking-starter' Prompt, 例如:
{ "jsonrpc": "2.0", "method": "prompt", "params": { "promptName": "sequential-thinking-starter", "arguments": { "problem": "分析提高开源项目社区活跃度的策略", "context": "假设项目是一个新启动的AI工具库" } }, "id": 1 } - 服务器返回 Prompt 消息,客户端将消息发送给 LLM。
- LLM 根据 Prompt 指示,调用 'sequentialthinking' Tool 提交第一个思考步骤, 例如:
{ "jsonrpc": "2.0", "method": "tool_call", "params": { "toolName": "sequentialthinking", "arguments": { "thought": "制定一个全面的分析框架,用于评估和提升开源项目社区的活跃度。", "thoughtNumber": 1, "totalThoughts": 5, "nextThoughtNeeded": true } }, "id": 2 } - 服务器通过多智能体系统处理思考步骤,并返回 JSON 结果。 客户端解析结果,获取协调器的响应和下一步指导。
- 根据服务器的返回结果和指导,LLM 继续调用 'sequentialthinking' Tool 提交后续的思考步骤, 例如修订之前的思考,或探索新的思考分支,直到 'nextThoughtNeeded' 为 'false',或达到预期的思考深度。
注意事项
- 确保已安装 Node.js 和 npm。
- 首次运行前请先安装项目依赖 'npm install'。
- 务必配置 'DEEPSEEK_API_KEY' 环境变量。
- 可以根据需要配置 'EXA_API_KEY' 环境变量以启用信息检索功能。
- 服务器日志文件位于用户 home 目录下的 '.sequential_thinking/logs' 目录中。
信息
分类
AI与计算