关于 Unreasnable-thinker-server MCP Server
Unreasonable-thinker-server 是一个 TypeScript 编写的 MCP 服务,用于生成和追踪非常规的创造性解法。它以节省上下文空间为设计目标,采用元数据优先返回与按需加载的方式。
主要功能
- 01generate_unreasonable_thought 生成非常规思路
- 02branch_thought 按 more_extreme、opposite、tangential 分支
- 03search_thoughts 在服务端按条件过滤
- 04thought:// 资源按需加载完整内容
- 05.thoughts/ 目录持久化存储
适用场景
- 01围绕某个问题探索反常规的解决思路
- 02检索标记为反叛或挑战假设的思路
- 03在多轮会话之间保留思路记录
MCP 相关
该服务通过工具和资源向 MCP 客户端暴露思路数据,工具返回 resource_link 与 structuredContent,完整内容通过 thought:// 资源获取。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
非常规思维服务(v0.3.0)
一款上下文高效的 MCP 服务,助力大胆、非常规且突破边界的问题解决。
这是一个基于 TypeScript 的 MCP 服务,采用 Anthropic 最新的 MCP 架构模式,实现了一套非常规思维系统,并针对节省上下文空间进行了优化。它能生成并跟踪问题的创意解决方案,同时保持高效。
符合 MCP spec 2025-11-25 — 使用
@modelcontextprotocol/sdkv1.27.1,支持工具title、annotations、outputSchema、structuredContent响应,以及resource_link内容类型。
架构:节省上下文的设计
本服务展示了 Anthropic 建议使用的模式,可将上下文开销减少 98.7%:
节省上下文的关键特性
-
按需加载数据的 Resources API
- 思维内容以资源形式存储(
thought://id) - Claude 仅在明确需要时加载完整内容
- 默认只返回元数据,从而节省 token
- 思维内容以资源形式存储(
-
服务端过滤
search_thoughts在本地过滤数据,而不是将未经筛选的数据集传给 Claude- 仅返回匹配结果,而非整个数据集
- 通过在数据源处过滤来减少上下文消耗
-
优先返回元数据
- 工具仅返回必要的元数据和资源 URI
- 可通过 Resources API 访问完整思维内容
- Claude 根据需要决定是否获取完整内容
-
基于文件的持久化存储
- 数据持久保存在
.thoughts/目录中 - 不会在多个会话中累积内存占用
- 可以轻松在本地检查和调试思维内容
- 数据持久保存在
功能
工具(均注重上下文效率,符合 MCP spec 2025-11-25)
每个工具现在都包含:
title— 在客户端 UI 中显示的易读名称annotations— 行为提示(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)outputSchema— 描述结构化结果的 JSON Schema- 响应中的
structuredContent— 符合该架构的机器可读输出 resource_link内容项 — 客户端可订阅或获取的明确链接
-
generate_unreasonable_thought— 生成新的非常规思维- 返回
resource_link和structuredContent,而非原始文本块 - 可以基于先前的思维继续发展,也可以对其提出反驳
- 可通过 Resources API 获取完整思维内容
- 返回
-
branch_thought— 创建新的思维分支- 支持以下方向:
more_extreme、opposite、tangential(现在为枚举类型) - 为新分支返回
resource_link和structuredContent
- 支持以下方向:
-
search_thoughts— 高效搜索元数据- 按 branchId、isRebellion、challengesAssumption 过滤
- 返回包含类型化计数和思维数组的
structuredContent - 支持限制结果数量的 limit 参数
Resources(按需加载内容)
- 每条思维都可作为资源获取:
thought://[thoughtId] - 元数据包括:isRebellion、challengesAssumption、timestamp、分支信息
- 仅在 Claude 明确请求时才加载完整思维内容
- 思维数量较多时,可大幅减少 token 用量
如何实现上下文效率
1. 渐进式呈现
Claude 无需预先获取 100 条思维的完整内容。取而代之的是:
search_thoughts仅返回 ID 和元数据(每条思维 100 字节)- Claude 通过 Resources API 有选择地获取相关思维的完整内容
- 这类似于文件系统的工作方式:先列出文件,再打开特定文件
2. 服务端过滤
传统方式(❌ 效率低下):
All 1000 thoughts → Claude → Claude filters → Uses only 10
(costs tokens for all 1000)
本服务的方式(✅ 高效):
search_thoughts filter params → Server filters locally → Returns only 10 results
(Claude never sees the unused 990)
3. 优先返回元数据的模式
工具响应包含:
- 思维 ID
- 用于访问完整内容的资源 URI
- 简要元数据(每条 2-3 KB)
- 不包含完整的 500 字符思维内容(每条思维可节省约 5KB)
节省示例:有 100 条思维时:
- 旧方式:占用 500KB 上下文
- 新方式:约 30KB + 仅获取所需内容
开发
安装依赖:
npm install
构建服务:
npm run build
使用自动重建进行开发:
npm run watch
安装
要与 Claude Desktop 配合使用,请添加服务配置:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"unconventional-thinking": {
"command": "/path/to/unconventional-thinking/build/index.js"
}
}
}
使用示例
Claude: Generate an unreasonable thought about scaling problems
→ Tool: generate_unreasonable_thought("scaling problems")
← Returns: resource_link (thought://...) + structuredContent { thoughtId, isRebellion, ... }
Claude: What are all the rebellious thoughts?
→ Tool: search_thoughts(isRebellion=true, limit=5)
← Returns: structuredContent { count, thoughts: [...metadata] }
Claude: I need to see the full content of thought_xyz
→ Resource: Read thought://thought_xyz
← Returns: Full thought content (loaded only when needed)
调试
由于 MCP 服务通过 stdio 通信,调试可能颇具挑战。我们建议使用 MCP Inspector,它可通过软件包脚本运行:
npm run inspector
Inspector 会提供一个 URL,供你在浏览器中访问调试工具。
参考资料
此服务实现了以下资源中的模式:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。