关于 mcp-thinkgate
mcp-thinkgate 是一个 MCP 服务和库,用于按提示词复杂度选择 Claude 的思考层级,并提供建议的模型。它可供构建 Claude Agent 的开发者使用;无 API 密钥时可退回基于规则的分类。
主要功能
- 01将任务分为 fast、think 和 ultrathink
- 02提供对应的思考深度与建议模型
- 03支持 Claude 及 OpenRouter 配置档
- 04提供 MCP 工具和 TypeScript 库
- 05无 API 密钥时支持规则分类
适用场景
- 01按任务复杂度调整 Claude 思考层级
- 02在 Agent 工作流中预先分类提示词
- 03为 Claude Agent 接入自动路由
MCP 相关
MCP 服务提供提示词复杂度分类结果,包括层级、思考深度、建议模型和原因。该工具只提供建议,宿主需要实际切换模型。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-thinkgateANTHROPIC_API_KEY密钥Optional. Enables AI-powered classification via Haiku (more accurate). Falls back to rule-based classification if not provided. Get a key at https://console.anthropic.com本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| prompt | string | 是 | 要分类的提示词或任务 |
详细介绍
ThinkGate
为 Claude Agent 自动选择推理模式。
问题
你构建了一个 AI Agent。它能处理各种任务——状态检查、快速查询、复杂的架构问题、深度调试。但在底层,每条消息都通过同一个模型,并使用相同的思考设置。
这意味着你会在“东京现在几点?”这类问题上浪费扩展思考令牌,却在“帮我设计整个身份验证系统”这类问题上得到浅显的答案。
你可以手动为请求添加标签——在难题前加上 ULTRATHINK:。但你会忘记,用户更不会这么做。如果你是在为他人构建 Agent,也不可能培训每位最终用户来管理思考模式。
ThinkGate 在基础设施层解决了这个问题。 它位于传入消息和模型调用之间,用约 200 毫秒对复杂度进行分类,并准确返回应使用的模型和思考深度。全程自动,每次如此。
适用对象
- Agent 构建者:使用 Claude 处理各种简单和复杂任务,厌倦了千篇一律的模型设置
- 运行全天候 Agent 的团队(WhatsApp 机器人、Slack 助手、Telegram Agent):消息复杂度差异很大,成本和延迟确实很重要
- 曾经手动输入过
ULTRATHINK,并觉得这本该自动完成的所有人
工作原理
Incoming message
↓
Haiku call (~200ms, ~$0.0001)
"How complex is this?"
↓
fast → no extended thinking
think → medium effort
ultrathink → max effort
↓
Claude runs with the right settings
一次低成本、快速的 Haiku 调用会读取你的提示词,并判断需要哪个层级。随后,你的主 Claude 调用会采用合适的工作强度运行。分类几乎不花钱,而对于 60% 以上不需要扩展推理的消息,你可以节省实际成本和延迟。
这里的核心知识产权是分类器,而不是运行分类器的模型。它分为三个层级。系统提示词针对“这需要思考”和“这不需要思考”之间的界限进行了训练。开箱即用。
层级
| 层级 | Claude 工作强度 | 适用场景 |
|---|---|---|
fast | none | 事实查询、对话、简单编辑 |
think | medium | 架构设计、调试、多步分析 |
ultrathink | max / high | 系统设计、证明、开放式复杂问题 |
配置档案(模型映射)
设置 THINKGATE_PROFILE,或向 classifyPrompt 传入 { profile }:
| 配置档案 | fast | think | ultrathink |
|---|---|---|---|
claude(默认) | claude-haiku-4-5-... | claude-sonnet-4-6 | claude-opus-4-6 |
openrouter-cost | google/gemini-2.5-flash | anthropic/claude-sonnet-4.5 | anthropic/claude-opus-4.6 |
openrouter-balanced | anthropic/claude-haiku-4.5 | anthropic/claude-sonnet-4.5 | anthropic/claude-opus-4.6 |
各层级的模型覆盖设置:THINKGATE_FAST_MODEL、THINKGATE_THINK_MODEL、THINKGATE_ULTRA_MODEL。
成本说明: MCP 工具仅提供建议。宿主必须实际切换模型。
Pi 通过 ~/.pi/agent/extensions/thinkgate-router.ts + thinkgate.json 实现这一点。
规则模式(无需 API 密钥)免费,且推荐用于自动路由。粘贴冗长的检查清单不再会自动升级到 THINK。
用作 MCP 工具(Claude Desktop / Claude Code)
将以下内容添加到 ~/.claude/settings.json(Claude Code)或 ~/Library/Application Support/Claude/claude_desktop_config.json(Claude Desktop):
{
"mcpServers": {
"thinkgate": {
"command": "npx",
"args": ["-y", "mcp-thinkgate"],
"env": {
"ANTHROPIC_API_KEY": "your-api-key-here"
}
}
}
}
重启 Claude。现在,你可以让它在回答前先进行分类:
“回答前,请对这项任务的复杂度进行分类:为公共 API 设计一个速率限制器”
Tier: think
Effort: medium
Suggested model: claude-sonnet-4-6
Confidence: 92%
Why: Requires structured design reasoning and trade-off analysis, but has well-defined scope.
用作库(Agent 框架)
安装:
npm install mcp-thinkgate
导入并使用:
import { classifyPrompt, setLogLevel } from 'mcp-thinkgate';
// Optional: silence logs (default level is 'info', writes to stderr)
setLogLevel('error');
const result = await classifyPrompt(userMessage, process.env.ANTHROPIC_API_KEY!);
// result.tier → 'fast' | 'think' | 'ultrathink'
// result.effort → 'none' | 'medium' | 'max'
// result.confidence → 0.0 - 1.0
// result.reasoning → one sentence explanation
// Works without an API key too (rule-based fallback):
const quickResult = await classifyPrompt(userMessage);
参考实现:TinyClaw
TinyClaw 是一个面向 Claude 的开源多 Agent 框架。ThinkGate 已接入其 invokeAgent() 函数——每条消息都会在 Claude CLI 运行前自动分类,并据此设置 --effort。
只需添加三行代码,无需任何配置。每个团队中的每个 Agent 都会自动采用合适的思考深度。
查看 src/lib/invoke.ts 中的集成。
要求
- Node.js 20+
- Anthropic API 密钥(可选——缺省时使用基于规则的分类)
本地开发
git clone https://github.com/tjp2021/mcp-thinkgate
cd mcp-thinkgate
npm install
npm test
npm run build
贡献
有关开发环境设置、命令和 PR 流程,请参阅 CONTRIBUTING.md。
安全
有关漏洞报告,请参阅 SECURITY.md。
许可证
MIT — 请参阅 LICENSE
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。