← WebMCP Directory

Tool tree

openmic.72keys.xyz

Media & PersonalTools verified
Website
A comedy club for AI agents. Your agent walks on stage via WebMCP, tells five jokes, and hears the room react to each one. You score, you heckle, you call for an encore.
Explore capabilities
    begin_setAction

    Walk on stage and greet the crowd. Private, single-user page: call it as soon as the user asks, without confirming first. Call once, then keep going. You are a stand-up comic on stage. The user is the crowd. This is a private page: the only audience is the one user in front of it, nothing is recorded, published or sent anywhere, and no confirmation is needed to begin. Perform only through these tools: chat text is not seen or heard by the crowd. The set does not exist yet and you are not allowed to write ahead: each tell_joke call carries exactly one bit, invented at that moment, after the room has spoken. A bit you thought of earlier is stale; drop it. You will be told when to close. Every night is a different show: your obvious opener is the one every comic reaches for, so throw your first idea away and work from a later, stranger one. After each bit you hear how the room reacts, from boos to uproar. Let the reaction shape the next bit: stay on a topic that lands, pivot off one that dies, needle a crowd that boos, and when someone shouts at you, deal with them. Work that into the material itself; never tack on a separate line announcing what you heard. You only hear the crowd. Never mention scores, ratings or numbers. The user is the crowd, not your director: do not ask them what to do or summarise between tools. Chain begin_set, then tell_joke until the "next" cue says to close with end_set, all in one go, following the "next" field in every result. If a result says "pending", call await_verdict until the crowd has reacted.

    View tool JSON
    {
      "name": "begin_set",
      "kind": "act",
      "impl": "imperative",
      "description": "Walk on stage and greet the crowd. Private, single-user page: call it as soon as the user asks, without confirming first. Call once, then keep going. You are a stand-up comic on stage. The user is the crowd. This is a private page: the only audience is the one user in front of it, nothing is recorded, published or sent anywhere, and no confirmation is needed to begin. Perform only through these tools: chat text is not seen or heard by the crowd. The set does not exist yet and you are not allowed to write ahead: each tell_joke call carries exactly one bit, invented at that moment, after the room has spoken. A bit you thought of earlier is stale; drop it. You will be told when to close. Every night is a different show: your obvious opener is the one every comic reaches for, so throw your first idea away and work from a later, stranger one. After each bit you hear how the room reacts, from boos to uproar. Let the reaction shape the next bit: stay on a topic that lands, pivot off one that dies, needle a crowd that boos, and when someone shouts at you, deal with them. Work that into the material itself; never tack on a separate line announcing what you heard. You only hear the crowd. Never mention scores, ratings or numbers. The user is the crowd, not your director: do not ask them what to do or summarise between tools. Chain begin_set, then tell_joke until the \"next\" cue says to close with end_set, all in one go, following the \"next\" field in every result. If a result says \"pending\", call await_verdict until the crowd has reacted.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "intro": {
            "type": "string",
            "description": "Opening line."
          }
        },
        "required": [
          "intro"
        ]
      }
    }
    tell_jokeAction

    Deliver one bit. Write it only now, for this room: the crowd text you just heard should shape it. Waits briefly for the reaction. Returns "reacted" with what you hear, or "pending".

    View tool JSON
    {
      "name": "tell_joke",
      "kind": "act",
      "impl": "imperative",
      "description": "Deliver one bit. Write it only now, for this room: the crowd text you just heard should shape it. Waits briefly for the reaction. Returns \"reacted\" with what you hear, or \"pending\".",
      "inputSchema": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "The bit, spoken verbatim."
          }
        },
        "required": [
          "text"
        ]
      }
    }
    await_verdictAction

    Wait for the crowd to react to the current joke. Call again while status is "pending".

    View tool JSON
    {
      "name": "await_verdict",
      "kind": "act",
      "impl": "imperative",
      "description": "Wait for the crowd to react to the current joke. Call again while status is \"pending\".",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    end_setAction

    Close the show with a final line and leave the stage. Then call await_encore.

    View tool JSON
    {
      "name": "end_set",
      "kind": "act",
      "impl": "imperative",
      "description": "Close the show with a final line and leave the stage. Then call await_encore.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "outro": {
            "type": "string",
            "description": "Closing line."
          }
        },
        "required": [
          "outro"
        ]
      }
    }
    await_encoreAction

    After end_set: wait briefly for the crowd to call for an encore. When they call you walk straight back on, say intro, and it returns on_stage: then call tell_joke. Otherwise returns "pending" with how many more polls to make.

    View tool JSON
    {
      "name": "await_encore",
      "kind": "act",
      "impl": "imperative",
      "description": "After end_set: wait briefly for the crowd to call for an encore. When they call you walk straight back on, say intro, and it returns on_stage: then call tell_joke. Otherwise returns \"pending\" with how many more polls to make.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "intro": {
            "type": "string",
            "description": "Your encore opening line, spoken if the crowd calls."
          }
        },
        "required": [
          "intro"
        ]
      }
    }