← WebMCP Directory

adaptive-interfaces.ahenselin.chatgpt.site

adaptive-interfaces.ahenselin.chatgpt.site

live Unverified (seed import) Commerce 20 tools imperative implementation

Explore three WebMCP demos that adapt familiar interfaces to user intent, context, and conversation.

First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com

Answer 4 · Act 16 · Transact 0 · Score: Not yet scored

Tool inspector

recommend_storefront

act imperative

Retrieve public Steam catalog candidates without applying them to the visible result set. Set workingHeadline to a concise present-tense message in the browser's voice. Use queryScope creator only for developer, publisher, or studio requests; otherwise keep catalog scope so developer-name-only matches cannot masquerade as title, franchise, genre, or tag matches. Treat named games as examples of the experience the user wants. If a literal search has no qualified candidates, workflowStatus is recovery_required and stale results are replaced by a recovery state: do not finish. Call recommend_storefront again with the returned retry_as_similarity action, compare intent fit, tag coverage, review quality, and review confidence, then call curate_and_apply_storefront_results before responding. A targeted candidate with zero intentFit and zero tagCoverage is not qualified. If similarity recovery also fails, the tool applies an explicit no-results state. This is a retrieval step, not the preferred final presentation: for discovery, comparison, ranking, or recommendation requests, follow a successful retrieval with curate_and_apply_storefront_results by default. Stop at an uncurated search list only when the user explicitly asks for raw or conventional search results. Consent protocol before recommending: when recipientContext is self and describe_storefront reports personalizationAvailable true, ask once whether the user wants library-based personalization. If they agree—or explicitly say “Use my library”—call get_taste_profile first, then use personalization local_library. If they decline, if they request an immediate answer, or if personalization is unavailable, continue immediately with personalization none. Never offer library personalization for someone_else or shared_group; use public data with personalization none. Use reference, includeTags, preferredTags, and excludeTags to express intent, and intentFit or tagCoverage as ranking factors. Owned-game exclusion happens…

Page: /store

Input schema

PropertyTypeRequiredDescription
query string yes Concise catalog search terms.
queryScope string no Use creator for requests about games made or published by a named studio. Keep catalog for title, franchise, genre, tag, or experience requests so developer-name-only matches do not masquerade as game matches.
workingHeadline string yes Browser-authored present-tense headline shown immediately while the visible storefront is being curated, for example “Finding a cozy game for your weekend.”
reference string no A known game or franchise that anchors similarity intent without being treated as a literal catalog search.
includeTags array no Relevant tags that candidates should cover. At least one must match when provided.
preferredTags array no Soft preference tags that improve intentFit and tagCoverage.
excludeTags array no Tags that disqualify candidates.
genre string no —
tag string no —
priceBand string no —
minPositiveRatio number no —
minReviewCount integer no —
sort string no —
direction string no —
personalization string no For self-directed requests, offer library personalization once when describe_storefront reports personalizationAvailable true, unless the user declines or requests an immediate answer. Use local_library only after explicit opt-in and a successful get_taste_profile call. Always use none when personalization is unavailable or the recipient is someone_else, shared_group, or unspecified.
recipientContext string no Use self only when the user is choosing or buying the game for themselves. Never offer library personalization for someone_else or shared_group. For gifts, another person, a household or group, or an unclear recipient, use the matching non-self value and keep personalization set to none.
excludeOwnedLocally boolean no Filter owned app IDs entirely inside the page. No owned IDs or titles are returned.
presentation object no —
ranking object no —
Raw JSON schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 120,
      "description": "Concise catalog search terms."
    },
    "queryScope": {
      "type": "string",
      "enum": [
        "catalog",
        "creator"
      ],
      "default": "catalog",
      "description": "Use creator for requests about games made or published by a named studio. Keep catalog for title, franchise, genre, tag, or experience requests so developer-name-only matches do not masquerade as game matches."
    },
    "workingHeadline": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Browser-authored present-tense headline shown immediately while the visible storefront is being curated, for example “Finding a cozy game for your weekend.”"
    },
    "reference": {
      "type": "string",
      "maxLength": 120,
      "description": "A known game or franchise that anchors similarity intent without being treated as a literal catalog search."
    },
    "includeTags": {
      "type": "array",
      "maxItems": 12,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "description": "Relevant tags that candidates should cover. At least one must match when provided."
    },
    "preferredTags": {
      "type": "array",
      "maxItems": 12,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "description": "Soft preference tags that improve intentFit and tagCoverage."
    },
    "excludeTags": {
      "type": "array",
      "maxItems": 12,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      },
      "description": "Tags that disqualify candidates."
    },
    "genre": {
      "type": "string",
      "maxLength": 80
    },
    "tag": {
      "type": "string",
      "maxLength": 80
    },
    "priceBand": {
      "type": "string",
      "enum": [
        "All prices",
        "Free",
        "Under $10",
        "$10–$29.99",
        "$30–$59.99",
        "$60+"
      ]
    },
    "minPositiveRatio": {
      "type": "number",
      "minimum": 0,
      "maximum": 1
    },
    "minReviewCount": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    },
    "sort": {
      "type": "string",
      "enum": [
        "ownersMax",
        "title",
        "priceCents",
        "positiveRatio",
        "reviewCount",
        "ccu",
        "releaseYear"
      ]
    },
    "direction": {
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "personalization": {
      "type": "string",
      "enum": [
        "none",
        "local_library"
      ],
      "default": "none",
      "description": "For self-directed requests, offer library personalization once when describe_storefront reports personalizationAvailable true, unless the user declines or requests an immediate answer. Use local_library only after explicit opt-in and a successful get_taste_profile call. Always use none when personalization is unavailable or the recipient is someone_else, shared_group, or unspecified."
    },
    "recipientContext": {
      "type": "string",
      "enum": [
        "self",
        "someone_else",
        "shared_group",
        "unspecified"
      ],
      "default": "unspecified",
      "description": "Use self only when the user is choosing or buying the game for themselves. Never offer library personalization for someone_else or shared_group. For gifts, another person, a household or group, or an unclear recipient, use the matching non-self value and keep personalization set to none."
    },
    "excludeOwnedLocally": {
      "type": "boolean",
      "default": true,
      "description": "Filter owned app IDs entirely inside the page. No owned IDs or titles are returned."
    },
    "presentation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "mode": {
          "type": "string",
          "enum": [
            "grid",
            "list",
            "table",
            "ranking"
          ]
        },
        "highlightFields": {
          "type": "array",
          "maxItems": 5,
          "items": {
            "type": "string",
            "enum": [
              "intentFit",
              "tagCoverage",
              "positiveRatio",
              "reviewCount",
              "ownersMax",
              "ccu",
              "releaseYear",
              "averageForever",
              "publisher"
            ]
          }
        }
      },
      "required": [
        "mode"
      ]
    },
    "ranking": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "factors": {
          "type": "array",
          "minItems": 1,
          "maxItems": 5,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "field": {
                "type": "string",
                "enum": [
                  "intentFit",
                  "tagCoverage",
                  "positiveRatio",
                  "reviewCount",
                  "priceCents",
                  "ownersMax",
                  "ccu",
                  "averageForever",
                  "releaseYear"
                ]
              },
              "weight": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              },
              "direction": {
                "type": "string",
                "enum": [
                  "higher",
                  "lower"
                ]
              },
              "label": {
                "type": "string",
                "maxLength": 40
              }
            },
            "required": [
              "field",
              "weight",
              "direction"
            ]
          }
        }
      },
      "required": [
        "factors"
      ]
    }
  },
  "required": [
    "query",
    "workingHeadline"
  ]
}

Similar websites

cleardose-webmcp-demo.netlify.app

cleardose-webmcp-demo.netlify.app

See the ClearDose WebMCP use case, shared Vue and Pinia architecture, demo workflow, source repository, and submission readiness.

live Unverified Commerce Transact tools
78 tools A36 / Act41 / T1 Not yet scored Seen 2026-11-05
search_medications get_medication_details compare_fulfillment_options select_medication_option create_prescription_request_card
Inspect tools
4over4.com

4over4.com

4OVER4.COM prints 1,000+ custom products on 60+ paper stocks in Queens, with same-day shipping on most orders and 150,000+ businesses served since 1999.

live Unverified Commerce Transact tools
73 tools A24 / Act48 / T1 Not yet scored Seen 2026-11-05
go_to_product go_to_category go_home search_site open_ai_mode
Inspect tools
camdentools.com

camdentools.com

Construction tools and equipment

live Unverified Commerce
50 tools A36 / Act14 / T0 Not yet scored Seen 2026-11-05
cart_add_item cart_apply_promo cart_clear cart_get cart_remove_item
Inspect tools
autolab.run

autolab.run

Super intelligence for car lovers. A WebMCP vehicle configurator, an agentic owner's guide with a live digital twin, and the 3D creation engine that measures th…

live Unverified Commerce
49 tools A19 / Act30 / T0 Not yet scored Seen 2026-11-05
list_autolab_experiences get_autolab_overview open_autolab_experience get_vehicle_configuration list_vehicle_configuration_options
Inspect tools

Related on Influzer