Tileio

Search 700+ design layers and fetch the build prompt for HTML, Next.js, React, Vue and more.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
79%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~804Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (0.63% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "tileio": {
      "command": "npx",
      "args": [
        "tileio-mcp"
      ]
    }
  }
}

Runnable packages

npmtileio-mcp1.0.0stdio

Remote endpoints

https://tileio.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟔 WritešŸ”“ Delete⚪ Unknown
🟢search_layers(query, category, tier, tone, limit, ...)

Search the Tileio library by free text and filters. Returns layer ids with their catalogue number (the N° shown on tileio.com), title, category, subtitle (industry, section type, technique...), tier, tone, description and page URL. get_prompt on a premium layer counts toward a daily limit; pass tier "free" to list only layers with no limit.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Words to match, e.g. \"pricing table\", \"dark saas hero\", \"particles\". All words must match.",
      "type": "string",
      "maxLength": 200
    },
    "category": {
      "description": "Only this kind of layer.",
      "type": "string",
      "enum": [
        "template",
        "scene",
        "section",
        "background",
        "gradient",
        "page",
        "element",
        "vector"
      ]
    },
    "tier": {
      "type": "string",
      "enum": [
        "free",
        "premium"
      ]
    },
    "tone": {
      "description": "Dark or light base colour.",
      "type": "string",
      "enum": [
        "dark",
        "light"
      ]
    },
    "limit": {
      "default": 10,
      "description": "Results per page, 1-50.",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "offset": {
      "default": 0,
      "description": "Skip this many results (paging).",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_layer(id)

Details of one layer by id: description, fonts, blocks, and the palettes or variants (with their index) and parameters that get_prompt accepts. Does not include the prompt or source.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 80,
      "description": "Layer id from search_layers, e.g. \"aurora-mesh\"."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_prompt(id, target, palette, variant)

The full prompt that rebuilds a layer in the chosen framework, with the chosen palette (templates, sections, pages, elements, gradients) or variant (3D scenes, backgrounds, vectors). Follow it as the build brief. Free layers have no limit. A premium layer counts once per UTC day against the caller's daily limit (1 without a key, 3 Free, 30 Pro, none for Lifetime); fetching it again that day is free.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 80,
      "description": "Layer id from search_layers."
    },
    "target": {
      "default": "html",
      "description": "Framework to build for (see list_targets). Default: one self-contained HTML file.",
      "type": "string",
      "enum": [
        "html",
        "next",
        "react",
        "vue",
        "astro",
        "wordpress",
        "shopify",
        "webflow"
      ]
    },
    "palette": {
      "description": "Palette index from get_layer. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "variant": {
      "description": "Variant index from get_layer. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_targets

The frameworks get_prompt can write a layer for, with the id to pass as target.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools