tell_random_story
Generate unpredictable emoji stories with adjustable chaos levels for entertainment and creative inspiration.
Instructions
Tells a completely random and chaotic emoji story. Perfect for when you want pure chaos! πβ¨
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chaos_level | No | How chaotic the story should be (1-10). Default: 5 |
Implementation Reference
- index.js:152-156 (handler)Executes the tell_random_story tool: extracts chaos_level (default 5), generates story using helper function, and returns formatted emoji story.if (toolName === "tell_random_story") { const chaosLevel = toolInput.chaos_level || 5; const story = generateEmojiStory("random", chaosLevel); return `π¬ EMOJI STORY (Chaos Level: ${chaosLevel}/10) π¬\n\n${story}`; }
- index.js:109-119 (schema)Defines the input schema for tell_random_story tool with optional chaos_level parameter.inputSchema: { type: "object", properties: { chaos_level: { type: "number", description: "How chaotic the story should be (1-10). Default: 5", minimum: 1, maximum: 10, }, }, },
- index.js:105-120 (registration)Tool definition and registration in the TOOLS array used by ListToolsRequestHandler.{ name: "tell_random_story", description: "Tells a completely random and chaotic emoji story. Perfect for when you want pure chaos! πβ¨", inputSchema: { type: "object", properties: { chaos_level: { type: "number", description: "How chaotic the story should be (1-10). Default: 5", minimum: 1, maximum: 10, }, }, }, },
- index.js:32-74 (helper)Core helper function that generates the chaotic emoji story by building scenes from random emojis based on chaos level.function generateEmojiStory(theme = "random", chaosLevel = 5) { const scenes = []; const storyLength = chaosLevel + 3; // Act I - The Setup scenes.push( `Act I: ${getRandomEmojis("places", 1)} ${getRandomEmojis("animals", 2)}` ); scenes.push( `${getRandomEmojis("emotions", 1)} ${getRandomEmojis("weather", 1)}` ); // Act II - The Chaos for (let i = 0; i < storyLength; i++) { const sceneType = Math.random(); if (sceneType < 0.3) { // Action scene scenes.push( `${getRandomEmojis("action", 2)} ${getRandomEmojis("objects", 1)} ${getRandomEmojis("action", 1)}` ); } else if (sceneType < 0.6) { // Emotional scene scenes.push( `${getRandomEmojis("emotions", 2)} ${getRandomEmojis("magic", 1)}` ); } else { // Complete randomness scenes.push( `${getRandomEmojis("silly", 1)} ${getRandomEmojis("food", 1)} ${getRandomEmojis("animals", 1)} ${getRandomEmojis("objects", 1)}` ); } } // Act III - The Climax scenes.push( `β‘π₯ ${getRandomEmojis("magic", 2)} π ${getRandomEmojis("animals", 1)} π«` ); // The Ending (always weird) scenes.push(`THE END... OR IS IT? πβ¨π`); return scenes.join("\n"); }
- index.js:23-30 (helper)Utility helper to select random emojis from predefined categories, used in story generation.function getRandomEmojis(category, count = 1) { const emojis = EMOJIS[category]; const result = []; for (let i = 0; i < count; i++) { result.push(emojis[Math.floor(Math.random() * emojis.length)]); } return result; }