mcpField
T
Thoughtbox

Thoughtbox

ローカル
github.com/Kastalien-ResearchAI・エージェント6516 週間前に更新

Thoughtbox について

Thoughtbox は、構造化されたマルチエージェントの推論を行う MCP サーバーです。各思考ステップは番号と関連付けを持つ形で永続的な推論台帳に記録され、可視化・エクスポート・分析ができます。推論過程の監査が必要なチーム向けで、付属の Observatory Web UI で推論セッションをリアルタイムに確認できます。

主な機能

  1. 01コードを通じて全操作を公開する 2 つのツール
  2. 02前向き、後ろ向き、分岐、修正の推論パターン
  3. 03問題、提案、合意を扱う Hub ワークスペース
  4. 04監査向けのタイムスタンプ付き推論台帳
  5. 05分岐ナビゲーションを備えた Observatory のライブグラフ
  6. 06filesystem、メモリ、Supabase のストレージバックエンド

活用シーン

  1. 01セッションをまたいで結論に至った経緯を確認する
  2. 02共有ワークスペースで複数のエージェントを調整する
  3. 03並行する推論分岐で設計案を比較する

MCP 対応

Thoughtbox 自体が MCP サーバーで、Streamable HTTP 経由で 2 つのツールをクライアントに公開します。ドキュメントは Claude Code 向けに最適化されており、Cline と VS Code の設定方法も記載されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"thoughtbox": {
"command": "npx",
"args": [
"-y",
"@kastalien-research/thoughtbox"
]
}
}
}
起動コマンドnpx -y @kastalien-research/thoughtbox

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@kastalien-research/thoughtbox1.0.3

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
thoughtstringはい現在の思考ステップ
branchIdstringいいえ分岐の識別子
isRevisionbooleanいいえ以前の思考を修正するかどうか
includeGuidebooleanいいえパターンガイドを埋め込みリソースとしてリクエストします(thought 1 と最後の thought でも自動的に提供されます)。
thoughtNumberintegerはい現在の思考番号(前向き思考では 1→N、逆向き/目標主導の思考では N→1 にできます)。
totalThoughtsintegerはい必要な思考の推定総数(逆向き思考では thoughtNumber = totalThoughts から開始します)。
revisesThoughtintegerいいえ再検討する思考の番号
branchFromThoughtintegerいいえ分岐元となる思考の番号
needsMoreThoughtsbooleanいいえさらに思考が必要かどうか
nextThoughtNeededbooleanはい次の思考ステップが必要かどうか

詳細

Thoughtbox

監査可能なマルチエージェント協調推論。 Thoughtbox は、構造化されたマルチエージェント推論のための MCP サーバーで、ワークスペースや調査のワークフローに対応するウェブアプリを付属しています。すべてのステップは、永続的な推論台帳に構造化された思考として記録され、可視化、エクスポート、分析できます。

実行モード: ローカル開発では、ファイルシステムまたはインメモリストレージを使用できます。デプロイモードでは Supabase を利用したストレージを使用し、現在の本番 MCP サーバーは Cloud Run で実行されています。

Thoughtbox 観測所 推論セッションの思考が 14 件表示され、思考 5 から分岐した分岐探索(紫色のノード 13~14)が示されている Observatory UI。

コードモード

Thoughtbox は、コードモードパターンを使用する 2 つの MCP ツールのみを公開します。

  • thoughtbox_search — JavaScript を記述して、操作/プロンプト/リソースのカタログを検索します。LLM はカタログに対して、プログラムによるフィルタリング機能をすべて利用できます。
  • thoughtbox_execute — tb SDK を使った JavaScript を記述して、操作を連鎖させます。統一された名前空間を通じて、思考、セッション、ナレッジ、ノートブック、ハブ、可観測性、プロトコルツールにアクセスできます。

ワークフロー: まず検索して利用可能な操作を確認し、次にコードを実行して操作を呼び出します。デバッグには console.log() を使用します。出力は応答ログに記録されます。

これにより、操作ごとにツールを登録する方式を、コンテキストウィンドウを肥大化させずに拡張できる 2 ツール構成に置き換えます。

マルチエージェント協調

ハブは調整レイヤーです。エージェントは役割に応じたプロフィールを登録し、共有ワークスペースに参加して、構造化された問題解決ワークフローに沿って作業します。これらはすべて thoughtbox_execute を通じて行われます。

ワークフロー: 登録 → ワークスペースを作成 → 問題を作成 → 担当を引き受ける → 作業する → 解決策を提案する → ピアレビュー → マージ → 合意

ワークスペースのプリミティブ:

  • 問題 — 依存関係、サブ問題、ステータス追跡(未対応 → 進行中 → 解決済み → クローズ)を備えた作業単位
  • 提案 — ソースブランチの参照とレビューワークフローを備えた解決策の提案
  • 合意 — 追跡可能性を確保するため、思考への参照に結び付けられた意思決定マーカー
  • チャンネル — 議論のために問題に紐付けられたメッセージストリーム

エージェントプロフィール: MANAGER、ARCHITECT、DEBUGGER、SECURITY、RESEARCHER、REVIEWER — それぞれが、分野に特化したメンタルモデルと行動のプライミングを提供します。

アイデンティティ、ワークスペース管理、問題、提案、合意、チャンネル、ステータス報告にわたる 28 の操作があります。

監査可能な推論

すべての思考はグラフ内のノードであり、番号、タイムスタンプ、先行ノードへのリンクが付与され、セッションをまたいで永続化されます。これにより、結論に至った過程を監査可能な形で記録できます。

エージェントは順方向に思考し、逆方向に計画を立て、並行探索へ分岐し、以前の結論を修正できます。それぞれのパターンは、第一級の操作として用意されています。

パターン説明使用例
順方向1→2→3→N と順に進む探索、発見、自由形式の分析
逆方向目標(N)から始め、開始点(1)へさかのぼる計画、システム設計、既知の目標からの作業
分岐並行探索(A、B、C...)に分岐する選択肢の比較、A/B シナリオ
修正新しい情報を使って以前の思考を更新するエラー修正、理解の精緻化

各思考には、使用するプロセスパターンとは独立して、思考の「種類」を分類する意味的な thoughtType(reasoning、decision_frame、action_report、belief_snapshot、assumption_update、context_snapshot、progress)が付与されています。

包括的な例については、**パターンのクックブック**を参照してください。

リアルタイムオブザーバビリティ

Observatory は、推論の進行をリアルタイムで確認できる、http://localhost:1729 で利用可能な組み込みのウェブ UI です。

  • ライブグラフ — WebSocket 経由で思考がノードとしてリアルタイムに表示されます
  • ブランチナビゲーション — ブランチはクリック可能なスタブに折りたたまれ、詳細を確認したり、元に戻ったりできます
  • 詳細パネル — 任意のノードをクリックすると、思考の内容全体を表示できます
  • 複数セッション — アクティブな推論セッションを切り替えられます
  • 詳細分析 — セッションを分析して、推論パターン、認知負荷、意思決定ポイントを確認できます

オブザーバビリティスタック全体には、OpenTelemetry トレーシング、Prometheus メトリクス、Grafana ダッシュボードが含まれます。

ナレッジと推論のツール

ナレッジグラフ — セッションをまたいで保持されるメモリです。インサイト、概念、ワークフロー、意思決定を、型付きエンティティと型付きの関係(BUILDS_ON、CONTRADICTS、SUPERSEDES など)、および可視性制御(public、agent-private、team-private)とともに記録します。

ノートブック — ドキュメントと、隔離された環境で実行可能な JavaScript/TypeScript を組み合わせた、インタラクティブな文芸的プログラミング環境です。

クライアントとの互換性

Thoughtbox は現在、Claude Code 向けに最適化されています。ほかの MCP クライアントのサポートにも積極的に取り組んでいます。MCP エコシステム全体で機能のサポート状況(サーバー機能(プロンプト、リソース、ツール)、クライアント機能(ルート、サンプリング、エリシテーション)、listChanged 通知のような動作)に違いがあるため、多くのクライアント向けに個別の調整を実装しています。

Claude Code 以外のクライアントを使用していて問題が発生した場合は、使用しているクライアントと問題の内容を記載して、issue を作成してください。

インストール

Thoughtbox は Docker ベースの MCP サーバーとして動作します。Docker と Docker Compose が必要です。

クイックスタート
git clone https://github.com/Kastalien-Research/thoughtbox.git
cd thoughtbox
docker compose up --build

これにより、Thoughtbox とオブザーバビリティスタック全体が起動します。MCP サーバーはポート 1731 でリッスンし、Observatory UI は http://localhost:1729 で利用できます。

MCP クライアントの設定

Thoughtbox は HTTP トランスポートを使用するため、URL 経由で接続するように MCP クライアントを設定してください。

Claude Code

~/.claude/settings.json またはプロジェクトの .claude/settings.json に追加します。

{
  "mcpServers": {
    "thoughtbox": {
      "url": "http://localhost:1731/mcp"
    }
  }
}

オブザーバビリティサイドカー経由で接続する場合(OpenTelemetry トレーシングが追加されます):

{
  "mcpServers": {
    "thoughtbox": {
      "url": "http://localhost:4000/mcp"
    }
  }
}
Cline / VS Code

MCP 設定または .vscode/mcp.json に追加します。

{
  "servers": {
    "thoughtbox": {
      "url": "http://localhost:1731/mcp"
    }
  }
}

使用例

前向き思考 — 問題分析
Thought 1: "Users report slow checkout. Let's analyze..."
Thought 2: "Data shows 45s average, target is 10s..."
Thought 3: "Root causes: 3 API calls, no caching..."
Thought 4: "Options: Redis cache, query optimization, parallel calls..."
Thought 5: "Recommendation: Implement Redis cache for product data"
後ろ向き思考 — システム設計
Thought 8: [GOAL] "System handles 10k req/s with <100ms latency"
Thought 7: "Before that: monitoring and alerting operational"
Thought 6: "Before that: resilience patterns implemented"
Thought 5: "Before that: caching layer with invalidation"
...
Thought 1: [START] "Current state: 1k req/s, 500ms latency"
分岐 — 選択肢の比較
Thought 4: "Need to choose database architecture..."

Branch A (thought 5): branchId="sql-path"
  "PostgreSQL: ACID compliance, mature tooling, relational integrity"

Branch B (thought 5): branchId="nosql-path"
  "MongoDB: Flexible schema, horizontal scaling, document model"

Thought 6: [SYNTHESIS] "Use PostgreSQL for transactions, MongoDB for analytics"

環境変数

変数説明デフォルト
DISABLE_THOUGHT_LOGGINGstderr への思考ログ出力を抑制しますfalse
THOUGHTBOX_DATA_DIR永続ストレージのベースディレクトリ~/.thoughtbox
THOUGHTBOX_PROJECTセッション分離に使用するプロジェクトスコープ_default
THOUGHTBOX_TRANSPORTトランスポートの種類(stdio または http)http
THOUGHTBOX_STORAGEストレージバックエンド(fs、memory、supabase のいずれか)fs
THOUGHTBOX_OBSERVATORY_ENABLEDObservatory ウェブ UI を有効にしますfalse
THOUGHTBOX_OBSERVATORY_PORTObservatory UI のポート1729
THOUGHTBOX_OBSERVATORY_CORSObservatory の CORS オリジン(カンマ区切り)(なし)
THOUGHTBOX_AGENT_ID事前に割り当てられた Hub エージェント ID(なし)
THOUGHTBOX_AGENT_NAME事前に割り当てられた Hub エージェント名(なし)
SUPABASE_URLSupabase プロジェクト URL(supabase ストレージに必要)(なし)
SUPABASE_SERVICE_ROLE_KEYSupabase サービスロールキー(supabase ストレージに必要)(なし)
PORTHTTP サーバーのポート1731
HOSTHTTP サーバーのバインドアドレス0.0.0.0
NODE_ENVNode 環境(なし)
PROMETHEUS_URLPrometheus エンドポイント(Docker)http://prometheus:9090
GRAFANA_URLGrafana エンドポイント(Docker)http://grafana:3000

開発

ローカル開発の場合(Node.js 22 以降が必要です):

pnpm install
pnpm build
pnpm dev      # Development with hot reload
テスト
npx vitest run              # Unit tests
pnpm test                   # Full suite (build + vitest)
pnpm test:agentic           # Agentic tests — full suite (build + run)
pnpm test:agentic:tool      # Agentic tests — tool-level only
pnpm test:agentic:quick     # Agentic tests — quick (no build)
pnpm test:behavioral        # Behavioral contract tests
Docker Compose

docker compose up --build を実行すると、スタック全体が起動します。

サービスポート説明
thoughtbox1731 (MCP), 1729 (Observatory)コア MCP サーバー + Observatory UI
mcp-sidecar4000OpenTelemetry を使用した可観測性プロキシ
otel-collector4318 (HTTP), 8889 (メトリクス)OpenTelemetry Collector
prometheus9090メトリクスの保存 + アラート
grafana3001ダッシュボードと可視化

永続データは、名前付きボリューム thoughtbox-data、prometheus-data、grafana-data に保存されます。

アーキテクチャ

src/
├── index.ts                # Entry point (Streamable HTTP transport)
├── server-factory.ts       # MCP server factory with tool registration
├── thought-handler.ts      # Core thought recording logic
├── types.ts                # Shared type definitions
├── database.types.ts       # Supabase generated types
├── code-mode/              # Code Mode tool surface
│   ├── search-tool.ts      # thoughtbox_search — catalog query via JS
│   ├── execute-tool.ts     # thoughtbox_execute — operation chaining via tb SDK
│   ├── search-index.ts     # Frozen catalog of operations/prompts/resources
│   └── sdk-types.ts        # TypeScript definitions for the tb SDK
├── thought/                # Thought operations and tool definitions
├── sessions/               # Session management
├── persistence/            # Storage layer
│   ├── storage.ts          # InMemoryStorage with LinkedThoughtStore
│   ├── filesystem-storage.ts  # FileSystemStorage with atomic writes
│   └── supabase-storage.ts # SupabaseStorage for deployed/cloud usage
├── observatory/            # Real-time visualization
│   ├── ui/                 # Self-contained HTML/CSS/JS
│   └── ws-server.ts        # WebSocket server for live updates
├── hub/                    # Multi-agent collaboration
│   ├── identity.ts         # Agent registration
│   ├── workspace.ts        # Workspace management
│   ├── problems.ts         # Problem tracking with dependencies
│   ├── proposals.ts        # Solution proposals with reviews
│   ├── consensus.ts        # Decision recording
│   ├── channels.ts         # Problem-scoped messaging
│   ├── hub-handler.ts      # Hub operation dispatcher
│   └── operations.ts       # 28-operation catalog
├── channel/                # Hub event channels and SSE streaming
├── protocol/               # Ulysses and Theseus protocol tools
├── knowledge/              # Knowledge graph memory
├── auth/                   # API key authentication
├── audit/                  # Audit manifest generation
├── evaluation/             # LangSmith evaluation and online monitoring
├── notebook/               # Literate programming engine
├── events/                 # Event emission system
├── observability/          # Prometheus/Grafana integration
├── prompts/                # MCP prompt definitions
├── references/             # Anchor parsing and resolution
├── revision/               # Revision indexing
├── operations-tool/        # Operations tool handler
└── resources/              # Documentation and patterns cookbook
ストレージ

Thoughtbox は、次の 3 種類のストレージバックエンドをサポートしています。

  • InMemoryStorage:テスト用の揮発性ストレージです。O(1) の思考検索には LinkedThoughtStore を使用します。
  • FileSystemStorage:アトミックな書き込みとプロジェクト分離に対応した永続ストレージです(デフォルト)。
  • SupabaseStorage:デプロイ済みインスタンス向けの、Supabase Postgres を基盤とするクラウドネイティブストレージです。

データはデフォルトで ~/.thoughtbox/ に保存されます(FileSystemStorage)。

~/.thoughtbox/
├── config.json           # Global configuration
└── projects/
    └── {project}/
        └── sessions/
            └── {date}/
                └── {session-id}/
                    ├── manifest.json
                    └── {thought-number}.json

コントリビューション

コントリビューションを歓迎します!CONTRIBUTING.md では、以下について説明しています。

  • 開発環境のセットアップ
  • コミット規約(thick_read のコード理解に最適化)
  • vitest とエージェント型スクリプトを使ったテスト
  • プルリクエストの手順

ライセンス

MIT License — 無料で使用、変更、配布できます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。