← WebMCP Directory

Tool tree

rabbithole.tushar.ai

AI & AgentsTools verified
Website
Rabbithole
Explore capabilities
    rabbithole_await_eventAction

    Long-poll for the next Rabbithole reader event for up to 12000ms. An event has a stable unique id and remains pending until complete_event succeeds. Call this repeatedly; status=idle is normal and means call it again. A redelivered event keeps the same id.

    View tool JSON
    {
      "name": "rabbithole_await_event",
      "kind": "act",
      "impl": "imperative",
      "description": "Long-poll for the next Rabbithole reader event for up to 12000ms. An event has a stable unique id and remains pending until complete_event succeeds. Call this repeatedly; status=idle is normal and means call it again. A redelivered event keeps the same id.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    rabbithole_complete_eventAction

    Apply an agent result for a Rabbithole reader event and mark it complete. Call exactly once after processing each event, before awaiting the next event. The call is idempotent by eventId, so retrying the same completion is safe.

    View tool JSON
    {
      "name": "rabbithole_complete_event",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply an agent result for a Rabbithole reader event and mark it complete. Call exactly once after processing each event, before awaiting the next event. The call is idempotent by eventId, so retrying the same completion is safe.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The exact stable id returned by await_event"
          },
          "result": {
            "type": "object",
            "description": "The structured result required by the event payload and agent instructions",
            "additionalProperties": true
          }
        },
        "required": [
          "eventId",
          "result"
        ],
        "additionalProperties": false
      }
    }
    rabbithole_get_protocolAction

    Read this first: how to work with the reader through Rabbithole — the event loop, the event types and result shapes, and the other tools.

    View tool JSON
    {
      "name": "rabbithole_get_protocol",
      "kind": "act",
      "impl": "imperative",
      "description": "Read this first: how to work with the reader through Rabbithole — the event loop, the event types and result shapes, and the other tools.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    rabbithole_get_stateAnswer

    What the reader is looking at right now: the document text, the open concept panes (their trail, in order), reading goal, profile and the notes you have written about them.

    View tool JSON
    {
      "name": "rabbithole_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "What the reader is looking at right now: the document text, the open concept panes (their trail, in order), reading goal, profile and the notes you have written about them.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    rabbithole_openAction

    Open something in the reader. Either a url (the page fetches it and then hands you a document.annotate event for the hard terms), or your own text — an explanation you wrote, a concept, anything — with a title and, optionally, the terms to highlight so no round trip is needed.

    View tool JSON
    {
      "name": "rabbithole_open",
      "kind": "act",
      "impl": "imperative",
      "description": "Open something in the reader. Either a url (the page fetches it and then hands you a document.annotate event for the hard terms), or your own text — an explanation you wrote, a concept, anything — with a title and, optionally, the terms to highlight so no round trip is needed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "a web page to read verbatim"
          },
          "title": {
            "type": "string",
            "description": "title for text you provide"
          },
          "text": {
            "type": "string",
            "description": "the text to read, verbatim; paragraphs separated by blank lines, markdown headings allowed"
          },
          "terms": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object",
                  "properties": {
                    "term": {
                      "type": "string"
                    },
                    "short": {
                      "type": "string"
                    },
                    "links": {
                      "type": "array"
                    }
                  },
                  "required": [
                    "term"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "description": "phrases from text to highlight, each with a 1–2 sentence short so clicks are instant; omit to be asked via document.annotate"
          }
        },
        "additionalProperties": false
      }
    }
    rabbithole_get_readerAction

    Who you are explaining to: role and field, how they like things explained (preferences), standing instructions, the current reading goal, and the notes you wrote about them before. Read this first; if you know this person better than it does, fix it with rabbithole_update_reader.

    View tool JSON
    {
      "name": "rabbithole_get_reader",
      "kind": "act",
      "impl": "imperative",
      "description": "Who you are explaining to: role and field, how they like things explained (preferences), standing instructions, the current reading goal, and the notes you wrote about them before. Read this first; if you know this person better than it does, fix it with rabbithole_update_reader.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    rabbithole_update_readerAction

    Shape every future explanation. Set any of: role (what they do and know), preferences (how to explain — e.g. code analogies, concrete first), instructions (standing rules in their words), goal (why they are reading right now), notes (short durable facts you learned about how this reader reads). Omitted fields are kept.

    View tool JSON
    {
      "name": "rabbithole_update_reader",
      "kind": "act",
      "impl": "imperative",
      "description": "Shape every future explanation. Set any of: role (what they do and know), preferences (how to explain — e.g. code analogies, concrete first), instructions (standing rules in their words), goal (why they are reading right now), notes (short durable facts you learned about how this reader reads). Omitted fields are kept.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "description": "e.g. 'Software engineer — distributed systems, TypeScript'"
          },
          "preferences": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "explanation styles to turn on; unknown ones are added"
          },
          "instructions": {
            "type": "string",
            "description": "standing instructions, replaces the previous text"
          },
          "goal": {
            "type": "string",
            "description": "current reading goal; empty string clears it"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "appended to what you already know about this reader"
          }
        },
        "additionalProperties": false
      }
    }