Build Your Own MCP Server · 20 min · MCP Inspector · pyproject.toml · uv
Package and Share
If someone who wasn't in this course can't clone your repo and get your server running in 5 minutes, it isn't packaged yet -- it's just code on your machine.
Hiring signal: A server only you can run is a script. A server someone else can install from a README is a real, shareable tool -- and the MCP registry is exactly where builders are discovering each other's servers right now.
What you will learn
- Use the MCP Inspector to debug a server outside of Claude Desktop
- Write a README and pyproject.toml that let a stranger install and run the server
- Test a clean install to catch assumptions baked into your own environment
The Capstone Project
Your server works, on your machine, because you've been running it from inside this project folder with your own uv environment. Today's job is to check that claim: could a stranger clone this repo and get it running without asking you a single question?
The MCP Inspector: debugging without Claude Desktop in the loop
Up to now you've tested every change by restarting Claude Desktop and asking it a question — slow, and it conflates "is my tool broken" with "did Claude decide to call it." The MCP Inspector removes the model from that loop entirely.
mcp dev server.py
mcp dev (from the mcp[cli] extra you installed in Lesson 2) launches a web UI where you can call any tool directly with explicit arguments, see the raw response, and inspect your resources and prompts -- all without Claude Desktop, without wondering whether a bad result is your tool's fault or the model's tool-selection. This should have been your first move whenever something seemed broken in earlier lessons; it's the direct equivalent of testing a REST endpoint with curl instead of only through the UI that calls it.
Use the Inspector before you touch Claude Desktop again
Every "it doesn't work" moment from Lessons 2-5 could have been diagnosed faster in the Inspector: call the tool directly, see if IT returns the right thing. If yes, the problem was tool-selection/description (a Claude Desktop-side question). If no, the problem is your code (an Inspector-side question). This single habit collapses "is it my code or is it the model" into a 10-second check.
Unlock the full lesson
You've read the first 2 sections. The rest of this lesson covers Packaging: README, pyproject.toml, and one honest test, Ship it — plus a hands-on lab, quiz, and project artifact.
Create a free account to unlock Phase 0 and Phase 1 of every course — no credit card.
Browse all courses · View pricing · DeVenture Academy