think-mcp-server
一个最小化的 MCP 服务器,为 Claude AI 模型提供“思考”工具功能,通过允许模型在响应生成过程中暂停以进行额外的思考步骤,从而提高其在复杂推理任务中的性能。
README
think-mcp-server
一个基于 Anthropic 的 "think" 工具研究的最小 MCP 服务器
概述
本项目实现了一个最小的消息控制协议 (MCP) 服务器,为 Claude AI 模型提供 "think" 工具能力。基于 Anthropic 于 2025 年 3 月 20 日发布的研究,此实现使 Claude 能够在涉及多步骤工具使用的复杂推理任务中表现更好。
什么是 "think" 工具?
"think" 工具使 Claude 能够包含一个额外的思考步骤——带有其自己的指定空间——作为得出最终答案的一部分。与扩展思考(发生在响应生成之前)不同,"think" 工具允许 Claude 在响应生成期间暂停,以考虑它是否拥有继续进行所需的所有必要信息。
主要优势:
- 提高复杂问题解决性能
- 增强工具使用中的策略遵守
- 提高决策的一致性
- 帮助解决需要仔细推理的多步骤问题
实现
此服务器使用以下规范实现 "think" 工具:
{
"name": "think",
"description": "使用该工具思考一些事情。它不会获取新信息或更改数据库,而只会将想法附加到日志中。当需要复杂的推理或一些缓存记忆时使用它。",
"input_schema": {
"type": "object",
"properties": {
"thought": {
"type": "string",
"description": "要思考的想法。"
}
},
"required": ["thought"]
}
}
何时使用 "think" 工具
根据 Anthropic 的研究,此工具最有利于:
- 工具输出分析:当 Claude 需要在采取行动之前处理先前的工具调用输出时
- 策略繁重的环境:当 Claude 必须遵循详细的指导方针时
- 顺序决策:当每个行动都建立在先前的行动之上并且错误代价高昂时
实施最佳实践
战略提示
为了获得最佳效果,请在提示中包含关于何时以及如何使用 "think" 工具的明确说明。考虑提供特定于领域的示例,这些示例显示:
- 推理中的预期细节级别
- 如何将复杂的指令分解为步骤
- 常见场景的决策树
- 信息验证过程
系统提示集成
复杂的指导最好放在系统提示中,而不是工具描述本身中。
工作原理
该服务器使用模型上下文协议 (MCP) 与 Claude 和类似的 AI 助手进行通信。它:
- 作为使用 stdio 进行通信的独立进程运行
- 注册 "think" 工具供 Claude 在推理期间使用
- 返回可以由 AI 助手处理的结构化响应
- 记录思考步骤而不影响外部环境
特点
工具
- think - 使 Claude 能够思考问题或分析信息
- 必需:thought(包含 Claude 思考过程的字符串)
开发
安装依赖项:
npm install
构建服务器:
npm run build
对于具有自动重建功能的开发:
npm run watch
调试
由于 MCP 服务器通过 stdio 进行通信,因此调试可能具有挑战性。我们建议使用 MCP Inspector:
npm run inspector
Inspector 将提供一个 URL 以访问浏览器中的调试工具。
安装
通过 npm 安装
npm install -g think-mcp-server
Claude Desktop
在以下位置添加服务器配置:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"think": {
"command": "npx",
"args": ["-y", "think-mcp-server"]
}
}
}
Cline
- 打开 Cline 扩展设置
- 打开 "MCP Servers" 选项卡
- 点击 "Configure MCP Servers"
- 添加服务器配置:
{
"mcpServers": {
"github.com/marcopesani/think-mcp-server": {
"command": "npx",
"args": ["-y", "think-mcp-server"],
"disabled": false,
"autoApprove": ["think"]
}
}
}
其他 Cline 配置选项:
disabled:设置为 false 以启用服务器autoApprove:不需要每次使用都显式批准的工具列表
Cursor
- 打开 Cursor 设置
- 打开 "Features" 设置
- 在 "MCP Servers" 部分,点击 "Add new MCP Server"
- 选择一个名称,并将 "Type" 选择为 "command"
- 在 "Command" 字段中,输入以下内容:
npx -y think-mcp-server
Docker
您还可以使用 Docker 运行服务器。首先,构建镜像:
docker build -t think-mcp-server .
然后运行容器:
docker run -it think-mcp-server
对于开发,您可能想要将您的源代码挂载为卷:
docker run -v $(pwd):/app think-mcp-server
入门
- 使用上述方法之一安装服务器
- 配置您的 AI 客户端以使用 think-mcp-server
- 在您给 Claude 的提示中,包含使用 "think" 工具的说明
- 为了获得最佳效果,请在您的系统提示中添加有效思考模式的示例
TypeScript 开发示例
这是一个专注于 TypeScript 开发的示例提示,旨在帮助 Claude 有效地利用 "think" 工具:
## 使用 think 工具进行 TypeScript 开发
在实现任何 TypeScript 代码或回答技术问题之前,请使用 think 工具来:
- 分析可能相关的类型定义和接口
- 检查潜在的类型错误或边缘情况
- 推理泛型和类型约束
- 验证 TypeScript 功能的正确使用
这是一个使用 think 工具进行 TypeScript 特定推理的示例:
<think_tool_typescript_example>
用户想要在 React TypeScript 中实现一个通用的状态管理钩子
- 需求分析:
* 需要处理任何数据类型(泛型类型)
* 必须在整个状态生命周期中保留类型信息
* 应该提供类型安全的更新方法
* 需要考虑不变性模式
- 要考虑的类型约束:
* T 应该扩展 object,还是允许原始类型?
* Partial<T> 适合更新吗?
* 我们应该使用 Record<string, unknown> 作为回退吗?
- 实现注意事项:
* useState<T> 作为基础
* 添加保留泛型的类型化 setter 方法
* 考虑原子更新的回调模式
* 检查与 React 的钩子规则的兼容性
- 方法:
1. 定义钩子的返回值的泛型接口
2. 使用适当的泛型类型实现 useState
3. 创建维护类型安全的类型化更新方法
4. 添加 JSDoc 注释以获得更好的开发者体验
5. 返回具有正确类型化方法的不可变状态
</think_tool_typescript_example>
在帮助解决 TypeScript 挑战时:
1. 首先分析类型系统的影响
2. 考虑 TypeScript 特定的边缘情况
3. 推理类型缩小和扩大
4. 检查与 TypeScript 编译器版本的兼容性
5. 考虑类型推断和显式类型注释
性能优势
Anthropic 的评估显示,使用 "think" 工具时性能显着提高:
- τ-Bench 航空公司领域相对改进 54%(pass^1 指标:0.570 vs 0.370 基线)
- SWE-bench 上的性能平均提高 1.6%
- 增强了多次试验的一致性
参考
此实现基于 Anthropic 的研究文章 "The 'think' tool: Enabling Claude to stop and think in complex tool use situations",发表于 2025 年 3 月 20 日。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。