Unreasnable-thinker-server MCP Server について
Unreasonable-thinker-server は TypeScript で実装された MCP サーバーで、非常識で境界を越える解決策の生成と追跡を行います。メタデータを先に返し、完全な内容はオンデマンドで読み込むことでコンテキストの消費を抑えています。
主な機能
- 01generate_unreasonable_thought による非常識な思考の生成
- 02more_extreme、opposite、tangential の方向によるブランチ作成
- 03サーバー側での検索条件フィルタリング
- 04thought:// リソースによる全文のオンデマンド取得
- 05.thoughts/ ディレクトリへの永続化
活用シーン
- 01課題に対する反常規的な解決策の検討
- 02反逆的または前提に挑戦する思考の検索
- 03セッションをまたいだアイデア記録の保持
MCP 対応
サーバーはツールとリソースを MCP クライアントに公開します。ツールは resource_link と structuredContent を返し、全文は thought:// リソースから取得します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Unconventional Thinking Server (v0.3.0)
大胆で型破り、そして境界を打ち破る問題解決のための、コンテキスト効率の高い MCP サーバーです。
これは、Anthropic の最新の MCP アーキテクチャパターンに基づき、コンテキスト領域の節約に最適化された型破りな思考システムを実装した TypeScript ベースの MCP サーバーです。効率性を維持しながら、問題に対する創造的な解決策を生成し、追跡します。
MCP 仕様 2025-11-25 準拠 —
@modelcontextprotocol/sdkv1.27.1 を使用し、ツールのtitle、annotations、outputSchema、structuredContentレスポンス、およびresource_linkコンテンツタイプを備えています。
アーキテクチャ: コンテキスト節約の設計
このサーバーは、コンテキストのオーバーヘッドを 98.7% 削減するための Anthropic 推奨パターンを示しています。
主要なコンテキスト節約機能
-
オンデマンドのデータ読み込みのための Resources API
- 思考の内容はリソース(
thought://id)として保存されます - Claude は明示的に必要なときだけ全内容を読み込みます
- デフォルトではメタデータが返され、トークンを節約します
- 思考の内容はリソース(
-
サーバーサイドでのフィルタリング
search_thoughtsは、フィルタリングされていないセットを Claude に渡すのではなく、データをローカルでフィルタリングします- データセット全体ではなく、一致する結果のみが返されます
- ソースの段階でフィルタリングすることで、コンテキストの消費を削減します
-
メタデータを優先した返却
- ツールは必須のメタデータとリソース URI のみを返します
- 思考の全内容は Resources API 経由でアクセスできます
- Claude は必要性に応じて全内容を取得するかどうかを判断します
-
ファイルベースの永続ストレージ
- データは
.thoughts/ディレクトリに永続化されます - セッションをまたいで蓄積されるインメモリの肥大化がありません
- 思考をローカルで簡単に検査・デバッグできます
- データは
機能
ツール(すべてコンテキスト効率が高く、MCP 仕様 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(現在は enum 型) - 新しい分岐の
resource_link+structuredContentを返します
- 方向性をサポートします:
-
search_thoughts— 効率的なメタデータ検索- branchId、isRebellion、challengesAssumption でフィルタリングします
- 型付きの count + thoughts 配列を含む
structuredContentを返します - 結果サイズを制御する limit パラメータを含みます
リソース(オンデマンドのコンテンツ読み込み)
- 各思考はリソースとして利用できます:
thought://[thoughtId] - メタデータには以下が含まれます: isRebellion、challengesAssumption、timestamp、分岐情報
- 思考の全内容は、Claude が明示的に要求したときのみ読み込まれます
- 思考が多数存在する場合、トークン使用量を劇的に削減します
これがコンテキスト効率を実現する方法
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。