PluginBench
Skill
Official
Review
Audit score 70

microsoft-skill-creator

github/awesome-copilot

Create hybrid skills for Microsoft technologies using Learn MCP tools and local knowledge storage.

What is microsoft-skill-creator?

This skill enables agents to generate specialized skills for any Microsoft technology (Azure, .NET, M365, VS Code, Bicep, etc.) by investigating topics deeply with Learn MCP tools, then producing a hybrid skill that stores essential knowledge locally while enabling dynamic lookups for deeper details. Use it when you need to create reusable, modular skill packages that teach agents about Microsoft platforms and services.

  • Investigates Microsoft technologies using Learn MCP search, fetch, and code-sample tools
  • Generates hybrid skills with local core knowledge and dynamic Learn MCP integration
  • Structures skills with SKILL.md frontmatter, reference documentation, and working code examples
  • Balances local storage (foundational, frequently-accessed content) with dynamic content (exhaustive references, version-specific details)
  • Provides CLI fallback using mslearn CLI when Learn MCP server is unavailable
  • Validates generated skills for completeness and code correctness

How to install microsoft-skill-creator

npx skills add https://github.com/github/awesome-copilot --skill microsoft-skill-creator
Prerequisites
  • Access to Microsoft Learn MCP Server (https://learn.microsoft.com/api/mcp) or mslearn CLI installed
  • Basic understanding of skill structure (SKILL.md, references/, sample_codes/)
  • Familiarity with the Microsoft technology being documented
Claude Code
Cursor
Windsurf
Cline

How to use microsoft-skill-creator

  1. 1.Run investigation phase using Learn MCP tools: search for overview/concepts, fetch key pages, find code samples
  2. 2.Clarify with user which areas are most important, what tasks agents will perform, and preferred programming languages
  3. 3.Select the appropriate skill template (SDK/Library, Azure Service, Framework/Platform, or API/Protocol)
  4. 4.Generate SKILL.md with core concepts, quick-start code, and Learn MCP search queries for deeper topics
  5. 5.Validate that local content covers common tasks and suggested search queries return useful results

Use cases

Good for
  • Create a skill teaching agents about Azure services (e.g., Azure Functions, Cosmos DB) with setup code and common patterns
  • Generate a Semantic Kernel skill with plugin development examples and planner integration patterns
  • Build a .NET framework skill (e.g., ASP.NET Core) with project structure, configuration, and best practices
  • Develop an M365 API skill with authentication, REST endpoints, and code samples in C# or Python
  • Create a VS Code extension development skill with architecture, API reference, and extension examples
Who it's for
  • AI agent developers building specialized skills for Microsoft technologies
  • Teams creating reusable knowledge packages for internal agent deployment
  • Developers documenting Microsoft SDKs and services for agent consumption
  • Organizations standardizing how agents learn about enterprise Microsoft platforms

microsoft-skill-creator FAQ

What goes in SKILL.md vs reference files?

Store foundational concepts, hello-world code, and common patterns (3-5 of each) in SKILL.md. Keep exhaustive references, version-specific content, and full API docs as dynamic Learn MCP queries or in reference files for large content.

When should I use Learn MCP tools vs the mslearn CLI?

Use Learn MCP tools (microsoft_docs_search, microsoft_docs_fetch, microsoft_code_sample_search) when available. If the Learn MCP server is unavailable, fall back to the mslearn CLI with equivalent commands (e.g., `mslearn search "..."` instead of `microsoft_docs_search`).

How do I structure code samples in a generated skill?

Organize sample_codes/ with subdirectories like getting-started/ (hello-world examples) and common-patterns/ (3-5 typical usage patterns). Include working, runnable code with minimal dependencies.

What makes a good skill frontmatter?

The name and description determine when the skill triggers. Be clear and comprehensive: include the technology name, what it does, and when agents should use it. Avoid vague descriptions.

How do I validate a generated skill?

Review that local content is sufficient for common tasks, test that suggested Learn MCP search queries return useful results, and verify that code samples run without errors.

Full instructions (SKILL.md)

Source of truth, from github/awesome-copilot.


name: microsoft-skill-creator description: Create agent skills for Microsoft technologies using Learn MCP tools. Use when users want to create a skill that teaches agents about any Microsoft technology, library, framework, or service (Azure, .NET, M365, VS Code, Bicep, etc.). Investigates topics deeply, then generates a hybrid skill storing essential knowledge locally while enabling dynamic deeper investigation. context: fork compatibility: Works best with Microsoft Learn MCP Server (https://learn.microsoft.com/api/mcp). Can also use the mslearn CLI as a fallback.

Microsoft Skill Creator

Create hybrid skills for Microsoft technologies that store essential knowledge locally while enabling dynamic Learn MCP lookups for deeper details.

About Skills

Skills are modular packages that extend agent capabilities with specialized knowledge and workflows. A skill transforms a general-purpose agent into a specialized one for a specific domain.

Skill Structure

skill-name/
├── SKILL.md (required)     # Frontmatter (name, description) + instructions
├── references/             # Documentation loaded into context as needed
├── sample_codes/           # Working code examples
└── assets/                 # Files used in output (templates, etc.)

Key Principles

  • Frontmatter is critical: name and description determine when the skill triggers—be clear and comprehensive
  • Concise is key: Only include what agents don't already know; context window is shared
  • No duplication: Information lives in SKILL.md OR reference files, not both

Learn MCP Tools

ToolPurposeWhen to Use
microsoft_docs_searchSearch official docsFirst pass discovery, finding topics
microsoft_docs_fetchGet full page contentDeep dive into important pages
microsoft_code_sample_searchFind code examplesGet implementation patterns

CLI Alternative

If the Learn MCP server is not available, use the mslearn CLI from a terminal or shell (for example, Bash, PowerShell, or cmd) instead:

# Run directly (no install needed)
npx @microsoft/learn-cli search "semantic kernel overview"

# Or install globally, then run
npm install -g @microsoft/learn-cli
mslearn search "semantic kernel overview"
MCP ToolCLI Command
microsoft_docs_search(query: "...")mslearn search "..."
microsoft_code_sample_search(query: "...", language: "...")mslearn code-search "..." --language ...
microsoft_docs_fetch(url: "...")mslearn fetch "..."

Generated skills should include this same CLI fallback table so agents can use either path.

Creation Process

Step 1: Investigate the Topic

Build deep understanding using Learn MCP tools in three phases:

Phase 1 - Scope Discovery:

microsoft_docs_search(query="{technology} overview what is")
microsoft_docs_search(query="{technology} concepts architecture")
microsoft_docs_search(query="{technology} getting started tutorial")

Phase 2 - Core Content:

microsoft_docs_fetch(url="...")  # Fetch pages from Phase 1
microsoft_code_sample_search(query="{technology}", language="{lang}")

Phase 3 - Depth:

microsoft_docs_search(query="{technology} best practices")
microsoft_docs_search(query="{technology} troubleshooting errors")

Investigation Checklist

After investigating, verify:

  • Can explain what the technology does in one paragraph
  • Identified 3-5 key concepts
  • Have working code for basic usage
  • Know the most common API patterns
  • Have search queries for deeper topics

Step 2: Clarify with User

Present findings and ask:

  1. "I found these key areas: [list]. Which are most important?"
  2. "What tasks will agents primarily perform with this skill?"
  3. "Which programming language should code samples prioritize?"

Step 3: Generate the Skill

Use the appropriate template from skill-templates.md:

Technology TypeTemplate
Client library, NuGet/npm packageSDK/Library
Azure resourceAzure Service
App development frameworkFramework/Platform
REST API, protocolAPI/Protocol

Generated Skill Structure

{skill-name}/
├── SKILL.md                    # Core knowledge + Learn MCP guidance
├── references/                 # Detailed local documentation (if needed)
└── sample_codes/               # Working code examples
    ├── getting-started/
    └── common-patterns/

Step 4: Balance Local vs Dynamic Content

Store locally when:

  • Foundational (needed for any task)
  • Frequently accessed
  • Stable (won't change)
  • Hard to find via search

Keep dynamic when:

  • Exhaustive reference (too large)
  • Version-specific
  • Situational (specific tasks only)
  • Well-indexed (easy to search)

Content Guidelines

Content TypeLocalDynamic
Core concepts (3-5)✅ Full
Hello world code✅ Full
Common patterns (3-5)✅ Full
Top API methodsSignature + exampleFull docs via fetch
Best practicesTop 5 bulletsSearch for more
TroubleshootingSearch queries
Full API referenceDoc links

Step 5: Validate

  1. Review: Is local content sufficient for common tasks?
  2. Test: Do suggested search queries return useful results?
  3. Verify: Do code samples run without errors?

Common Investigation Patterns

For SDKs/Libraries

"{name} overview" → purpose, architecture
"{name} getting started quickstart" → setup steps
"{name} API reference" → core classes/methods
"{name} samples examples" → code patterns
"{name} best practices performance" → optimization

For Azure Services

"{service} overview features" → capabilities
"{service} quickstart {language}" → setup code
"{service} REST API reference" → endpoints
"{service} SDK {language}" → client library
"{service} pricing limits quotas" → constraints

For Frameworks/Platforms

"{framework} architecture concepts" → mental model
"{framework} project structure" → conventions
"{framework} tutorial walkthrough" → end-to-end flow
"{framework} configuration options" → customization

Example: Creating a "Semantic Kernel" Skill

Investigation

microsoft_docs_search(query="semantic kernel overview")
microsoft_docs_search(query="semantic kernel plugins functions")
microsoft_code_sample_search(query="semantic kernel", language="csharp")
microsoft_docs_fetch(url="https://learn.microsoft.com/semantic-kernel/overview/")

Generated Skill

semantic-kernel/
├── SKILL.md
└── sample_codes/
    ├── getting-started/
    │   └── hello-kernel.cs
    └── common-patterns/
        ├── chat-completion.cs
        └── function-calling.cs

Generated SKILL.md

---
name: semantic-kernel
description: Build AI agents with Microsoft Semantic Kernel. Use for LLM-powered apps with plugins, planners, and memory in .NET or Python.
---

# Semantic Kernel

Orchestration SDK for integrating LLMs into applications with plugins, planners, and memory.

## Key Concepts

- **Kernel**: Central orchestrator managing AI services and plugins
- **Plugins**: Collections of functions the AI can call
- **Planner**: Sequences plugin functions to achieve goals
- **Memory**: Vector store integration for RAG patterns

## Quick Start

See [getting-started/hello-kernel.cs](sample_codes/getting-started/hello-kernel.cs)

## Learn More

| Topic | How to Find |
|-------|-------------|
| Plugin development | `microsoft_docs_search(query="semantic kernel plugins custom functions")` |
| Planners | `microsoft_docs_search(query="semantic kernel planner")` |
| Memory | `microsoft_docs_fetch(url="https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory")` |

## CLI Alternative

If the Learn MCP server is not available, use the `mslearn` CLI instead:

| MCP Tool | CLI Command |
|----------|-------------|
| `microsoft_docs_search(query: "...")` | `mslearn search "..."` |
| `microsoft_code_sample_search(query: "...", language: "...")` | `mslearn code-search "..." --language ...` |
| `microsoft_docs_fetch(url: "...")` | `mslearn fetch "..."` |

Run directly with `npx @microsoft/learn-cli <command>` or install globally with `npm install -g @microsoft/learn-cli`.