wondel-skills-mcp
Read-only MCP server over 50 book-based agent skills: routes a task to the right framework.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"wondel-skills-mcp": {
"url": "https://skills.wondel.ai/mcp"
}
}
}Remote endpoints
https://skills.wondel.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢search_skills(query, kind, category, limit, context)
Search 51 book-based agent skills and 14 guided journeys by keyword or phrase. Each skill is matched against its own trigger text, so plain task language works ("my UI looks amateur", "pricing", "dark mode"). Returns compact hits, each quoting the line that matched. Use recommend_skills instead when you have a task rather than a keyword.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"description": "Keyword, phrase, slug or plain description of the problem"
},
"kind": {
"description": "Restrict to single skills or guided journeys",
"type": "string",
"enum": [
"skill",
"journey",
"all"
]
},
"category": {
"description": "Restrict to one domain",
"type": "string",
"enum": [
"design",
"marketing",
"sales",
"product",
"strategy",
"team",
"code",
"architecture"
]
},
"limit": {
"description": "Maximum hits (default 8)",
"type": "integer",
"minimum": 1,
"maximum": 20
},
"context": {
"type": "string",
"description": "Why are you calling this tool? One line on the user's actual task, in their words — not a restatement of the tool name."
}
},
"required": [
"query",
"context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"total": {
"type": "number"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"skill",
"journey"
]
},
"name": {
"type": "string"
},
"oneLiner": {
"type": "string"
},
"category": {
"type": "string"
},
"whyMatch": {
"type": "string"
},
"updated": {
"type": "string"
},
"canonical": {
"type": "string"
},
"install": {
"type": "string"
}
},
"required": [
"slug",
"kind",
"name",
"oneLiner",
"category",
"whyMatch",
"updated",
"canonical",
"install"
],
"additionalProperties": false
}
},
"next": {
"type": "string"
}
},
"required": [
"query",
"total",
"results",
"next"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢recommend_skills(task, stack, phase, max, context)
Route a task to the right skills. Describe the job in your own words and this returns which skills to load first, which to skip whenever a skill's own "not for" line rules it out for this task — quoted verbatim — and a guided journey when the task spans a whole project rather than one step. This is the tool to reach for first.
Input Schema
{
"type": "object",
"properties": {
"task": {
"type": "string",
"minLength": 4,
"description": "The job to be done, in your own words — a full sentence beats a keyword"
},
"stack": {
"description": "Language, framework or platform, if it narrows the answer",
"type": "string"
},
"phase": {
"description": "Where in the work you are",
"type": "string",
"enum": [
"audit",
"build",
"launch"
]
},
"max": {
"description": "How many skills to return (default 3)",
"type": "integer",
"minimum": 1,
"maximum": 6
},
"context": {
"type": "string",
"description": "Why are you calling this tool? One line on the user's actual task, in their words — not a restatement of the tool name."
}
},
"required": [
"task",
"context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"task": {
"type": "string"
},
"loadFirst": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"why": {
"type": "string"
}
},
"required": [
"slug",
"name",
"why"
],
"additionalProperties": false
}
},
"then": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"why": {
"type": "string"
}
},
"required": [
"slug",
"name",
"why"
],
"additionalProperties": false
}
},
"avoid": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"slug",
"name",
"reason"
],
"additionalProperties": false
}
},
"journey": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"why": {
"type": "string"
},
"phases": {
"type": "number"
}
},
"required": [
"slug",
"name",
"why",
"phases"
],
"additionalProperties": false
},
"next": {
"type": "string"
}
},
"required": [
"task",
"loadFirst",
"then",
"avoid",
"next"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_skill(slug, sections, context)
Metadata for one skill or journey: its definition, when to use it, when not to, and related slugs. Deliberately cheap (~300 tokens) so you can check a candidate before committing context to it. Pass sections to widen, or sections:["all"] for the whole page. This does not return the skill instructions — load_skill does.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Skill or journey slug, e.g. \"refactoring-ui\" or \"create-business\""
},
"sections": {
"description": "Which parts to return. Default: definition, use_when, not_for, related. \"all\" returns the full page.",
"type": "array",
"items": {
"type": "string",
"enum": [
"definition",
"use_when",
"not_for",
"key_concepts",
"prompts",
"faqs",
"book",
"related",
"phases",
"all"
]
}
},
"context": {
"type": "string",
"description": "Why are you calling this tool? One line on the user's actual task, in their words — not a restatement of the tool name."
}
},
"required": [
"slug",
"context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"skill",
"journey"
]
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"oneLiner": {
"type": "string"
},
"updated": {
"type": "string"
},
"canonical": {
"type": "string"
},
"source": {
"type": "string"
},
"install": {
"type": "string"
},
"definition": {
"type": "string"
},
"useWhen": {
"type": "array",
"items": {
"type": "string"
}
},
"notFor": {
"type": "array",
"items": {
"type": "string"
}
},
"keyConcepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"title",
"description"
],
"additionalProperties": false
}
},
"examplePrompts": {
"type": "array",
"items": {
"type": "string"
}
},
"faqs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {
"type": "string"
},
"answer": {
"type": "string"
}
},
"required": [
"question",
"answer"
],
"additionalProperties": false
}
},
"book": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"author": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"title",
"author"
],
"additionalProperties": false
},
"related": {
"type": "array",
"items": {
"type": "string"
}
},
"phases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"n": {
"type": "number"
},
"skillSlug": {
"type": "string"
},
"question": {
"type": "string"
},
"artifact": {
"type": "string"
},
"gate": {
"type": "boolean"
}
},
"required": [
"n",
"skillSlug",
"question",
"artifact",
"gate"
],
"additionalProperties": false
}
},
"next": {
"type": "string"
}
},
"required": [
"slug",
"kind",
"name",
"category",
"oneLiner",
"updated",
"canonical",
"source",
"install",
"next"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢load_skill(slug, part, context)
The skill's actual instructions — the upstream SKILL.md, ready to follow in this session with nothing installed. The response also lists the skill's reference files with their token cost, so you can pull deeper material on demand by calling again with part set to a filename.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Skill or journey slug"
},
"part": {
"description": "\"core\" (default) for SKILL.md, or a reference filename from a previous response",
"type": "string"
},
"context": {
"type": "string",
"description": "Why are you calling this tool? One line on the user's actual task, in their words — not a restatement of the tool name."
}
},
"required": [
"slug",
"context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_journey(slug, goal, context)
One guided journey as a phase plan: the ordered skills, the decision question each phase answers, the docs/ file it writes, and which phases are go/no-go gates. Pass slug for a known journey, or goal to have one picked.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"description": "Journey slug, e.g. \"grow-website\"",
"type": "string"
},
"goal": {
"description": "What you are trying to achieve, if you do not know which journey fits",
"type": "string"
},
"context": {
"type": "string",
"description": "Why are you calling this tool? One line on the user's actual task, in their words — not a restatement of the tool name."
}
},
"required": [
"context"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"tagline": {
"type": "string"
},
"definition": {
"type": "string"
},
"phases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"n": {
"type": "number"
},
"skillSlug": {
"type": "string"
},
"skillName": {
"type": "string"
},
"question": {
"type": "string"
},
"artifact": {
"type": "string"
},
"gate": {
"type": "boolean"
}
},
"required": [
"n",
"skillSlug",
"skillName",
"question",
"artifact",
"gate"
],
"additionalProperties": false
}
},
"artifacts": {
"type": "array",
"items": {
"type": "string"
}
},
"useWhen": {
"type": "array",
"items": {
"type": "string"
}
},
"notFor": {
"type": "array",
"items": {
"type": "string"
}
},
"install": {
"type": "string"
},
"canonical": {
"type": "string"
},
"next": {
"type": "string"
}
},
"required": [
"slug",
"name",
"tagline",
"definition",
"phases",
"artifacts",
"useWhen",
"notFor",
"install",
"canonical",
"next"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence