Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run and integrate Skillz MCP server with Docker for skill execution.
.claude/skills/github-skillz-mcp-server-integration/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 88% | 16 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -37% | 0% |
Skillz is an MCP server that turns Claude-style skills (SKILL.md plus optional resources) into callable tools for MCP clients. It discovers skills, exposes instructions/resources, and runs bundled helper scripts.
Repository: https://github.com/intellectronica/skillz
> ⚠️ Experimental proof-of-concept. Potentially unsafe. Treat skills like untrusted code and run in sandboxes/containers. Use at your own risk.
To use Skillz with GitHub Agentic Workflows, add it as an MCP server in your workflow frontmatter:
awon: issues engine: copilot mcp-servers: skillz: container: "intellectronica/skillz" args: - "-v" - "/path/to/skills:/skillz" - "/skillz" # Your workflow with skills Use skills from the skillz server to accomplish tasks.
Key points:
/path/to/skills with the actual path to your skills directory/skillz inside the container/skillz as the argument to tell skillz where to find skillsSkillz looks for skills inside the root directory you provide (defaults to ~/.skillz). Each skill lives in its own folder or zip archive that includes a SKILL.md file with YAML front matter.
textskills/ ├── summarize-docs/ │ ├── SKILL.md │ ├── summarize.py │ └── prompts/example.txt ├── translate.zip └── web-search/ └── SKILL.md
Each skill folder must contain:
SKILL.md - Required file with YAML frontmatter describing the skillExample SKILL.md:
markdownname: summarize-docs description: Summarize documentation files # Document Summarization Skill This skill helps summarize long documentation files. Use the provided `summarize.py` script to process documents.
Skills can be packaged as .zip archives:
texttranslate.zip ├── SKILL.md └── helpers/ └── translate.js
Or with a top-level directory:
textdata-cleaner.zip └── data-cleaner/ ├── SKILL.md └── clean.py
For compatibility with Claude Code, use a flat directory structure where every immediate subdirectory is a single skill:
textskills/ ├── hello-world/ │ ├── SKILL.md │ └── run.sh └── summarize-text/ ├── SKILL.md └── run.py
Limitations: No nested directories, no .zip files.
Skillz supports nested directories and .zip files:
textskills/ ├── text-tools/ │ └── summarize-text/ │ ├── SKILL.md │ └── run.py └── image-processing.zip
Note: This layout is NOT compatible with Claude Code.
When using Docker, you can pass environment variables to skills:
yamlmcp-servers: skillz: container: "intellectronica/skillz" args: - "-v" - "/path/to/skills:/skillz" - "/skillz" env: API_KEY: "${{ secrets.SKILL_API_KEY }}"
Enable verbose logging for debugging:
yamlmcp-servers: skillz: container: "intellectronica/skillz" args: - "-v" - "/path/to/skills:/skillz" - "/skillz" - "--verbose"
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | pass→pass | 5,618 | 2,273 | -60% | 1 | 1 | 0% | 813 | 1,280 | +57% | 0 | 0 | — |
case-01 | fail→pass | 7,667 | 3,823 | -50% | 1 | 1 | 0% | 1,517 | 1,536 | +1% | 0 | 0 | — |
case-02 | fail→pass | 16,234 | 7,909 | -51% | 1 | 1 | 0% | 2,797 | 2,433 | -13% | 0 | 0 | — |
case-03 | fail→pass | 7,226 | 5,128 | -29% | 1 | 1 | 0% | 1,196 | 1,872 | +57% | 0 | 0 | — |
case-04 | pass→pass | 15,435 | 3,090 | -80% | 1 | 1 | 0% | 2,897 | 1,465 | -49% | 0 | 0 | — |
case-05 | fail→pass | 8,192 | 3,458 | -58% | 1 | 1 | 0% | 1,322 | 1,408 | +7% | 0 | 0 | — |
case-06 | fail→pass | 10,730 | 1,921 | -82% | 1 | 1 | 0% | 1,822 | 1,142 | -37% | 0 | 0 | — |
case-07 | fail→pass | 8,849 | 3,068 | -65% | 1 | 1 | 0% | 1,375 | 1,371 | -0% | 0 | 0 | — |
case-09 | fail→pass | 19,488 | 2,943 | -85% | 1 | 1 | 0% | 1,608 | 1,353 | -16% | 0 | 0 | — |
case-10 | pass→pass | 13,647 | 3,902 | -71% | 1 | 1 | 0% | 2,310 | 1,640 | -29% | 0 | 0 | — |
case-11 | pass→pass | 12,343 | 3,626 | -71% | 1 | 1 | 0% | 2,369 | 1,602 | -32% | 0 | 0 | — |
case-12 | pass→pass | 9,862 | 4,238 | -57% | 1 | 1 | 0% | 1,601 | 1,625 | +1% | 0 | 0 | — |
case-13 | pass→pass | 4,907 | 2,804 | -43% | 1 | 1 | 0% | 890 | 1,356 | +52% | 0 | 0 | — |
case-14 | pass→pass | 11,862 | 3,581 | -70% | 1 | 1 | 0% | 1,832 | 1,518 | -17% | 0 | 0 | — |
case-15 | pass→pass | 10,854 | 4,866 | -55% | 1 | 1 | 0% | 1,762 | 1,823 | +3% | 0 | 0 | — |
case-16 | pass→pass | 7,801 | 3,124 | -60% | 1 | 1 | 0% | 1,122 | 1,397 | +25% | 0 | 0 | — |
case-17 | fail→pass | 8,505 | 3,169 | -63% | 1 | 1 | 0% | 1,285 | 1,181 | -8% | 0 | 0 | — |
case-18 | pass→pass | 12,514 | 3,600 | -71% | 1 | 1 | 0% | 1,754 | 1,452 | -17% | 0 | 0 | — |
case-19 | pass→pass | 13,231 | 1,849 | -86% | 1 | 1 | 0% | 2,274 | 1,271 | -44% | 0 | 0 | — |
case-20 | pass→pass | 5,275 | 3,798 | -28% | 1 | 1 | 0% | 951 | 1,673 | +76% | 0 | 0 | — |
case-21 | pass→pass | 8,621 | 6,485 | -25% | 1 | 1 | 0% | 1,512 | 2,059 | +36% | 0 | 0 | — |
case-22 | pass→pass | 6,839 | 8,007 | +17% | 1 | 1 | 0% | 1,125 | 1,623 | +44% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.