Free course

Build with MCP

Build, inspect, secure, and deploy a useful MCP server with TypeScript.

4 modules · 26 lessons · No signup

Prerequisites: MCP, TypeScript, Node.js and HTTP

~~~

Your progress

of lessons completed.

Course completed.

What you'll learn

Build a project-notes MCP server with two tools, one resource, one prompt, local Inspector tests, a remote endpoint, and a practical security review.

Take this course offline

Subscribe to my newsletter to get every free book and course in PDF and EPUB format.

Get the downloads

Course contents

  1. Build a local TypeScript server

    Create a typed stdio server with useful tools, errors, and logs.

    1. Set up the TypeScript project
    2. Create the notes data
    3. Create the server factory
    4. Add the search_notes tool
    5. Add the get_note tool
    6. Keep errors useful
    7. Log without breaking stdio
    8. Serve and inspect the local server
    9. Check your understanding: build a stdio server
  2. Add resources and prompts

    Expose readable context and reusable prompt workflows deliberately.

    1. Add a notes resource
    2. Add a project review prompt
    3. Design useful capability boundaries
    4. Check your understanding: resources and prompts
  3. Move to remote HTTP safely

    Use the stateless protocol, authorization, and defensive boundaries.

    1. Turn the factory into an HTTP handler
    2. Understand stateless MCP
    3. Authenticate and authorize requests
    4. Protect secrets and limit access
    5. Treat returned text as untrusted
    6. Write a threat checklist
    7. Check your understanding: remote HTTP and security
  4. Deploy and review

    Deploy the server, document both transports, and complete a security review.

    1. Deploy to a web-standard runtime
    2. Document local and remote setup
    3. Run the final test matrix
    4. Review the security boundary
    5. Complete the project-notes server
    6. Final check: deploy and review