{"ok":true,"site":{"host":"webreactiva.com","url":"https://www.webreactiva.com/","type":"live","category":"Developer Tools","desc":"Spanish-language site for learning to program with AI, with a podcast, blog, courses, guides and a paid private community of developers using agents, skills and MCPs.","tools":[{"name":"get_site_info","kind":"answer","impl":"imperative","description":"Describes Web Reactiva (webreactiva.com): a Spanish-language web programming and AI learning site (podcast, blog, courses and skills), the sections available to navigate, and which agent tools each section unlocks.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"string","description":"Site description as JSON"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_web_reactiva","kind":"answer","impl":"imperative","description":"Searches content on Web Reactiva: podcast episodes, blog posts, courses, newsletters and guides. Returns title, URL, type and summary.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms"},"content_type":{"type":"string","enum":["podcast","post","course","newsletter","guide"],"description":"Optional filter by content type"},"limit":{"type":"number","description":"Max results (default 8)"}},"required":["query"]},"outputSchema":{"type":"string","description":"Results as JSON"},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"navigate_section","kind":"act","impl":"imperative","description":"Navigates to an internal section or page of Web Reactiva (e.g. /podcast, /blog, /cursos, /skills). Only accepts internal routes; rejects external URLs.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"Internal route, e.g. /podcast or /skills/learning-astro"}},"required":["path"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_audio_state","kind":"answer","impl":"imperative","description":"Returns the current state of the site's audio player: loaded track, whether it's paused, current time and duration.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"control_audio","kind":"act","impl":"imperative","description":"Controls the audio player: toggles play/pause ('toggle') or closes it ('close'). Requires a loaded audio track.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["toggle","close"]}},"required":["action"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"apiSurface":"spec","favicon":"/favicons/webreactiva.com.png","toolCount":5}}