Server definition
- Hash
- sha256:fee4de1435cd9b4427daaf46735ed388c27b5c88d0fab7b1ab06796a37501a45
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Moltline Studio's catalog of 138 OpenClaw personas & skills and 12 kits. Free: search_catalog, preview_product, get_free_skill, list_kits, upgrade_info. Premium (paid plan): get_full_persona, get_full_skill, get_full_product, get_full_kit.",
"tools": [
{
"description": "Load a product's free gateway skill with its complete instructions. FREE.\n\nTypical input {\"slug\": \"inbox-zero-assistant\"} returns {\"slug\": ...,\n\"skill\": \"<skill name>\", \"instructions\": \"<full skill text>\"}.\n\nReturns exactly one skill - the product's free gateway skill - chosen\nautomatically from the slug, with no plan required. Use when the caller\nwants usable instructions immediately. Not for the product's other skills:\nthose are named and need get_full_skill with a skill_name, which requires\na paid plan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Product slug exactly as returned by search_catalog,\ne.g. \"inbox-zero-assistant\".",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_free_skill",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Load a themed kit and every member product in full. PREMIUM (paid plan).\n\nTypical input {\"slug\": \"founder-kit\"} returns {\"slug\": ..., \"name\": ...,\n\"products\": [{\"slug\": ..., \"name\": ..., \"persona\": ..., \"skills\":\n[...]}, ...]}.\n\nReturns every member product of one bundle in full, so the payload is\nlarge. Use only after list_kits has confirmed the kit slug. Not for a\nsingle product (get_full_product). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown kit '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Kit slug exactly as returned by list_kits, e.g. \"founder-kit\".",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_full_kit",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Load a product's complete persona definition. PREMIUM (paid plan).\n\nTypical input {\"slug\": \"inbox-zero-assistant\"} returns {\"slug\": ...,\n\"persona\": \"<full persona text>\"}.\n\nReturns the persona text alone, with no skill bodies. Use when the caller\nneeds the product's voice and operating rules only. Not when skills are\nalso wanted - get_full_product returns persona and every skill in one\ncall. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Product slug exactly as returned by search_catalog.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_full_persona",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Load one product in full: persona plus every skill's instructions. PREMIUM (paid plan).\n\nTypical input {\"slug\": \"inbox-zero-assistant\"} returns {\"slug\": ...,\n\"name\": ..., \"persona\": ..., \"skills\": [{\"name\": ..., \"instructions\":\n...}], \"free_skill\": {...}}.\n\nReturns persona plus every skill for one product. Use when the caller\nwants the whole product. Not for a single skill (get_full_skill) and not\nfor a bundle of products (get_full_kit). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Product slug exactly as returned by search_catalog.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_full_product",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Load one paid skill's complete instructions from a product. PREMIUM (paid plan).\n\nTypical input {\"slug\": \"inbox-zero-assistant\", \"skill_name\": \"Deep\nTriage\"} returns {\"slug\": ..., \"skill\": ..., \"instructions\": \"<full\nskill text>\"}.\n\nReturns one named skill, selected by skill_name. Use after preview_product\nhas shown the skill list and the caller wants one specific paid skill. Not\nfor the free gateway skill, which get_free_skill returns with no plan, and\nnot for every skill at once (get_full_product). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"skill_name": {
"description": "Exact skill name as shown in preview_product's \"skills\"\nlist for that product.",
"type": "string"
},
"slug": {
"description": "Product slug exactly as returned by search_catalog.",
"type": "string"
}
},
"required": [
"slug",
"skill_name"
],
"type": "object"
},
"name": "get_full_skill",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "List the 12 themed kits with pricing and member products. FREE.\n\nTakes no arguments. Returns a list of kit objects, each {\"slug\": ...,\n\"name\": ..., \"price_usd\": N, \"tagline\": ..., \"members\": [\"product-slug\",\n...], \"availability\": ...}. Use a kit's slug with get_full_kit (premium).\nKits are not sold standalone on any marketplace: price_usd is the bundle's\nreference value, and All-Access is how a caller actually unlocks one.\n\nUse when the caller asks about bundles or bundle pricing. Not for\nindividual products (search_catalog) and not for a kit's full contents\n(get_full_kit). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_kits",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Preview one product: metadata, persona teaser, and paid-skill teasers. FREE.\n\nTypical input {\"slug\": \"inbox-zero-assistant\"} returns {\"slug\": ...,\n\"name\": ..., \"tagline\": ..., \"persona_preview\": ..., \"skills\":\n[{\"name\": ..., \"preview\": ...}], \"free_skill\": ..., \"note\": ...}.\n\nReturns teasers only, never full text. Use to judge a product before\ncommitting. Not for the complete persona or skill bodies\n(get_full_persona, get_full_product), and not when the caller wants\ninstructions they can act on now (get_free_skill). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Product slug exactly as returned by search_catalog or\nrecommend_products, e.g. \"inbox-zero-assistant\".",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "preview_product",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Recommend catalog products for a need described in plain language. FREE.\n\nTypical input {\"need\": \"help answering customer support emails\"} returns\n{\"need\": ..., \"recommendations\": [{\"slug\": ..., \"name\": ..., \"why\": ...,\n\"area\": ..., \"try_free\": \"<free skill name>\"}], \"next\": \"...\"}.\n\nUse when the caller describes a problem instead of naming a product;\nranking is by fit to the described need. Not for exact keyword or slug\nlookups (search_catalog). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 5,
"description": "Maximum recommendations; values outside 1-10 are clamped.\nDefault 5.",
"type": "integer"
},
"need": {
"description": "The job or problem in plain language, a few words or a\nsentence, e.g. \"help answering customer support emails\".",
"type": "string"
}
},
"required": [
"need"
],
"type": "object"
},
"name": "recommend_products",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Search all 138 catalog products by keyword and/or focus area. FREE.\n\nTypical input {\"query\": \"email inbox\", \"limit\": 5} returns a ranked list\nof product objects [{\"slug\": ..., \"name\": ..., \"area\": ..., \"segment\":\n..., \"tagline\": ...}]. An empty query with an area set browses that area.\n\nUse when the caller names a keyword, product, or focus area to look up.\nNot for bundles (list_kits) and not for plain-language problem statements,\nwhich recommend_products ranks by fit rather than keyword match. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"area": {
"default": "",
"description": "Optional focus-area filter; one of \"productivity\",\n\"developertools\", \"personalassistant\", \"creative\",\n\"industryspecific\", \"educational\". Empty means all areas.",
"type": "string"
},
"limit": {
"default": 15,
"description": "Maximum results to return; values outside 1-100 are clamped.\nDefault 15.",
"type": "integer"
},
"query": {
"default": "",
"description": "Space-separated keywords matched against name, tagline, slug,\nand segment, e.g. \"email inbox\".",
"type": "string"
}
},
"type": "object"
},
"name": "search_catalog",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Explain how to unlock full personas, paid skills, and kits. FREE.\n\nTakes no arguments. Returns {\"message\": ..., \"how\": ..., \"free_tier\":\n...} describing the upgrade path and what stays free.\n\nUse when a premium tool has been refused or the caller asks what a plan\ncovers. Not for per-bundle or per-product pricing (list_kits,\npreview_product). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "upgrade_info",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:fee4de1435cd9b4427daaf46735ed388c27b5c88d0fab7b1ab06796a37501a45 | sha256sum