Skip to main content
Glama
septapod

Emoji Storyteller MCP Server

by septapod

tell_emoji_madness

Generate chaotic emoji-only stories with maximum silliness and emoji overload for entertainment.

Instructions

THE ULTIMATE CHAOS MODE! Maximum silly emoji overload! 🌀💀✨

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The core handler logic for the 'tell_emoji_madness' tool within the processToolCall function. It generates 10 chaotic emoji stories using the helper function and joins them.
    if (toolName === "tell_emoji_madness") {
      const madness = [];
      for (let i = 0; i < 10; i++) {
        madness.push(generateEmojiStory("random", 8));
      }
      return `🌀 MAXIMUM EMOJI CHAOS MODE ACTIVATED 🌀\n\n${madness.join("\n---\n")}`;
    }
  • index.js:138-146 (registration)
    Registration of the 'tell_emoji_madness' tool in the TOOLS array, which is returned by the ListTools handler.
    {
      name: "tell_emoji_madness",
      description:
        "THE ULTIMATE CHAOS MODE! Maximum silly emoji overload! 🌀💀✨",
      inputSchema: {
        type: "object",
        properties: {},
      },
    },
  • Input schema definition for the tool, specifying an empty object (no parameters required).
    inputSchema: {
      type: "object",
      properties: {},
    },
  • Key helper function generateEmojiStory used repeatedly by the tool handler to produce the chaotic emoji stories.
    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");
    }
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It hints at 'chaos' and 'overload' but doesn't disclose concrete behavioral traits like output format (e.g., string of emojis), randomness, length, or any side effects. The description is too vague to inform the agent adequately about how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence with emojis) but lacks structure and clarity. It's front-loaded with hype but doesn't convey useful information efficiently. While brief, it wastes space on exaggerated language rather than earning its place with actionable details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a vague description, the tool's purpose and behavior are inadequately explained. The description fails to provide enough context for the agent to understand what the tool does, how to use it, or what to expect, making it incomplete for effective tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't mention parameters, which is appropriate. Baseline is 4 for zero parameters, as there's nothing to compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses hyperbolic language ('ULTIMATE CHAOS MODE', 'Maximum silly emoji overload') but lacks a clear, specific verb+resource statement. It suggests generating emojis in a chaotic manner, but doesn't explicitly state what the tool does (e.g., 'Generate a random sequence of emojis'). This is vague and borders on tautology with the tool name 'tell_emoji_madness'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus its siblings (tell_random_story, tell_themed_story). The description implies a 'silly' or 'chaotic' context, but doesn't specify scenarios, prerequisites, or alternatives. This leaves the agent with minimal context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/septapod/mcp-emoji-stories'

If you have feedback or need assistance with the MCP directory API, please join our Discord server