Generate, refresh, and maintain Webiny MCP server skills from source documentation and codebase. Use this skill when you need to create new Webiny skills, update existing skills after framework changes, regenerate the entire skill library, or create a skill for a specific Webiny feature. Trigger this whenever someone says "create a skill", "update skills", "refresh skills", "add a new skill for X", or "regenerate the skill library". This is the meta-skill that produces all other Webiny MCP skills.
72
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
This skill generates and maintains the set of skills served by the Webiny MCP server. It operates in two modes:
Every skill lives in its own folder as <skill-name>/SKILL.md with YAML frontmatter. The MCP server recursively scans for SKILL.md files and auto-generates the catalog from front-matter metadata -- no README index is needed.
webiny/my-skills/
├── <skill-name>/
│ └── SKILL.md
├── <skill-name>/
│ └── SKILL.md
└── ...Each <skill-name>/SKILL.md file follows this template:
---
name: webiny-<topic>
description: >
What this skill covers and when to use it.
Be specific about trigger phrases and developer intents.
Err on the side of being "pushy" -- describe scenarios broadly
so the MCP server surfaces this skill when relevant.
---
# Title
## TL;DR
One paragraph actionable summary.
## Pattern / Core Concept
The main code pattern with a generic template.
## Reference Tables
Tables for methods, properties, types, imports.
## Full Examples
2-3 complete, working code examples showing real use cases.
## Quick Reference
Import paths, interfaces, registration, deploy commands.
## Related Skills
Links to other skills that complement this one.These guidelines ensure skills are effective when served by the MCP server to AI agents:
TL;DR first -- Every skill starts with a one-paragraph actionable summary. An agent should be able to read just this and know if the skill is relevant.
Generic pattern before examples -- Show the abstract pattern template first, then concrete examples. This helps agents generalize rather than copy-paste.
Complete, working code -- Every code block must be copy-paste ready. Include all imports, class definitions, and export statements. Never show partial snippets that require guessing.
Reference tables for APIs -- Use markdown tables for method signatures, field types, validators, injectable services, etc. Tables are dense and scannable.
Exact import paths -- Always show the full import path. Webiny uses feature-based imports (e.g., "webiny/api/cms/model" not "@webiny/api-headless-cms"). Getting the import wrong breaks everything.
The universal DI pattern -- Every API extension uses createImplementation({ implementation, dependencies }). Reinforce this in every skill that covers an API extension type.
Registration in webiny.config.tsx -- Always show how to register the extension. Include the JSX element and the src path convention.
Deploy command -- Always end with which deploy command to run (yarn webiny deploy api, admin, or core).
Related skills -- Cross-link to complementary skills. Developers rarely need just one skill.
Description frontmatter -- The description field is the primary trigger mechanism. Include:
When generating or updating skills, read from these sources in priority order:
<root>/packages/mcp/src/skills/)Read the current skills first to understand what exists and what needs updating.
learn-webiny/content/lessons/)The tutorial content organized by topic:
| Directory | Topics Covered |
|---|---|
foundation/ | Webiny overview, framework, apps, multi-tenancy, infrastructure |
developing-with-webiny/ | Project structure, extensions, SDK overview, local dev, debugging, white-labeling |
headless-cms/ | Content models, versioning, lifecycle events, reading/writing data, list customization |
website-builder/ | Setup, editor components, theming, CMS integration |
getting-started/ | Installation, CLI overview, deployment |
skills-bak/)The previous generation of skills. Good reference for structure and patterns but may have outdated imports or APIs.
webiny/)The actual development instance:
| Path | What to Look At |
|---|---|
webiny.config.tsx | Real extension registration examples |
extensions/ | Working extension implementations |
ai-context/ | Core features reference with import paths and type definitions |
packages/ | Package source code for verifying APIs |
webiny/ai-context/)Contains core-features-reference.md with verified import paths and type definitions for:
This is the most reliable source for import paths and interfaces.
When asked to regenerate all skills:
Inventory current skills -- Read webiny/my-skills/ to see what exists.
Read source documentation -- Use subagents to read in parallel:
learn-webiny/content/lessons/ (exclude archived)skills-bak/webiny/webiny.config.tsx, webiny/ai-context/core-features-reference.mdwebiny/extensions/Identify gaps -- Compare source content against existing skills. Look for:
Generate/update skills -- Write each skill following the format above. For each skill:
ai-context/core-features-reference.mdVerify consistency -- Check that:
webiny.config.tsx conventionsWhen asked to create a skill for a specific feature:
Understand the feature -- Ask the developer:
Research -- Read relevant source files:
learn-webiny/content/lessons/skills-bak/webiny/extensions/ or webiny/packages/webiny/ai-context/core-features-reference.mdDraft the skill -- Create <skill-name>/SKILL.md following the structure above.
Review with developer -- Present the skill for feedback before finalizing.
The following skills should exist in webiny/my-skills/:
| Skill Folder | Covers |
|---|---|
project-structure/SKILL.md | Project layout, webiny.config.tsx, extension registration |
content-models/SKILL.md | ModelFactory, fields, validators, layout |
custom-graphql-api/SKILL.md | GraphQLSchemaFactory, resolvers, DI |
lifecycle-events/SKILL.md | CMS entry hooks, security events |
admin-ui-extensions/SKILL.md | White-labeling, custom columns, forms, Lexical |
infrastructure-extensions/SKILL.md | Pulumi handlers, declarative infra components |
cli-extensions/SKILL.md | CliCommandFactory, custom CLI commands |
dependency-injection/SKILL.md | Universal DI pattern, injectable services |
webiny-sdk/SKILL.md | External app integration, Result pattern |
website-builder/SKILL.md | Editor components, theming, CMS integration |
local-development/SKILL.md | Deploy, watch, environments, debugging |
Add a new skill when:
webiny/packages/ directory shows new extension types<skill-name>/ in kebab-case (e.g., content-models/, not cms/)SKILL.md inside the foldername field: webiny-<skill-name> (e.g., webiny-content-models)Skills are served via the Webiny MCP server:
// .mcp.json
{
"mcpServers": {
"webiny": {
"command": "npx",
"args": ["webiny", "mcp-server", "--additional-skills", "./my-skills"]
}
}
}The MCP server exposes two tools:
list_webiny_skills -- Returns all skill names and descriptionsget_webiny_skill -- Returns the full content of a specific skillAgents call list_webiny_skills first to find relevant skills, then get_webiny_skill to load the full content before writing code.
Beyond skills, consider these additional inputs for the MCP server to improve developer experience:
Expose the actual content models defined in the project (from webiny.config.tsx and extensions/) so agents know what models exist, their fields, and relationships without having to read source files.
Provide a tool that lists all registered extensions (API, Admin, Infra, CLI) with their file paths and types. This helps agents understand what's already built.
Expose yarn webiny info output (API URLs, Admin URL, CloudFront endpoint) as an MCP tool so agents can configure SDK clients or test endpoints without running CLI commands.
Expose the auto-generated GraphQL schema so agents can see exact query/mutation signatures, field types, and filter options for each content model.
Bundle scaffolding templates for common patterns (new model, new hook, new GraphQL schema, new editor component) that agents can use as starting points, reducing the chance of structural errors.
An MCP tool that validates extension code before deployment -- checking import paths, DI dependency order, and webiny.config.tsx registration. Catches errors before yarn webiny deploy.
484553b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.