{"ok":true,"site":{"host":"clouatre.ca","url":"https://clouatre.ca/","type":"live","desc":"AI and platform engineering insights from a Field CTO and AWS veteran. Practical guides for CTOs and engineering leaders.","tools":[{"name":"search_posts","kind":"answer","impl":"imperative","description":"Search blog posts by topic or keyword. Returns matches with title, slug, description, pubDate.","annotations":{"readOnlyHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","description":"Search query to find blog posts"},"after":{"type":"string","description":"Only return posts published after this ISO 8601 date"},"limit":{"type":"integer","description":"Max results (default 10)"},"offset":{"type":"integer","description":"Results to skip (default 0)"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/","/search/","/tags/","/topics/","/posts/2/"]},{"name":"get_posts_by_concept","kind":"answer","impl":"imperative","description":"Return posts in named concept clusters. Accepts a cluster id/name (partial match) or a post slug (returns every cluster containing that post).","annotations":{"readOnlyHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"concept":{"type":"string","description":"Cluster id/name (partial match) or post slug"},"limit":{"type":"integer","description":"Max clusters (default 10)"},"offset":{"type":"integer","description":"Clusters to skip (default 0)"}},"required":["concept"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/posts/"]},{"name":"get_post_markdown","kind":"answer","impl":"imperative","description":"Fetch a post's Markdown source by slug. Paginated at ~2,000 tokens per page (page is 0-based; response includes totalPages). Use section for a single H2 section, capped by maxTokens.","annotations":{"readOnlyHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string","description":"Post slug (URL path segment, e.g. 'my-post-title')"},"page":{"type":"integer","description":"Zero-based page index (default 0)"},"section":{"type":"string","description":"H2 anchor slug (GitHub-style) to fetch one section"},"maxTokens":{"type":"integer","description":"Approximate token cap for the section (ceiling 8000)"}},"required":["slug"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/posts/","pages":["/posts/"]},{"name":"get_related_posts","kind":"answer","impl":"imperative","description":"Return posts related to a slug, with edge type and evidence, from the static knowledge graph.","annotations":{"readOnlyHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string","description":"The post slug to find related posts for"},"limit":{"type":"integer","description":"Max related posts (default 5)"},"offset":{"type":"integer","description":"Related posts to skip (default 0)"}},"required":["slug"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/posts/","pages":["/posts/"]}],"category":"Media & Personal","favicon":"/favicons/clouatre.ca.png","apiSurface":"spec","toolCount":4}}