generate_unreasonable_thought
Generate unconventional solutions by challenging conventional thinking about a specific problem, creating branches of thought in new directions.
Instructions
Generate a new unreasonable thought that challenges conventional thinking. Efficiently creates thoughts without loading full context.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes | The problem or challenge to think unreasonably about | |
| previousThoughtId | No | Optional ID of a previous thought to build upon or rebel against | |
| forceRebellion | No | Force the thought to rebel against conventional wisdom |
Implementation Reference
- src/index.ts:169-212 (handler)MCP tool handler in CallToolRequestSchema switch statement. Parses input arguments, generates thought metadata, calls core generateUnreasonableThought function, persists to file, returns resource URI and metadata without full content.
case "generate_unreasonable_thought": { const { problem, previousThoughtId, forceRebellion } = request.params.arguments as any; const thoughtId = `thought_${Date.now()}`; const isRebellion = forceRebellion || Math.random() > 0.5; const thoughts = loadThoughts(); let branchId; if (previousThoughtId) { const previousThought = thoughts[previousThoughtId]; if (!previousThought) { throw new McpError(ErrorCode.InvalidParams, "Previous thought not found"); } branchId = previousThought.branchId; } const thought: Thought = { id: thoughtId, content: generateUnreasonableThought(problem, previousThoughtId ? thoughts[previousThoughtId] : undefined), isRebellion, challengesAssumption: Math.random() > 0.3, branchFromThought: previousThoughtId, branchId, timestamp: Date.now() }; thoughts[thoughtId] = thought; saveThoughts(thoughts); // Return only essential metadata, not full content - saves context return { content: [{ type: "text", text: JSON.stringify({ thoughtId, resourceUri: `thought://${thoughtId}`, isRebellion: thought.isRebellion, challengesAssumption: thought.challengesAssumption, branchInfo: thought.branchId ? `Branch: ${thought.branchId}` : "Main branch", message: "Thought generated. Use resource URI to access full content." }, null, 2) }] }; } - src/index.ts:64-81 (schema)Input schema defining parameters for the generate_unreasonable_thought tool: problem (required), previousThoughtId (optional), forceRebellion (optional).
inputSchema: { type: "object", properties: { problem: { type: "string", description: "The problem or challenge to think unreasonably about" }, previousThoughtId: { type: "string", description: "Optional ID of a previous thought to build upon or rebel against" }, forceRebellion: { type: "boolean", description: "Force the thought to rebel against conventional wisdom" } }, required: ["problem"] } - src/index.ts:61-82 (registration)Tool registration in ListToolsRequestSchema handler, including name, description, and input schema.
{ name: "generate_unreasonable_thought", description: "Generate a new unreasonable thought that challenges conventional thinking. Efficiently creates thoughts without loading full context.", inputSchema: { type: "object", properties: { problem: { type: "string", description: "The problem or challenge to think unreasonably about" }, previousThoughtId: { type: "string", description: "Optional ID of a previous thought to build upon or rebel against" }, forceRebellion: { type: "boolean", description: "Force the thought to rebel against conventional wisdom" } }, required: ["problem"] } }, - src/index.ts:293-312 (helper)Core helper function that implements the unreasonable thought generation logic using predefined templates and randomization, optionally building on a previous thought.
function generateUnreasonableThought(problem: string, previousThought?: Thought): string { const unreasonableApproaches = [ `What if we completely eliminated the concept of ${problem}?`, `Imagine if ${problem} operated in reverse - what opportunities would that create?`, `If we had infinite resources and no physical limitations, how would we solve ${problem}?`, `What if we combined ${problem} with its exact opposite?`, `How would an alien civilization with completely different logic solve ${problem}?`, `What if the opposite of "${problem}" is actually the better solution?`, `What if we scaled ${problem} up 1000x - what becomes possible?`, `What if we removed all constraints from ${problem} - what changes?` ]; let thought = unreasonableApproaches[Math.floor(Math.random() * unreasonableApproaches.length)]; if (previousThought) { thought = `Building on: ${previousThought.content}\n\nNew angle: ${thought}`; } return thought; }