香农思考
一个演示克劳德·香农系统性问题解决方法的 MCP 服务器。该服务器提供了一个工具,可以帮助将复杂问题分解为结构化思路,遵循香农的问题定义、数学建模和实际实施方法。
概述
克劳德·香农被誉为信息论之父,他通过系统的方法来处理复杂问题:
- 问题定义:将问题分解成基本要素
- 约束:识别系统限制和边界
- 模型:开发数学/理论框架
- 证明/验证:通过正式证明或实验测试进行验证
- 实施/实验:设计和测试实用解决方案
该 MCP 服务器演示了这种方法,作为一种工具,可帮助指导通过这些阶段进行系统性问题解决。
安装
NPX
{
"mcpServers": {
"shannon-thinking": {
"command": "npx",
"args": [
"-y",
"server-shannon-thinking@latest"
]
}
}
}
用法
该服务器提供了一个名为shannonthinking
的单一工具,该工具根据香农的方法论来构建解决问题的思路。
每个想法必须包括:
- 实际的思想内容
- 类型(问题定义/约束/模型/证明/实施)
- 想法数量和想法总数估计
- 置信水平(不确定性: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;
};
}
何时使用
这种思维模式对于以下情况尤其有价值:
- 复杂系统分析
- 信息处理问题
- 工程设计挑战
- 需要理论框架的问题
- 优化问题
- 需要实际实施的系统
- 需要迭代改进的问题
- 实验验证补充理论的情况