{"ok":true,"site":{"host":"asynctalk.com","url":"https://asynctalk.com/","type":"live","desc":"","tools":[{"name":"asynctalk.latestEpisodes","kind":"answer","impl":"imperative","description":"Get the newest AsyncTalk podcast episodes with page URLs, categories, publication dates, and listening links.","title":"Latest AsyncTalk Episodes","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of episodes to return. Defaults to 10."},"includePrerelease":{"type":"boolean","description":"Include draft or pre-release episodes. Defaults to false."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/"]},{"name":"asynctalk.searchEpisodes","kind":"answer","impl":"imperative","description":"Search AsyncTalk episodes by title, category, episode id, or shownote preview text.","title":"Search AsyncTalk Episodes","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"description":"Search text to match against episode titles, categories, ids, and preview text."},"category":{"type":"string","minLength":1,"description":"Optional category filter, such as javascript, programming, node, or bun."},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of matching episodes to return. Defaults to 10."},"includePrerelease":{"type":"boolean","description":"Include draft or pre-release episodes. Defaults to false."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/"]},{"name":"asynctalk.getEpisode","kind":"answer","impl":"imperative","description":"Get metadata, page URL, listening links, video links, categories, status, and preview text for one AsyncTalk episode.","title":"Get AsyncTalk Episode","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Episode id, such as ep59."},"slug":{"type":"string","minLength":1,"description":"Episode slug, such as /posts/ep59."}},"anyOf":[{"required":["id"]},{"required":["slug"]}],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/"]},{"name":"asynctalk.getSubscriptionLinks","kind":"answer","impl":"imperative","description":"Get AsyncTalk RSS and platform subscription links.","title":"Get AsyncTalk Subscription Links","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/"]},{"name":"asynctalk.openEpisode","kind":"act","impl":"imperative","description":"Navigate the current browser page to an AsyncTalk episode after validating that it exists.","title":"Open AsyncTalk Episode","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Episode id, such as ep59."},"slug":{"type":"string","minLength":1,"description":"Episode slug, such as /posts/ep59."}},"anyOf":[{"required":["id"]},{"required":["slug"]}],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/"]}],"category":"Media & Personal","favicon":"/favicons/asynctalk.com.png","apiSurface":"polyfill","toolCount":5}}