Skip to content
Charming Docs
Esc
navigateopen⌘Jpreview
On this page

Search Templates

Search the public Charming template directory by keyword.

MCP name: search_templates

Tool contract

{
  "annotations": {
    "destructiveHint": false,
    "openWorldHint": false,
    "readOnlyHint": true,
    "title": "Search Templates"
  },
  "description": "Search the public Charming template directory by keyword. Use this to check for an existing template before calling create_app, or when the user asks what templates exist. Returns, per template: displayName, description, starterPrompt, copyUrl (open it to mint your own independent copy — no login needed to start), templatePageUrl (the indexable page a human can read), builders (distinct signed-in accounts who kept a copy), and creatorHandle.",
  "execution": {
    "taskSupport": "forbidden"
  },
  "inputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "limit": {
        "description": "Max templates to return (1-100).",
        "maximum": 100,
        "minimum": 1,
        "type": "integer"
      },
      "query": {
        "description": "Case-insensitive match against display name, description, and starter prompt.",
        "type": "string"
      },
      "sort": {
        "description": "`builders` ranks by builders reached; `recent` (default) is newest-listed first.",
        "enum": [
          "builders",
          "recent"
        ],
        "type": "string"
      }
    },
    "type": "object"
  },
  "name": "search_templates",
  "outputSchema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "properties": {
      "ok": {
        "const": true,
        "description": "Indicates success. Errors arrive as content with isError:true.",
        "type": "boolean"
      },
      "templates": {
        "description": "Listed templates matching the query, most relevant first per `sort`.",
        "items": {
          "additionalProperties": false,
          "properties": {
            "builders": {
              "description": "Distinct signed-in accounts that kept a copy of this template.",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991,
              "type": "integer"
            },
            "copyUrl": {
              "description": "The app's own live URL. Opening it as a non-owner mints the visitor their own independent copy (no login required to view; signing up is what attributes a builder). Free of write-capable `?t=` tokens.",
              "type": "string"
            },
            "creatorHandle": {
              "description": "The template's creator handle.",
              "type": "string"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The creator's search-friendly summary."
            },
            "displayName": {
              "description": "Human-readable name.",
              "type": "string"
            },
            "starterPrompt": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The prompt a fresh copy starts with, if the creator set one."
            },
            "templatePageUrl": {
              "description": "The indexable `/templates/<handle>/<app-name>` page for this template.",
              "type": "string"
            }
          },
          "required": [
            "displayName",
            "description",
            "starterPrompt",
            "copyUrl",
            "templatePageUrl",
            "builders",
            "creatorHandle"
          ],
          "type": "object"
        },
        "type": "array"
      }
    },
    "required": [
      "ok",
      "templates"
    ],
    "type": "object"
  }
}

Was this page helpful?