Serenities AI™
Back to MCP Overview

Marketplace Tools

Tools for browsing marketplace listings, installing them, and checking entitlements.

6 tools

Available Tools

marketplace_browse

Browse published Store listings (sites, templates, add-ons the user can install). Optional param "category" to filter: "page", "component", "email", "function", "table", "base", "flow", "theme", "app", "automation", "accountFunction", "agent". Optional "limit" (1 to 200, default 100): the most installed listings first. Returns listings with id, title, description, category, tier ("free"|"freemium"|"premium"|"upgrade" — there is no "paid"), price (cents), currentVersionId, installCount. Use this when the user asks for ready-made pages, components, functions, emails, bases, or flows.

Input Schema

categorystring
limitinteger

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "marketplace_browse",
    "arguments": {
          "category": "example",
          "limit": {}
    }
  }
}
marketplace_getListing

Get full Store listing detail. Param "listingId" from browse. Returns { listing, currentVersion, manifest }. The manifest lists every artifact in the package (category, name, slug, description, requires). Use currentVersion.id as versionId for getInstallPlan/install.

Input Schema

listingIdstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "marketplace_getListing",
    "arguments": {
          "listingId": "example"
    }
  }
}
marketplace_getInstallPlan

Preview what installing a listing would do — read-only, no writes. Params: listingId, versionId (from getListing currentVersion.id), targetProjectId (the current project). Returns items[] with category, name, slug, and collision (true if a page path, or a table name already in the site's base, is already used). ALWAYS call this before install and warn the user about collisions.

Input Schema

listingIdstringrequired
versionIdstringrequired
targetProjectIdstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "marketplace_getInstallPlan",
    "arguments": {
          "listingId": "example",
          "versionId": "example",
          "targetProjectId": "example"
    }
  }
}
marketplace_myEntitlements

List paid Store listings the current user has purchased. Returns entitlements with listingId. Paid listings require an entitlement before install — if missing, tell the user to buy it on the Store page first (never attempt payment yourself).

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "marketplace_myEntitlements",
    "arguments": {}
  }
}
marketplace_install

Install a Store listing into a project. Params: listingId, versionId (from getListing currentVersion.id), targetProjectId (required — the project to install into), selections (optional array of artifact slugs to install a subset), mode (optional: "add-to-existing" default). Copies pages/components/functions/emails verbatim and remaps table/base/flow IDs to fresh ones. Tables are added to the site's existing linked base (or a new base if it has none); a table name already used there is refused with a plain message. After install, tell the person what was installed; bind it to their data only when they ask.

Input Schema

listingIdstringrequired
versionIdstringrequired
targetProjectIdstringrequired
selectionsarray
modestring

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "marketplace_install",
    "arguments": {
          "listingId": "example",
          "versionId": "example",
          "targetProjectId": "example"
    }
  }
}
marketplace_installedIn

List Store artifacts already installed in a project. Param "projectId". Returns records with listingId, category, artifactSlug, installedVersion, installedAt (newest first). Use to avoid duplicate installs.

Input Schema

projectIdstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "marketplace_installedIn",
    "arguments": {
          "projectId": "example"
    }
  }
}