Skills extend the MCP model by providing workflow guidance. They’re discovered via
searchSkills and loaded via loadSkill tools that FrontMCP automatically registers.Why Skills?
In the Model Context Protocol ecosystem, skills serve a distinct purpose from tools, resources, and prompts:
Skills are ideal for:
- Complex workflows — multi-step procedures like PR reviews, deployments, migrations
- Domain expertise — codified knowledge from experts (security audits, code reviews)
- Orchestration guides — coordinating multiple tools in sequence
- Reusable playbooks — standardized procedures across teams
How Skills Work
Creating Skills
Class Style
Use class decorators for skills that need dependency injection or lifecycle hooks:Function Style
For simpler skills, use the functional builder:Registering Skills
Add skills to your app via theskills array:
- Indexed for search via
searchSkills - Loadable via
loadSkillwith tool availability info
Loading from npm or Remote Servers
Mix local skills with those loaded from npm or proxied from remote servers:Skill.esm() and Skill.remote() load individual skills. For loading entire apps, use App.esm() or App.remote().Skill Metadata
Name Validation
Skill names follow strict kebab-case rules per the Anthropic Agent Skills specification:- Lowercase letters, numbers, and hyphens only
- Must start and end with a letter or number
- No consecutive hyphens (
--) - Maximum 64 characters
Description Validation
- Non-empty
- Maximum 1024 characters
Instruction Sources
Skills support three instruction sources:Inline String (Recommended)
Best for dependency tracking and version control:File Path
Load from a markdown file at runtime:URL
Fetch from a remote source at load time:Tool References
Reference tools with simple names or detailed objects:Simple References
Detailed References
Include purpose and required flag for better LLM understanding:Parameters
Define input parameters that customize skill behavior:Examples
Provide usage examples to help LLMs understand when to use the skill:Real-World Examples
PR Review Skill
Deploy Application Skill
Code Refactoring Skill
MCP Protocol Integration
FrontMCP automatically registers two flows for skill discovery and loading:searchSkills
Search for skills matching a query:loadSkill
Load a skill’s full content:Tool Validation
When loading a skill, FrontMCP validates tool availability:- Available tools: Tools registered in the current scope
- Missing tools: Referenced tools that don’t exist
- Hidden tools: Tools that exist but are hidden from discovery
Handling Missing Tools
Skills are still loadable even when some tools are missing:- Proceed with available tools only
- Inform the user about limitations
- Suggest alternative approaches
Setting
required: true on a tool reference indicates the skill cannot function without it. Missing required tools are highlighted in the warning message.Search Algorithm
Skills are searched using TF-IDF with weighted terms:
Results are ranked by:
- Relevance score
- Priority field (higher = earlier)
- Tool availability (complete skills rank higher)
Agent Skills Specification Alignment
FrontMCP skills are aligned with the Anthropic Agent Skills specification. This means you can use standard SKILL.md files and skill directories with FrontMCP.New Spec Fields
Fields from the Agent Skills spec are available as first-class properties:SKILL.md Frontmatter
FrontMCP can parse SKILL.md files with YAML frontmatter, the standard format from the Agent Skills specification:metadata→specMetadataallowed-tools→allowedTools- All other fields map directly
instructions content.
Loading Skill Directories
Load complete skill directories following the Agent Skills spec structure:Using skillDir()
Using loadSkillDirectory()
For more control:
Allowed Tools
TheallowedTools field lists tools that are pre-approved for the skill. This is useful for skill sessions where tool access is restricted:
allowedTools don’t require additional user confirmation during skill sessions.
CLI commands
Thefrontmcp skills command tree ships six subcommands:
install works on two sources:
- Framework catalog (default) — copies one of the catalog router
skills (
frontmcp-development,frontmcp-deployment, …) into.claude/skills/or.codex/skills/. - Project-defined
@Skillentries — pass--from-entry <path>to enumerate skills registered in a local entry file, or--from-package <pkg>to do the same against an installed package’s main entry. The CLI bundles the entry, boots the SDK in-memory, and writes a Claude-Code-loadableSKILL.mdper skill (synthesizing frontmatter from the@Skilldecorator metadata when the source markdown has none).
^[a-zA-Z0-9][a-zA-Z0-9._-]*$) before any filesystem write, so a
malicious @Skill({ name: '../escape' }) cannot land outside the
target directory. Names that fail the check are skipped with a warning
and the rest of the install continues.
For the full flag tables, bulk-install patterns, and IDE-target output
mapping, see the canonical reference shipped with the
frontmcp-setup
router skill. Run frontmcp skills <command> --help for the
authoritative live surface.
Best Practices
Do:- Write clear, step-by-step instructions that guide the LLM through the workflow
- Reference specific tools with purpose descriptions
- Include examples for common scenarios
- Use tags for categorization and discovery
- Keep skills focused on a single workflow or domain
- Create overly broad skills that try to do everything
- Skip tool purposes (hurts discoverability and understanding)
- Hardcode values that should be parameters
- Forget to list required tools
- Create skills for simple, single-tool operations (just use the tool directly)