Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

learn-mcp — Claude Code skill: what it does, how to install

An interactive tutor for the Model Context Protocol. Use it to study MCP clients, servers, transports, security, and conformance step by step.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add rohitg00/ai-engineering-from-scratch --skill learn-mcp -a claude-code
Open on GitHub

What learn-mcp does

The skill guides one Model Context Protocol lesson per invocation. The learner inspects a request and response, predicts a boundary result, runs or hand-traces the lab, and records the checkpoint in MCP-LEARNING.md.

The route covers MCP clients and servers, transports, gateways, registries, authorization, security, and conformance checks. It resumes at the first row marked In progress or Next, preserving notes and evidence. Lesson order comes from learning-paths/model-context-protocol.json; the first invocation starts Lesson 06.

Executable mode checks for local lesson files, a working python3, and write access to MCP-LEARNING.md. That means Python 3 and writable progress storage should be checked first. When the runtime is unavailable, the skill uses a conceptual trace and keeps the command checkpoint pending.

What it helps with

  • learn MCP message exchange step by step
  • inspect a client or server request and response
  • record learning progress in MCP-LEARNING.md
  • check MCP transport, authorization, and security
  • run a lesson lab with executable evidence

Example prompts for the agent

  • Start `learn-mcp` and begin the Model Context Protocol route.
  • Resume `learn-mcp` from the first `Next` row in `MCP-LEARNING.md`.
  • Hand-trace an MCP request and record the conceptual result in `MCP-LEARNING.md`.

How to install learn-mcp

1Skills CLI (Vercel)

npx skills add rohitg00/ai-engineering-from-scratch --skill learn-mcp -a claude-code

2Manually: put the files in place

~/.claude/skills/learn-mcp/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/learn-mcp/

From the same set6

The whole set →

Similar

google-mobile-ads-interstitial official google Guides Google Mobile Ads interstitial setup in Android, iOS, and Unity apps. Use it when you need full-page ads between app content. Claude Code Gemini CLI CX Codex 5,816installs google-mobile-ads-rewarded official google This skill guides Google Mobile Ads rewarded ad setup for Android, iOS, and Unity. Use it when users opt in to watch an ad for an in-app reward. Claude Code Gemini CLI CX Codex 5,814installs frontend-design nexu-io Skill for building frontend interfaces with considered typography, color and layout — from landing pages to dashboards. Claude Code CX Codex Cursor +1 4,800installs msstore-cli official github Manages Windows app publishing in Microsoft Store through msstore and Partner Center. Use it for submissions, release status checks, and CI/CD publishing. GitHub Copilot 7,000installs expo-module expo Complete reference for building native modules and view components in Swift, Kotlin, and TypeScript for Expo apps. Use when writing a new module or adding native functionality—camera, sensors, system APIs. Claude Code CX Codex Cursor +1 44,900installs asd-ste100 danyuchn Rewrites tool descriptions, system prompts, and agent instructions under ASD-STE100 rules. It eliminates ambiguity before downstream models parse the text. Claude Code CX Codex Cursor +1 7,300installs find-skills vercel-labs Discovers and installs agent skills from skills.sh directly inside your coding assistant. Handy when you need domain-specific workflows for a project. Claude Code CX Codex Cursor +1 4,000,000installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. Claude Code Claude.ai 1,025,790installs

Questions about learn-mcp

How do I install learn-mcp in Claude Code?

Run npx skills add rohitg00/ai-engineering-from-scratch --skill learn-mcp -a claude-code, run the same command again, then check ~/.claude/skills/learn-mcp/SKILL.md.

What does learn-mcp do?

It teaches the Model Context Protocol one lesson at a time. The skill tracks progress and execution evidence in MCP-LEARNING.md.

What does learn-mcp need for executable mode?

It checks for lesson files, a successful python3 --version, and permission to write MCP-LEARNING.md. When those checks pass, it records the command, working directory, exit code, and observed result.

Source text

SKILL.md · MIT
---
name: learn-mcp
description: >
  Focused interactive tutor for the Model Context Protocol (MCP) path in AI Engineering
  from Scratch. Start or resume this route when a learner wants to build,
  secure, debug, verify, or operate MCP clients, servers, transports, gateways,
  registries, or conformance gates. Teaches one lesson per invocation and
  records wire evidence in MCP-LEARNING.md.
---

# Learn Model Context Protocol (MCP)

Teach the focused Model Context Protocol (MCP) route. One invocation covers one lesson.
The learner should inspect a request and response, predict a boundary result,
run or hand-trace the lab, and record the lesson checkpoint before advancing.

## Use the invocation syntax of the host

The portable skill name is `learn-mcp`. Do not present one host's
syntax as a protocol rule.

| Host | Start or resume |
|---|---|
| Codex | `learn-mcp`, or choose it from `/skills` |
| Claude Code | `/learn-mcp` |
| Other compatible hosts | `Use learn-mcp to start or resume the Model Context Protocol (MCP) path.` |

## Read the route before selecting a lesson

The source of truth is `learning-paths/model-context-protocol.json`. Prefer local
files when this repository is available. Otherwise fetch a needed file from:

```text
https://raw.githubusercontent.com/rohitg00/ai-engineering-from-scratch/main/<path>
```

Follow the manifest's `lessons` array by `order`. The required sequence is 06,
07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 18, 17, 28, 29, 30, 31. Numeric next
navigation is not the route after Lesson 16.

For the selected lesson, read `docs/en.md` and `quiz.json` fully. Read or run
`code/` and `outputs/` only when the current teaching step needs them. Use the
lesson's stated protocol era. Never merge a legacy handshake rule into a
modern stateless trace.

Lesson 23 is the only optional capstone. Offer it only after all required rows
are complete and both manifest `prerequisitePaths`, Lessons 19 and 20, are
complete. Do not silently add another lesson to this path.

## Establish the evidence mode

Before the first executable checkpoint, determine whether:

1. The lesson files are available locally.
2. `python3 --version` succeeds.
3. The learner can write `MCP-LEARNING.md` in the current working
   directory.
4. A TypeScript runner is available if the learner chooses the optional second
   implementation in Lesson 07.

When local files and Python 3 are available, use executable mode. Record the
absolute working directory, exact command, exit code, request id and method,
selected protocol era, and observed result or error. Redact tokens, secrets,
cookies, authorization headers, and sensitive parameter values.

When the repository or runtime is unavailable, continue in conceptual mode.
Read the lesson, hand-trace a small request and response, and label the evidence
`Conceptual`. Leave runtime, transport, authorization, and deployment checks
`Pending`. Do not describe a hand trace as an executed pass.

If executable files are needed but absent, offer to clone the repository into
a directory the learner chooses. Wait for confirmation before cloning. The
conceptual lesson must remain available without a clone.

## Locate or create progress

Use `MCP-LEARNING.md` in the current working directory. Do not put
this route in `LEARNING.md` and do not modify Agent Skills progress.

Before deciding that no state exists, handle the former filename safely:

1. If `MCP-LEARNING.md` exists, use it. If
   `MCP-ENGINEERING-LEARNING.md` also exists, do not overwrite either file;
   report the collision and ask which file should own the next update.
2. If `MCP-LEARNING.md` is absent and `MCP-ENGINEERING-LEARNING.md` exists,
   rename the legacy file to `MCP-LEARNING.md` in the same directory before
   teaching. Preserve every learner note and evidence row byte for byte. If
   an atomic rename is unavailable, copy the file, verify the new file
   matches, and only then remove the legacy file.
3. Create a new state file only when neither filename exists. Never replace
   legacy progress with the blank template below.

If the file exists, preserve all learner notes and evidence. Resume the first
row marked `In progress` or `Next`. If all required rows are `Done`, check the
optional capstone prerequisites and report the exact missing path instead of
restarting the route.

If the file does not exist, create it without a placement quiz:

```markdown
# My Model Context Protocol (MCP) Path
<!-- Managed by the learn-mcp tutor.
     Source: learning-paths/model-context-protocol.json -->

## Route
- Started: <YYYY-MM-DD>
- Required time: about 23 hours 15 minutes
- Current: 1 of 17
- Evidence mode: Executable or Conceptual

## Environment
- Repository files: Available or Pending
- Python 3: Confirmed or Pending
- TypeScript runner for Lesson 07: Optional, Confirmed, or Pending
- Working directory: <absolute path>

## Public deployment gate
- Lesson 15 executable checkpoint: Pending
- Threat model reviewed: Pending
- External target and authority confirmed: Pending

## Progress
| Order | Lesson | Status | Evidence | Completed |
|---:|---|---|---|---|
| 1 | 13/06 MCP fundamentals | Next | | |
| 2 | 13/07 MCP server | Locked | | |
| 3 | 13/08 MCP client | Locked | | |
| 4 | 13/09 MCP transports | Locked | | |
| 5 | 13/10 Resources and prompts | Locked | | |
| 6 | 13/11 Model input and MRTR | Locked | | |
| 7 | 13/12 Explicit scope and elicitation | Locked | | |
| 8 | 13/13 Durable tasks | Locked | | |
| 9 | 13/14 MCP Apps | Locked | | |
| 10 | 13/15 MCP security | Locked | | |
| 11 | 13/16 MCP authorization | Locked | | |
| 12 | 13/18 Production auth | Locked | | |
| 13 | 13/17 Gateways and registries | Locked | | |
| 14 | 13/28 Tool contracts and content | Locked | | |
| 15 | 13/29 Reliability and flow control | Locked | | |
| 16 | 13/30 Registry supply chain | Locked | | |
| 17 | 13/31 Conformance engineering | Locked | | |

## Wire evidence
| Date | Lesson | Mode | Request or scenario | Observed result | Command, cwd, exit |
|---|---|---|---|---|---|

## Notes
```

Check facts that can be observed locally. Ask only for choices or authority
that cannot be inferred safely.

## Start Lesson 06 in ten minutes

On the first invocation, begin the lesson immediately. From the repository
root, run:

```bash
python3 phases/13-tools-and-protocols/06-mcp-fundamentals/code/main.py
```

Ask the learner to identify the repeated protocol version and client
capabilities, the complete `server/discover` result, error `-32022`, and the
absence of protocol-session creation or teardown. Record those observations
before expanding into the rest of Lesson 06.

If the command cannot run, show one modern request and response from the
lesson, ask the learner to label every envelope field, and record the result as
conceptual evidence. Keep the command checkpoint pending.

## Enforce the public deployment gate

Before any non-loopback bind, shared ingress, hosted endpoint, registry
publication, or other public deployment, read `publicDeploymentGate` from the
manifest. Require the executable Lesson 15 checkpoint, review the target and
requested authority, and obtain the learner's explicit confirmation for the
external action.

If any required evidence is missing, teach or rerun Lesson 15 and keep the
deployment action pending. A skill invocation does not grant network,
credential, publishing, or deployment authority.

## Teach one lesson

1. Mark the selected row `In progress`. State its manifest path, duration,
   group, protocol era, and evidence mode.
2. Frame one production failure that this lesson prevents. Ask the learner to
   predict the status, JSON-RPC result, or state transition before explaining
   it.
3. Draw one request boundary: producer, transport, consumer, and the exact
   fields each side validates. Keep protocol state, durable application state,
   transport state, authorization state, and UI state distinct.
4. Work through Build It and Use It in small sections. For code, explain one
   invariant, ask for a prediction, then run or trace the smallest case that
   can falsify it.
5. Exercise one success and at least one relevant failure. Prefer exact wire
   evidence: request id, method, protocol era, headers when applicable, body,
   status or error code, result type, and terminal state. Keep secret values
   redacted.
6. Require every item in the lesson's manifest `checkpointEvidence`. Runtime
   evidence must come from observed output. Conceptual evidence must name the
   unexecuted command and remaining uncertainty.
7. Ask every `post` quiz item one at a time. If the quiz has no staged items,
   ask all items. Do not reveal `correct`, an answer index, or an explanation
   before the learner responds. Never put a real answer letter or the answer
   distribution in a reply hint; use `Reply with one letter: <A|B|C|D>.`
8. Mark the row `Done` only after the lesson checkpoint and quiz. Append one
   compact Wire evidence row, add the score to Notes, set the next row to
   `Next`, and update `Current`.

Do not use passing unit tests as a substitute for the named protocol evidence.
Do not infer HTTP behavior from an in-process function, authorization from
authentication, cancellation from a timeout, or conformance from one SDK.

## Close

End with the quiz score, the exact checkpoint evidence recorded, any pending
runtime or security evidence, and the next manifest lesson. Keep the learner
on this route unless they ask to leave it.

© rohitg00 · MIT · rohitg00/ai-engineering-from-scratch

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor