Microsoft Docs (microsoft/skills)
## what it does
tl;dr: a thin Microsoft Learn documentation router that ships as a fork-context skill. The body is short because the work happens in the tools — microsoft_docs_search to find pages, microsoft_docs_fetch to retrieve full content (with --section <heading> and --max-chars <n> support on the CLI side). Primary transport is the Microsoft Learn MCP server at https://learn.microsoft.com/api/mcp; the mslearn CLI (npx @microsoft/learn-cli) is the documented fallback. The value of the skill is its query-effectiveness rules, not the underlying MCP server.
What it actually does
The SKILL.md fetched on 2026-09-10 from microsoft/skills/main/.github/skills/microsoft-docs/SKILL.md is one of the 11 Core skills in the Microsoft skills bundle. The body declares two tools and a query-craft checklist — there is no separate reference/ doc to load.
Tools
| Tool | Use for |
|---|---|
microsoft_docs_search | Find documentation — concepts, guides, tutorials, configuration |
microsoft_docs_fetch | Get full page content when search excerpts aren’t enough (tutorials, configuration guides, deep dives, cut-off search excerpts) |
The MCP server is https://learn.microsoft.com/api/mcp — that endpoint is the upstream Microsoft’s docs site exposes; the skill does not bundle its own server.
When to use (verbatim from the skill)
- Understanding concepts — “How does Cosmos DB partitioning work?”
- Learning a service — “Azure Functions overview”, “Container Apps architecture”
- Finding tutorials — “quickstart”, “getting started”, “step-by-step”
- Configuration options — “App Service configuration settings”
- Limits & quotas — “Azure OpenAI rate limits”, “Service Bus quotas”
- Best practices — “Azure security best practices”
Query effectiveness
The skill is explicit that vague queries return shallow results:
# ❌ Too broad
"Azure Functions"
# ✅ Specific
"Azure Functions Python v2 programming model"
"Cosmos DB partition key design best practices"
"Container Apps scaling rules KEDA"
Add context that survives in docs:
- Version when relevant (
.NET 8,EF Core 8,Python v2) - Task intent (
quickstart,tutorial,overview,limits,best practices) - Platform for multi-platform docs (
Linux,Windows)
When to fetch full page vs rely on search excerpts
Fetch after search when:
- Tutorials — need complete step-by-step instructions
- Configuration guides — need all options listed
- Deep dives — user wants comprehensive coverage
- Search excerpt is cut off — full context needed
Otherwise stop at the search result — the excerpt is the answer.
Why use this (from the skill, not paraphrased marketing)
- Accuracy — live docs, not training data that may be outdated
- Completeness — tutorials have all steps, not fragments
- Authority — official Microsoft documentation
Install
microsoft-docs ships inside Microsoft’s plugin bundle (175 skills). The wizard picks the skill; the README documents the manual path.
# Wizard — interactive install, picks microsoft-docs from the Core catalog
npx skills add microsoft/skills
# Manual — clone the repo, copy the single skill folder
git clone https://github.com/microsoft/skills.git
cp -r microsoft/skills/.github/skills/microsoft-docs \
your-project/.github/skills/
# Multi-host: symlink so .claude/skills/ and .opencode/skills/ see it
ln -s ../.github/skills .claude/skills
ln -s ../.github/skills .opencode/skills
Targets GitHub Copilot CLI / VS Code Copilot out of the box. Claude Code and Cursor do not auto-discover .github/skills/ — symlink or copy into .claude/skills/ / .opencode/skills/ as your host expects.
After install, the host must expose the underlying tool. Two options:
# Option A — MCP server in your .vscode/mcp.json or equivalent
{
"microsoft-learn": {
"type": "http",
"url": "https://learn.microsoft.com/api/mcp"
}
}
# Option B — CLI fallback (no install needed, run via npx)
npx @microsoft/learn-cli search "azure functions timeout"
# or install globally
npm install -g @microsoft/learn-cli
mslearn search "azure functions timeout"
The CLI supports --section <heading> to extract a single section and --max-chars <number> to truncate — useful when fetching a long page where only one section matters.
What it explicitly is not
- Not a Microsoft documentation crawler. It routes through the existing Learn MCP server / CLI; it does not scrape learn.microsoft.com itself.
- Not a code-writing skill. It returns documentation excerpts, not generated code. Pair with
azure-ai-projects-py,azure-storage-blob-ts, etc. when the answer needs to ship. - Not a substitute for
context7.context7is a multi-vendor docs resolver indexed for LLMs;microsoft-docsis Microsoft-only and queries the live Learn MCP server. - Not self-contained. Without the Learn MCP server reachable (or
mslearninstalled) the skill has nothing to call. A sandboxed environment with no outbound HTTPS tolearn.microsoft.comreturns empty results. sandbox_testuntested — we read the package, we did not run a docs query in the sandbox. Perconfig/skill-safety.md, that verdict does not change until a human runs the eval-vs-prompt harness.
Gotchas
- The skill is a routing wrapper, not a knowledge base.
SKILL.mdis short on purpose — most of the value lives in the MCP server / CLI. If the underlying transport is misconfigured, the skill silently returns nothing. - Fork context is mandatory. The
SKILL.mdfrontmatter declarescontext: fork— the skill expects to run as a sub-agent with isolated context, not as an inline augmentation. If your host loads it in main context, behavior is undefined. - Vague queries are the common failure mode. “How does Azure work?” returns a marketing page; “Azure Functions Python v2 programming model cold start” returns the right doc. The skill’s query-craft rules are the actual deliverable.
- Version drift. Microsoft Learn pages are rewritten with version bumps. A query that worked for
.NET 7last quarter may now hit.NET 9docs. The skill does not pin versions — always include the version in the query. - The
mslearnCLI is the documented fallback, not a deprecated path. The README insidemicrosoft-docs/SKILL.mdexplicitly maps MCP tool calls to CLI commands:microsoft_docs_search(query)↔mslearn search "...",microsoft_docs_fetch(url)↔mslearn fetch "...". Use the CLI when the MCP transport is blocked by a corporate firewall. - The skill is in active development. The README says “Work in Progress — this repository is under active development.”
microsoft-docsis in the Core catalog (11 skills) but is not listed in the per-language test coverage summary — it is one of the Core skills without a dedicated acceptance-criteria file intests/scenarios/. Treat upstream edits as expected. - License is MIT for the repo. If upstream adds a per-skill LICENSE in a future commit, that file overrides the repo-wide MIT.
Related: Microsoft MCP Builder (the Microsoft-ecosystem MCP procedure that explicitly tells Phase 1 to “Reference official docs via microsoft-docs MCP”), Cloud Solution Architect (an Azure Architecture Center procedure that uses the same Learn MCP server for service-shape lookups), Microsoft Copilot SDK (a code-writing skill that benefits from the docs this skill retrieves — query before writing).
## compatibility
## embed this badge
