{
  "markdown": "# Pinterest Idea Search — WebMCP demonstration\n\nA small, stateless page that turns one idea into a Pinterest search link. A\nperson using the form and an agent using the page's WebMCP tool both call the\nsame operation and see the same result.\n\nLive page: <https://pinterest-webmcp-demo.vercel.app>\n\nChatGPT Sites: [Pinterest Idea Search](https://pinterest-idea-search.anionix.chatgpt.site/)\n\n## What it does\n\nThe page registers one imperative WebMCP tool:\n\n```text\nprepare_pinterest_idea_search({ query }) -> { query, url }\n```\n\nThe operation removes outer whitespace, accepts 1–200 Unicode code points,\nand builds only this address shape:\n\n```text\nhttps://www.pinterest.com/search/pins/?q=<encoded query>\n```\n\nIt updates the visible result on the current page. It never opens Pinterest\nautomatically, fetches Pins, stores a query, asks for an account, or sends data\nto a project-controlled service.\n\n## Run locally\n\nThe static site needs no installation or build step. Node.js runs its tests\nand the optional ChatGPT MCP server.\n\n```sh\npython3 -m http.server 4173\n```\n\nOpen <http://127.0.0.1:4173>. WebMCP availability depends on the browser; the\nordinary form remains usable when WebMCP is unavailable or registration fails.\n\n## Verify\n\n```sh\nnpm test\n```\n\nThe tests independently check the shared query contract, fixed destination,\nhuman–agent state equality, WebMCP lifecycle, deterministic UUID version 5\nidentities, chronological UUID version 7 evidence, and the absence of network,\nstorage, and automatic-navigation code.\n\nThe two runtime files are deliberate:\n\n- `index.html` contains the visible page and styles.\n- `app.js` contains the operation, page adapter, and WebMCP adapter.\n\nThis revises the earlier one-file sketch so the important logic can be imported\nand checked without adding a build system. A rebuild copies both files.\n\n## Review map\n\nReview can stay small and mechanical:\n\n1. Read the machine contract in\n   [`knowledge/contracts/pinterest-idea-search.md`](knowledge/contracts/pinterest-idea-search.md).\n2. Run `npm test`.\n3. Submit one valid value and one whitespace-only value in the browser.\n4. Confirm that only a user click can open the prepared Pinterest link.\n\nStable identities use UUID version 5. Actual observed transitions use UUID\nversion 7 and are recorded in\n[`knowledge/evidence/state-transitions.jsonl`](knowledge/evidence/state-transitions.jsonl).\nThe bundle index is [`knowledge/index.md`](knowledge/index.md).\n\n## ChatGPT app and plugin\n\nThe site includes Japanese guidance and three one-click search examples.\nThe optional [ChatGPT integration](integrations/README.md) shares the same URL\nbuilder and adds an inline search form. Its dependencies are isolated from the\nstatic site. The [skill plugin](plugins/pinterest-idea-search/) helps turn ideas\ninto search queries using available WebMCP/MCP tools.\n\n## Primary references\n\n- [WebMCP Community Group Draft](https://webmachinelearning.github.io/webmcp/)\n- [Chrome imperative WebMCP guide](https://developer.chrome.com/docs/ai/webmcp/imperative-api)\n- [ChatGPT site-tools guide](https://learn.chatgpt.com/docs/webmcp)\n- [Open Knowledge Format version 0.2](https://github.com/GoogleCloudPlatform/open-knowledge-format/blob/main/SPEC.md)\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 3260,
  "sha": "7983b0ec5af6fc5f29df6da78c34334f16c373886de60c0133fd72cf6a024b3c",
  "repo_slug": "anionix/pinterest-webmcp-demo",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_anionix_pinterest_webmcp_demo_knowledge__bcda80af/readme"
}