{"ok":true,"site":{"host":"allisons.dev","url":"https://allisons.dev/","type":"live","desc":"Allison Coleman builds agent systems and developer tools. Creator of JupyterLite WebMCP, one of 10 winners of the 2026 OpenAI WebMCP Challenge.","tools":[{"name":"search_projects","kind":"answer","impl":"imperative","description":"Search Allison Coleman's published projects by keyword (matches title, description, technologies and tags). Leave the query empty to list every project. Returns title, slug, description, group and URL for each match.","title":"Search projects","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Keyword or phrase to look for, e.g. \"webmcp\", \"rust\" or \"keyboard\". Empty returns all projects."},"group":{"type":"string","description":"Optional project group key to filter by, e.g. \"browser-agents\", \"agent-systems-devtools\", \"languages-runtimes\", \"creative-coding\", \"social-systems\", \"hardware-homelab\" or \"earlier-work\"."}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/projects/","/blog/nuxt-content-perfect-for-portfolio/","/blog/self-hosting-hetzner-media-box/","/blog/split-keyboards-zmk-sofle-holykeebs-lily58/","/blog/why-vue-over-react/"]},{"name":"get_project","kind":"answer","impl":"imperative","description":"Get one project's summary and links (page, GitHub, demo, docs, Devpost), plus technologies, tags and any award. Use a slug from search_projects.","title":"Get project details","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"slug":{"type":"string","description":"The project slug, e.g. \"jupyterlite-webmcp\"."}},"required":["slug"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/projects/","/blog/nuxt-content-perfect-for-portfolio/","/blog/self-hosting-hetzner-media-box/","/blog/split-keyboards-zmk-sofle-holykeebs-lily58/","/blog/why-vue-over-react/"]},{"name":"list_blog_posts","kind":"answer","impl":"imperative","description":"List the published blog posts, newest first, with title, slug, date, description and URL.","title":"List blog posts","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/projects/","/blog/nuxt-content-perfect-for-portfolio/","/blog/self-hosting-hetzner-media-box/","/blog/split-keyboards-zmk-sofle-holykeebs-lily58/","/blog/why-vue-over-react/"]},{"name":"navigate","kind":"act","impl":"imperative","description":"Open a page of this site in the current tab (client-side navigation), e.g. \"/projects/\", \"/blog/\" or \"/contact/\". Only same-site paths are accepted. This changes what the user is looking at.","title":"Go to a page","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"path":{"type":"string","description":"A same-site path starting with \"/\", e.g. \"/projects/jupyterlite-webmcp/\"."}},"required":["path"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/projects/","/blog/nuxt-content-perfect-for-portfolio/","/blog/self-hosting-hetzner-media-box/","/blog/split-keyboards-zmk-sofle-holykeebs-lily58/","/blog/why-vue-over-react/"]},{"name":"get_contact_info","kind":"answer","impl":"imperative","description":"Get Allison Coleman's email link and her GitHub, LinkedIn and X profiles.","title":"Get contact info","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/projects/","/blog/nuxt-content-perfect-for-portfolio/","/blog/self-hosting-hetzner-media-box/","/blog/split-keyboards-zmk-sofle-holykeebs-lily58/","/blog/why-vue-over-react/"]}],"category":"Media & Personal","favicon":"/favicons/allisons.dev.png","apiSurface":"spec","toolCount":5}}