{"ok":true,"site":{"host":"ravichaganti.com","url":"https://ravichaganti.com/","type":"live","desc":"In our previous article, we implemented WebMCP support on a Hugo static site. By using the imperative document.modelContext.registerTool API, we turned a static blog into a programmable tool…","tools":[{"name":"list_article_series","kind":"answer","impl":"imperative","description":"Returns all technical article series published on Ravikanth Chaganti's blog, including the series title, URL slug, number of articles, and series link.","title":"List Article Series","annotations":{"readOnlyHint":true,"consequentialHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/categories/","pages":["/categories/","/series/","/tags/","/books/","/categories/agents/"]},{"name":"get_articles_in_series","kind":"answer","impl":"imperative","description":"Returns all articles belonging to a specific series (e.g. 'Model Context Protocol', 'Microsoft Agent Framework', 'Google ADK', 'Azure Bicep') with article titles, dates, excerpts, permalinks, and markdown source URLs.","title":"Get Articles in Series","annotations":{"readOnlyHint":true,"consequentialHint":false},"inputSchema":{"type":"object","properties":{"series_name":{"type":"string","description":"The name or slug of the series (case-insensitive, e.g. 'Model Context Protocol' or 'model-context-protocol')"}},"required":["series_name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/categories/","pages":["/categories/","/series/","/tags/","/books/","/categories/agents/"]},{"name":"search_articles","kind":"answer","impl":"imperative","description":"Search blog posts by keyword, technology, or topic across the entire blog archive. Searches titles, categories, series, tags, and excerpts.","title":"Search Articles","annotations":{"readOnlyHint":true,"consequentialHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"The search keyword or phrase (e.g., 'MCP', 'Agent Framework', 'Docker', 'PowerShell', 'Bicep')"},"limit":{"type":"integer","description":"Maximum number of results to return (default 10)","default":10}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/categories/","pages":["/categories/","/series/","/tags/","/books/","/categories/agents/"]},{"name":"get_article_content","kind":"answer","impl":"imperative","description":"Fetches the full markdown content of an article given its permalink URL, path, or slug.","title":"Get Article Markdown Content","annotations":{"readOnlyHint":true,"consequentialHint":false},"inputSchema":{"type":"object","properties":{"url_or_slug":{"type":"string","description":"The full permalink URL, relative path, or slug of the article (e.g. '/blog/anthropic-model-context-protocol/' or 'anthropic-model-context-protocol')"}},"required":["url_or_slug"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/categories/","pages":["/categories/","/series/","/tags/","/books/","/categories/agents/"]},{"name":"get_author_info","kind":"answer","impl":"imperative","description":"Returns biographical and background information about the blog author Ravikanth (Ravi) Chaganti, areas of expertise, and social profiles.","title":"Get Author Profile","annotations":{"readOnlyHint":true,"consequentialHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/categories/","pages":["/categories/","/series/","/tags/","/books/","/categories/agents/"]}],"category":"Media & Personal","favicon":"/favicons/ravichaganti.com.png","apiSurface":"spec","toolCount":5}}