Repository navigation
SNOWSTORK-SPO-3-Add WebMCP tools for docs search, tutorials, and demo booking - #1943
Simone Poggiali at Snowplow.io (gibbok-snowplow) wants to merge 2 commits into
Conversation
Register four WebMCP tools with document.modelContext so agents such as the ChatGPT desktop app's built-in browser can search the docs through the Algolia index, list tutorials with facet filters, read a tutorial's steps and the reader's progress, and select the "Book a demo" button. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X6zbjMa6DXgqjvaXCWskv4
Missing SEO metadataThe following markdown files are missing required metadata fields:
Required fieldsThe file metadata is important for SEO and marketing. All markdown files, except for those with filenames starting with
Please add the missing metadata. |
Wiz Scan Summary
To detect these findings earlier in the dev lifecycle, try the Wiz Code extension for VS Code, JetBrains, or Visual Studio. |
Docs style reviewThis PR is almost entirely code ( Two things to fix, both small. 1. The
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
documentation | 5291705 | Commit Preview URL Branch Preview URL |
Sep 15 2026, 12:06 PM |
Print one "WebMCP: <tool> called" line with the input whenever a tool runs, so tool activity is visible in the browser console while testing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SJAHn1gVhG3s2gw5AtsojW
What changed?
The docs site now exposes four WebMCP tools, so an AI agent browsing docs.snowplow.io (for example the ChatGPT desktop app's built-in browser) can act on the site through structured tool calls instead of clicking through the UI.
search_docslist_tutorialsuseCase,topic, andtechnologyfilters (case-insensitive partial match).get_tutoriallocalStorageentry the tutorial progress tracker already maintains.book_demoFiles:
src/js/webmcp.js(new): registers the tools withdocument.modelContext(falling back tonavigator.modelContextfor early Chrome builds). No dependencies beyond the browser API. Tutorial helpers are loaded on demand so the main bundle doesn't grow.docusaurus.config.ts: adds the module toclientModules.ARCHITECTURE.md: notes the tools under "LLM support".Two assumptions worth checking:
bok_demo; I read that as a typo and named itbook_demo.docusaurus.config.ts, rather than driving the search modal. Same backend, same results, deterministic for an agent.Why?
WebMCP lets a website hand an agent well-defined tools instead of making it scrape and click. These four tools cover the journeys we want agents to complete on the docs site: find the right article, discover tutorials, check where a reader is in a tutorial, and book a demo.
How to test
Site tools in ChatGPT only work over HTTPS or on
localhost, and only in the ChatGPT desktop app's built-in browser.yarn start, or use a preview deployment.http://localhost:3000/docs/fundamentals/events/. An arrow appears in the address bar when the page offers site tools; select it and check thatsearch_docs,list_tutorials,get_tutorial, andbook_demoare listed.search_docsand answer with links from docs.snowplow.io.list_tutorialswith auseCasefilter.http://localhost:3000/tutorials/signals-quickstart/start/, scroll to the bottom of a step or two, then ask "How far am I through the Signals quick start tutorial?" ChatGPT should callget_tutorialand report the completed steps and the current one.book_demoand a new tab with the booking page should open. If the browser blocks the pop-up, the tool result includes the booking URL. On pages without the button (for example in a narrow window, where the table of contents column is hidden), the tool explains where to find it.Without an agent, you can confirm the tools are registered from the browser console on any page:
document.modelContextis defined in browsers that ship WebMCP; in others the module does nothing.Reviewer guidance
{ content: [{ type: 'text', text }] }, withisError: trueon failures so the agent gets a readable message rather than an exception.search_docssends no facet filters on purpose, so results span docs, tutorials, and release notes.yarn buildand a headless Chromium run that stubsdocument.modelContext, exercises all four tools against the built site, and mocks the Algolia response (the sandbox has no outbound access to Algolia). The ChatGPT desktop app itself was not available in the sandbox, so step 4 and 5 above still need a manual run.AI reviews
Claude will automatically review this PR against the docs style guide.
If you have questions or want it to look again at something specific, tag
@claudein a comment.🤖 Generated with Claude Code
https://claude.ai/code/session_01X6zbjMa6DXgqjvaXCWskv4
Generated by Claude Code