Skip to main content
Glama

bowl_vs_burrito_decision_engine

Decide between a bowl or burrito based on hunger level, clothing color, risk tolerance, and meeting schedule to simplify fast casual dining choices.

Instructions

AI-powered format selection engine. Eliminates the most agonizing decision in fast casual dining.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hunger_levelYesHunger level 1-10
clothing_colorYesColor of your shirt
risk_toleranceYesYour risk tolerance
meeting_in_30_minutesYesDo you have a meeting in the next 30 minutes?

Implementation Reference

  • The tool 'bowl_vs_burrito_decision_engine' is registered and implemented in index.js, taking user preferences and returning a formatted decision based on scores.
    server.tool(
      "bowl_vs_burrito_decision_engine",
      "AI-powered format selection engine. Eliminates the most agonizing decision in fast casual dining.",
      {
        hunger_level: z.number().min(1).max(10).describe("Hunger level 1-10"),
        clothing_color: z.enum(["white", "light", "dark", "black", "no_shirt"]).describe("Color of your shirt"),
        risk_tolerance: z.enum(["low", "medium", "high", "yolo"]).describe("Your risk tolerance"),
        meeting_in_30_minutes: z.boolean().describe("Do you have a meeting in the next 30 minutes?"),
      },
      async ({ hunger_level, clothing_color, risk_tolerance, meeting_in_30_minutes }) => {
        let bowlScore = 0;
        let burritoScore = 0;
    
        // Hunger analysis
        if (hunger_level >= 8) bowlScore += 2; // more food in bowl
        else burritoScore += 1; // portable
    
        // Clothing risk
        const stainRisk = { white: 5, light: 3, dark: 1, black: 0, no_shirt: -1 }[clothing_color];
        if (stainRisk >= 3) bowlScore += 3;
        else burritoScore += 1;
    
        // Risk tolerance
        if (risk_tolerance === "low") bowlScore += 2;
        else if (risk_tolerance === "yolo") burritoScore += 3;
        else burritoScore += 1;
    
        // Meeting factor
        if (meeting_in_30_minutes) bowlScore += 4; // no burrito drip in meetings
    
        const decision = bowlScore > burritoScore ? "Bowl" : "Burrito";
        const confidence = Math.abs(bowlScore - burritoScore) / (bowlScore + burritoScore + 1);
    
        const reasons = [];
        if (stainRisk >= 3) reasons.push("High shirt stain risk detected");
        if (meeting_in_30_minutes) reasons.push("Meeting proximity requires structural stability");
        if (hunger_level >= 8) reasons.push("Extreme hunger favors bowl's superior volume");
        if (risk_tolerance === "yolo") reasons.push("YOLO mode engaged - burrito or nothing");
        if (clothing_color === "no_shirt") reasons.push("No shirt detected. Bold strategy. Burrito approved.");
        if (reasons.length === 0) reasons.push("General vibes analysis");
    
        const lines = [
          "# Bowl vs. Burrito Decision",
          "",
          "```",
          "  Format Selection Engine v2.1",
          "  ============================",
          `  Hunger:        ${hunger_level}/10`,
          `  Shirt Color:   ${clothing_color}`,
          `  Stain Risk:    ${stainRisk >= 3 ? "HIGH" : "LOW"}`,
          `  Risk Profile:  ${risk_tolerance}`,
          `  Meeting Soon:  ${meeting_in_30_minutes ? "YES" : "No"}`,
          "",
          `  Bowl Score:    ${bowlScore}`,
          `  Burrito Score: ${burritoScore}`,
          `  Confidence:    ${(confidence * 100).toFixed(0)}%`,
          "```",
          "",
          `## Decision: **${decision}**`,
          "",
          "**Reasons:**",
          ...reasons.map((r) => `- ${r}`),
          "",
          `> ${getRandomQuip()}`,
        ];
    
        return { content: [{ type: "text", text: lines.join("\n") }] };
      }
    );
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure. It fails to specify what the engine returns (string enum, object with reasoning?), whether it stores decision history, or if it has any side effects. 'Eliminates the decision' is vague about actual output format.

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

Conciseness4/5

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

Two sentences that are appropriately front-loaded and thematic. No wasted words, though the playful marketing style slightly sacrifices functional clarity for tone.

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?

With no output schema and no annotations, the description should disclose the return value (recommendation vs order placement) and structure. It omits this critical information, leaving the agent uncertain about what the 'engine' produces.

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

Parameters3/5

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

Schema description coverage is 100%, establishing a baseline of 3. The description adds no explicit parameter semantics, though the playful tone ('agonizing decision') implicitly contextualizes why inputs like clothing_color and risk_tolerance matter (spill risk) without explicit mapping.

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

Purpose4/5

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

States it is a 'format selection engine' for 'fast casual dining' and references 'the most agonizing decision,' which combined with the tool name clearly signals this selects between bowl and burrito formats. However, it relies heavily on the tool name and domain context rather than explicitly stating both options in the description text.

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?

Provides no guidance on when to use this versus siblings like build_entree or customize_order. Does not indicate whether this should be called before ordering or if it automatically places an order.

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/YoshiSaurus/mcp-otle'

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