shannon-thinking について
shannon-thinking は、クロード・シャノンの問題解決手法に沿って思考を構造化する単一ツール shannonthinking を提供する MCP サーバーです。複雑な問題を、前提と確信度を明示した段階的な思考に分けたいユーザーを対象としています。
主な機能
- 01問題定義、制約、モデル、証明、実装による思考の分類
- 02思考ステップ間の依存関係の記録
- 03各ステップの不確実性スコアの記録
- 04過去のステップの修正と再検証
- 05形式的証明と実験による検証の併用
活用シーン
- 01情報処理や最適化の問題の分析
- 02段階的なエンジニアリング設計の推論の構造化
- 03複雑な問題を反復的に改善する過程の記録
MCP 対応
本プロジェクトは MCP サーバーであり、単一の shannonthinking ツールを MCP クライアントに公開して、思考ステップを構造化して記録します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| thought | string | はい | 現在の思考ステップ |
| thoughtType | enum | はい | 思考ステップの種類problem_definition | constraints | model | proof | implementation |
| thoughtNumber | integer | はい | 現在の思考番号 |
| totalThoughts | integer | はい | 必要な思考数の推定値 |
| uncertainty | number | はい | 信頼度(0-1) |
| dependencies | array | はい | この思考が基づく思考番号 |
| assumptions | array | はい | 前提の明示的な一覧 |
| nextThoughtNeeded | boolean | はい | 次の思考ステップが必要かどうか |
| isRevision | boolean | いいえ | この思考が以前の思考を修正するかどうか |
| revisesThought | integer | いいえ | 修正対象の思考番号 |
| recheckStep | object | いいえ | 再検討が必要なステップの指定に使用 |
| recheckStep.stepToRecheck | enum | はい | 再検討が必要なステップの種類problem_definition | constraints | model | proof | implementation |
| recheckStep.reason | string | はい | このステップを再確認する必要がある理由 |
| recheckStep.newInformation | string | いいえ | 再確認を促す新しい情報 |
| proofElements | object | いいえ | 形式的な証明ステップに必要な要素 |
| proofElements.hypothesis | string | はい | 検証対象の仮説 |
| proofElements.validation | string | はい | 仮説の検証方法 |
| experimentalElements | object | いいえ | 実験的な検証に必要な要素 |
| experimentalElements.testDescription | string | はい | 実験テストの説明 |
| experimentalElements.results | string | はい | 実験結果 |
| experimentalElements.confidence | number | はい | 実験結果の信頼度(0-1) |
| experimentalElements.limitations | array | はい | 実験的検証の限界 |
| implementationNotes | object | いいえ | 実践的な実装手順に関するメモ |
| implementationNotes.practicalConstraints | array | はい | 実用上の制限事項と制約の一覧 |
| implementationNotes.proposedSolution | string | はい | 詳細な実装提案 |
詳細
shannon-thinking
Claude Shannon の体系的な問題解決手法を紹介する MCP サーバーです。このサーバーは、問題の定義、数学的なモデル化、実践的な実装という Shannon の手法に沿って、複雑な問題を構造化された思考に分解するためのツールを提供します。
概要
情報理論の父として知られる Claude Shannon は、複雑な問題に体系的な手法で取り組みました。
- 問題の定義:問題を基本的な要素にまで分解します
- 制約条件:システムの制限と境界を特定します
- モデル:数学的/理論的な枠組みを構築します
- 証明/検証:形式的な証明または実験的なテストによって検証します
- 実装/実験:実践的な解決策を設計し、テストします
この MCP サーバーは、これらの段階を通じて体系的な問題解決を導くツールとして、この手法を紹介します。
インストール
NPX
{
"mcpServers": {
"shannon-thinking": {
"command": "npx",
"args": [
"-y",
"server-shannon-thinking@latest"
]
}
}
}
使用方法
このサーバーは、Shannon の手法に従って問題解決の思考を構造化する、shannonthinking という名前の単一のツールを提供します。
各思考には、次の内容を含める必要があります。
- 実際の思考内容
- 種類(problem_definition/constraints/model/proof/implementation)
- 思考番号と予想される思考の総数
- 信頼度(不確実性:0-1)
- 以前の思考への依存関係
- 明示的な前提条件
- 追加の思考ステップが必要かどうか
追加機能:
- 修正:理解が深まるにつれて、以前のステップを修正できます
- 再確認:新しい情報に基づいて再検討が必要なステップをマークします
- 実験的検証:形式的な証明に加えて、実証的なテストをサポートします
- 実装メモ:実践的な制約と提案する解決策を記録します
使用例
const thought = {
thought: "The core problem can be defined as an information flow optimization",
thoughtType: "problem_definition",
thoughtNumber: 1,
totalThoughts: 5,
uncertainty: 0.2,
dependencies: [],
assumptions: ["System has finite capacity", "Information flow is continuous"],
nextThoughtNeeded: true,
// Optional: Mark as revision of earlier definition
isRevision: false,
// Optional: Indicate step needs recheck
recheckStep: {
stepToRecheck: "constraints",
reason: "New capacity limitations discovered",
newInformation: "System shows non-linear scaling"
}
};
// Use with MCP client
const result = await client.callTool("shannonthinking", thought);
機能
- 反復的な問題解決:理解が深まるにつれて、修正や再確認を行えます
- 柔軟な検証:形式的な証明と実験的な検証を組み合わせます
- 依存関係の追跡:思考が以前の思考にどのように基づいているかを明示的に追跡します
- 前提条件の管理:前提条件を明確に記録する必要があります
- 信頼度:各ステップの不確実性を定量化します
- 豊富なフィードバック:色分け、記号、検証結果を含む書式設定済みのコンソール出力を提供します
開発
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Watch mode during development
npm run watch
ツールのスキーマ
このツールは、次の構造の思考を受け付けます。
interface ShannonThought {
thought: string;
thoughtType: "problem_definition" | "constraints" | "model" | "proof" | "implementation";
thoughtNumber: number;
totalThoughts: number;
uncertainty: number; // 0-1
dependencies: number[];
assumptions: string[];
nextThoughtNeeded: boolean;
// Optional revision fields
isRevision?: boolean;
revisesThought?: number;
// Optional recheck field
recheckStep?: {
stepToRecheck: ThoughtType;
reason: string;
newInformation?: string;
};
// Optional validation fields
proofElements?: {
hypothesis: string;
validation: string;
};
experimentalElements?: {
testDescription: string;
results: string;
confidence: number; // 0-1
limitations: string[];
};
// Optional implementation fields
implementationNotes?: {
practicalConstraints: string[];
proposedSolution: string;
};
}
使用する場面
この思考パターンは、特に次のような場合に役立ちます。
- 複雑なシステム分析
- 情報処理に関する問題
- エンジニアリング設計上の課題
- 理論的な枠組みを必要とする問題
- 最適化問題
- 実践的な実装を必要とするシステム
- 反復的な改善が必要な問題
- 実験的な検証が理論を補完するケース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。