Week 15 · Season 4 · Will
One plug, many tools
You can build an MCP server that any AI app can plug in: tools agents use well, stateless requests, sign-in with OAuth, and a pause to ask the person when it matters.
This week
- The Model Context Protocol: hosts, servers, tools
- Stateless and remote servers
- OAuth for tools: tokens, scopes, the door check
- Elicitation and MCP Apps
- Tools agents can actually use
How you learn
Before you use an SDK, write the heart of an MCP server by hand: read one JSON-RPC message, answer tools/list and tools/call, and tell a broken message from a tool that tripped.
What you build
FRIDAY gets its own MCP server over stdio with a few sharp tools for your calendar file and one folder of files, plugged into FRIDAY's loop and proved with host-style tests.
Stretch: Put the server online over Streamable HTTP with OAuth: a 401 that points to sign-in, token checks on every request, and no state kept between requests.
What you ship
Project 4: The morning briefing. Every morning FRIDAY gathers your calendar, tasks and notes and briefs you, by itself, within budget.
- TOOLS.md and a diagram: host, server, tools, data
- friday_mcp/server.py with host-style tests that pass in CI
Lessons
- One plug
After this deck you can explain the Model Context Protocol (MCP) in plain words: a host app holds the plugs, each server offers a short list of tools, and every request and answer is a small JSON message with a matching id. You can also tell a broken message from a tool error.
- Stateless and remote
After this deck you can explain why a remote MCP server keeps no memory between requests (it's stateless), keep state in a database behind a handle the tool returns, and say why a gateway reads the method and tool name from the outside of every request.
- Who's asking?
After this deck you can walk through the OAuth sign-in dance a remote MCP server uses (401, find the sign-in server, you approve in a browser, an access token comes back) and write the check a server runs on every request: right issuer, right server, not expired, enough scope.
- Ask the human, show the screen
After this deck you can explain elicitation (a server pausing to ask the person one clear question), handle the three answers (accept, decline, cancel), say how a stateless server pauses and retries, and when a small screen (an MCP App) beats words.
- Tools agents can actually use
After this deck you can redesign a tool for an agent: fewer, sharper tools with family names, descriptions written like a recipe, short answers with pagination, and errors that say how to fix the call.
- Go deeper: roads, gifts and guards
After this deck you can compare the two MCP transports (stdio and Streamable HTTP), say who controls tools, resources and prompts, and name the server-side rules that keep tool servers safe: no token passthrough, check every input, and keep a human in the loop.
Labs
Python in the browser, next to the lessons.
Weekend build
- FRIDAY, week 15: plugged into your calendar and files
One plug, two tools: FRIDAY reads your calendar and finds your files through its own MCP server.
Skills you prove
- MCP
- Build an MCP server that gives any AI app safe, documented tools
Free links for this week
Hand-picked official docs, papers and talks.
- MCP specification (2026-07-28) · docs
- MCP 2026-07-28 release notes · post
- MCP Python SDK · repo
- MCP spec: authorization · docs
- MCP spec: elicitation · docs
- MCP Apps extension · repo
- Anthropic: Writing effective tools for agents · post