Model Context Protocol · Python

Build an MCP server and client in Python, in one project.

You already call the Claude API. In 2 to 3 hours you will ship a CLI chatbot with tools, resources, and prompts, and know which primitive to reach for on the next integration.

Most MCP intros give you one side of the protocol or none of the decisions. This gives you both sides and the decision framework, from a Python project you run locally on lesson two.

Taught by Edwin Ashdown. Founder of AIFirstPartner, 12 production AI systems shipped.

Full course, free. No subscription. All 4 modules included.

What You'll Be Able To Do

Course Structure

Module 1Free

What MCP actually is (and isn't)

Why GitHub, AWS, and Anthropic itself are shipping MCP servers, and why hand-rolling your next integration is the slow path.

3 lessons

Module 2Free

Build the server. Test it before you wire it up.

Turn two Python functions into MCP tools with one decorator, then prove they work in the Inspector before the chatbot sees them.

4 lessons

Module 3Free

Build the client. Watch the full round trip.

Wire the client to your server, add resources so your app controls context, and add prompts so users trigger tuned workflows by slash command.

5 lessons

Module 4Free

The decision framework

One question to pick between tools, resources, and prompts on every MCP integration after this one: who is in control, the model, the app, or the user?

2 lessons

About the Instructor

Edwin Ashdown founded AIFirstPartner and has shipped 12 production AI systems for clients in government, legal, and enterprise. He is fractional CTO at Speculo, a cyber risk software company, and manages cloud and data platform engineering for a large Australian government department supporting 20+ agencies across the portfolio.

He publishes his build process at 150days.aifirstpartner.com.

This course is the playbook he uses when onboarding a team onto MCP.

Frequently Asked Questions

Why this and not the free MCP docs?

The docs are excellent reference once you know what you are looking for. This course is the 2 to 3 hours where you build both sides of the protocol on a real project, so the reference makes sense when you go back to it. If you would rather spend a weekend stitching fragments together, the docs are free.

Who is this course NOT for?

If you have already shipped an MCP server to production, skip it. If you are brand new to Python or have never called the Claude API, start with a Claude API primer first. This course assumes both and gets straight to MCP.

What do I need to know before taking this course?

You should be comfortable with Python and have experience making API calls to Claude. Familiarity with async/await and decorators is helpful but not required. The course explains MCP-specific patterns as you encounter them.

What will I build during the course?

A CLI-based chatbot that implements both an MCP client and an MCP server. You will define tools (document read/edit), resources (document listing and fetching), and prompts (a /format command), then test everything with the MCP Inspector and the CLI.

How is MCP different from tool use?

Tool use is how Claude calls functions you define. MCP is about who defines those functions. With MCP, someone else (often the service provider) has already built and tested the tools, so you just connect to their MCP server instead of writing everything yourself.

How long does the course take?

Most developers complete the course in 2 to 3 hours, including hands-on exercises. The first module takes about 30 minutes.

Is this affiliated with Anthropic?

No. Introduction to MCP is independent. This course is not an Anthropic product and has not been reviewed or endorsed by them.