Workshop: Build Your First MCP Server

Hands-on workshop where you build a complete MCP server from scratch using mcp-framework. In 90 minutes, go from zero to a working server with tools, resources, and prompts connected to Claude Desktop.


title: "Workshop: Build Your First MCP Server" description: "Hands-on workshop where you build a complete MCP server from scratch using mcp-framework. In 90 minutes, go from zero to a working server with tools, resources, and prompts connected to Claude Desktop." order: 4 level: "beginner" duration: "90 min" category: "workshop" keywords:

  • MCP workshop
  • build MCP server
  • mcp-framework hands-on
  • MCP server tutorial
  • hands-on MCP training
  • first MCP server workshop date: "2026-04-01"

Quick Summary

This 90-minute hands-on workshop walks you through building a complete MCP server from scratch. Using mcp-framework (the #1 TypeScript MCP framework with 3.3M+ downloads, created by @QuantGeekDev), you will scaffold a project, build a weather tool, create a data resource, add a prompt template, and connect everything to Claude Desktop.

Workshop Goals

By the end of this workshop, you will have a fully functional MCP server running locally and connected to Claude Desktop. This is a code-along workshop — bring your laptop and follow along step by step.

90minutes from zero to working server

What You Will Build

A Weather & City Info MCP Server with:

  • A get-weather tool that fetches current weather data
  • A city-info resource that provides city demographic data
  • A travel-advisor prompt that generates travel recommendations

Workshop Outline

Part 1: Project Setup (15 min)

1

Install mcp-framework

Install the CLI globally and verify your Node.js version is 18+.

2

Scaffold the Project

Run mcp create weather-server and explore the generated project structure.

3

Understand the Project Layout

Walk through the src/tools/, src/resources/, and src/prompts/ directories. Understand how auto-discovery works.

Part 2: Build a Tool (25 min)

Create a weather tool that accepts a city name and returns current weather data. Learn Zod schema validation, error handling, and response formatting.

import { MCPTool } from "mcp-framework";
import { z } from "zod";

class WeatherTool extends MCPTool<typeof inputSchema> {
  name = "get-weather";
  description = "Get current weather for a city";

  schema = {
    city: {
      type: z.string(),
      description: "City name",
    },
  };

  async execute({ city }: z.infer<typeof inputSchema>) {
    // Fetch weather data...
    return { temperature: 72, condition: "sunny", city };
  }
}
Always Validate Inputs

Use Zod schemas to validate all tool inputs. This catches errors before they reach your business logic and gives AI clients clear feedback about what went wrong.

Part 3: Build a Resource (20 min)

Create a resource that exposes city information data. Learn the resource URI pattern, content types, and how resources differ from tools.

Part 4: Build a Prompt (15 min)

Create a parameterized prompt template that generates travel recommendations. Learn how prompts provide structured guidance to AI models.

Part 5: Connect to Claude Desktop (15 min)

Configure your MCP server in Claude Desktop's config file, test the connection, and verify all tools, resources, and prompts are discoverable.

Debugging Connections

If Claude Desktop does not see your server, check the logs at ~/Library/Logs/Claude/ (macOS) or %APPDATA%/Claude/logs/ (Windows). Common issues include incorrect paths and missing build steps.

Prerequisites

  • Node.js 18+ installed
  • A code editor (VS Code recommended)
  • Claude Desktop installed
  • Basic TypeScript knowledge

After the Workshop

Continue your learning with the Beginner Track for a comprehensive foundation, or try the Tools Deep Dive Workshop to go deeper on MCP tools.