MCP-server discovery for the gate landed in the SDK on 2026-07-27. Before that, skills with
requires_servers under STRICT enforcement were always hidden because the live server set was empty. If you hit that regression, upgrade praisonaiagents.Quick Start
1
Simple Agent with Skill Requirements
2
Skill with Capability Requirements
Create a
SKILL.md with requirements:How It Works
Frontmatter Reference
All frontmatter keys are optional and backward-compatible. Existing skills without requirements are unaffected.
String forms are normalized — both
requires_tools: "pdf_read, ocr_extract" and requires_tools: "pdf_read ocr_extract" work. The same normalization applies to fallback_for_tools and fallback_for_servers.
Graceful Fallback Skills
fallback_for_tools / fallback_for_servers let a skill stay hidden until the agent is missing the capability it covers.
SKILL.md frontmatter:
Behaviour
A fallback skill’s own
requires_* gates are always enforced, regardless of the enforcement level. An unusable fallback is never injected into the agent’s context.When to Use fallback vs. requires
Skill Discovery Sequence
The validator evaluates bothavailable_tools / available_servers for the keep-or-hide decision and the fallback skill’s own requires_* gates before injecting it.
Skill States
How MCP-Server Names Are Matched
The validator asksMCP.list_active_server_names() for the set of connected MCP servers, then checks each requires_servers entry against it.
MCP(...) client calls with_tool_prefix(), using the sanitised server name (e.g. filesystem for @anthropic/mcp-server-filesystem). Inspect the live set at any time:
requires_servers entry must match a name from this set exactly.
Enforcement Levels
Configuration
Environment Variable
Programmatic Configuration
Diagnostics from Code
Basic Validation
Full Diagnostics
Filter Skills by State
CLI Diagnostics
Basic Skills Check
Detailed Requirements Check
Common Patterns
Terminal-based Web Fallback
Local-file Fallback for Absent MCP Server
Soft-warn in Dev, Strict in Prod
Add Tool Requirement to Existing Skill
Filter to Active-Only Skills for System Prompt
Best Practices
Prefer requires_tools over allowed-tools for new skills
Prefer requires_tools over allowed-tools for new skills
Use the new
requires_tools frontmatter key for better validation:Use requires_env sparingly (prefer tool-level auth)
Use requires_env sparingly (prefer tool-level auth)
Minimize environment variable dependencies:
Default to warn in development, strict in production
Default to warn in development, strict in production
Configure appropriate enforcement levels:
Use fallback_for_* for graceful degradation, not as a feature switch
Use fallback_for_* for graceful degradation, not as a feature switch
Fallback skills disappear automatically when the real capability is present; they are not a runtime toggle. If you need a user-controlled switch, gate the skill with
requires_env on a feature-flag env var instead.Cache validation results (validator already caches; document clear_cache())
Cache validation results (validator already caches; document clear_cache())
Validation results are automatically cached for performance:
Inverse: Graceful Fallback
fallback_for_tools and fallback_for_servers are the inverse of requires_* — a skill with these keys is offered only when the listed tool or server is absent.
See Skill Fallback for the full reference.
Related
Skill Fallback
The inverse — offer a skill only when a tool or server is absent
Agent Skills
Learn about the Agent Skills system and how to create skills
Graceful Skill Fallback
Offer fallback skills only when a preferred capability is absent
Hermes/OpenClaw Import
Import skills from Hermes and OpenClaw with capability requirements
Skill Management
Manage skills programmatically with the SkillManager API
Doctor CLI
Use the doctor command to diagnose skill capability issues

