workshop.institute
13 lessons · 3 phases

Build a Real MCP Server

Thirteen lessons. End up with a production-shaped MCP server you understand top to bottom.

One install command.
Jump to install Signed in as your account.

What you'll build

curriculum

13 lessons across 3 phases.

phase A · stdio basics 6 lessons
  1. 01
    Setup lesson_setup

    Get the workspace running. The first verify script you'll see — and pass.

  2. 02
    Tracks lesson_tracks

    Define an MCP tool with a typed schema. Watch your agent call it.

  3. 03
    Schemas lesson_schemas

    Tighten input validation with Zod. Why your agent's inputs matter more than you think.

  4. 04
    Resources lesson_resources

    Resources are how a server hands the agent files it can read. Implement one.

  5. 05
    Prompts lesson_prompts

    Server-side prompt templates. The least-used MCP primitive — and the most powerful.

  6. 06
    Testing lesson_testing

    Unit-test tool handlers without spinning up a real client. The shared test-client helper.

phase B · auth + HTTP 4 lessons
  1. 07
    API keys lesson_api-keys

    The simplest auth that ships. Hash, store, rotate.

  2. 08
    OAuth lesson_oauth

    Why MCP needs OAuth, why password is wrong, and how the dance actually works.

  3. 09
    HTTP transport lesson_http

    Move the server off stdio. Same handlers, new wiring.

  4. 10
    PKCE lesson_pkce

    Public clients, code verifiers, and the bit OAuth got right in the second draft.

phase C · AWS deploy 3 lessons
  1. 11
    AWS deploy I lesson_aws-deploy

    Get your server live behind a real URL. Lambda + API Gateway via CDK.

  2. 12
    AWS deploy II lesson_aws-data

    DynamoDB for sessions and per-user state. Single-table for now; lessons learned later.

  3. 13
    Shipping it lesson_shipping

    Wire it all together. A real agent talking to a real server you deployed.

prerequisites

What you need before you start.

Comfort with TypeScript
You don't need to be fluent. You should be able to read a function signature without running away.
Node.js 20+
The repo is a pnpm-workspace monorepo. If you're set up for one Node project, you're set up for this.
An AWS account (Phase C only)
Free-tier is fine. You only need it for lessons 11–13. The first ten lessons run entirely locally.
A coding agent that supports MCP
Claude Code is what we test against. Cursor and Codex also work.
install

Two lines to start.

Run the first in your shell. Run the second from inside Claude Code, in plain English.

First time here? You'll need the lwc CLI and the Claude Code plugin installed once before the two lines below will work. Full walkthrough →

~/lwc claude
> set up the mcp workshop

Sign in or get started

Enter your email — we'll send you a 6-digit code. New here? An account is created automatically.