ЁЯПл The SchoolтА║ЁЯза AIтА║ЁЯФМ рдзрдбрд╛ 13 (рдмреЛрдирд╕) тАФ MCP: AI tools рд╕рд╛рдареА universal plug
ЁЯЦ╝я╕П See the drawing + lab ЁЯПа Course home ЁЯМ┐ Branch on GitHub тЬПя╕П View source
ЁЯЦ╝я╕П рдЖрдХреГрддреА рдЖрдгрд┐ labThe drawing + lab рдкреВрд░реНрдг рдкрд╛рдирд╛рд╡рд░ рдЙрдШрдбрд╛ тЖЧOpen full page тЖЧ

ЁЯФМ рдзрдбрд╛ 13 (рдмреЛрдирд╕) тАФ MCP: AI tools рд╕рд╛рдареА universal plug

ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: рдмреЛрдирд╕ рдзрдбрд╛ 13 ┬╖ рдорд╛рдЧреЗ: lesson-12-diffusion


ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ

рд╕рдЧрд│реЗ 12 рдореБрдЦреНрдп рдзрдбреЗ, рдЖрдгрд┐ agents рдмрд╛рдВрдзрдгрд╛рд▒реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рдЖрдард╡рдбрд╛рднрд░рд╛рдд рднреЗрдЯрдгрд╛рд░рд╛ рдмреЛрдирд╕: MCP тАФ Model Context Protocol тАФ рдзрдбрд╛ 11 рдЪреА tools plug-and-play рднрд╛рдЧ рдмрдирд╡рдгрд╛рд░реЗ standard.

ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ

рд╢рд╛рд│реЗрдЪреНрдпрд╛ рд╡рд┐рдЬреНрдЮрд╛рди рдкреНрд░рдпреЛрдЧрд╢рд╛рд│реЗрд▓рд╛ рдПрдХ рдЕрдбрдЪрдг рдЖрд╣реЗ. ЁЯФм рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг тАФ рд╕реВрдХреНрд╖реНрдорджрд░реНрд╢рдХ, рддрд░рд╛рдЬреВ, рдерд░реНрдорд╛рдореАрдЯрд░ тАФ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд┐рдЪрд┐рддреНрд░ cable рд╕рд╣ рдпреЗрддреЗ, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧрд╛рдд рд╡реЗрдЧрд╡реЗрдЧрд│реЗ sockets рдЖрд╣реЗрдд. Room 3 рдордзреНрдпреЗ рд╕реВрдХреНрд╖реНрдорджрд░реНрд╢рдХ рд╣рд╡рд╛ рдЖрд╣реЗ? рдХреЛрдгреАрддрд░реА рд╣рд╛рддрд╛рдиреЗ Room-3-рд╕реВрдХреНрд╖реНрдорджрд░реНрд╢рдХ adapter рдмрдирд╡рддреЛ. рдирд╡рд╛ рддрд░рд╛рдЬреВ? рдкрд╛рдЪ рдЦреЛрд▓реНрдпрд╛ = рдкрд╛рдЪ рдирд╡реЗ adapters. N рдЦреЛрд▓реНрдпрд╛ рдЖрдгрд┐ M рдЙрдкрдХрд░рдгреЗ рдЕрд╕рддреАрд▓ рддрд░ N├ЧM adapters рд▓рд╛рдЧрддрд╛рдд тАФ рд╢рд┐рдкрд╛рдпрд╛рдЪрд╛ рдбреНрд░реЙрд╡рд░ рдПрдХреЗрдХ-рд╡реЗрд│рдЪреНрдпрд╛ cables рдЪреЗ рджреБрдГрд╕реНрд╡рдкреНрди рдмрдирддреЛ. ЁЯНЭ

рдордЧ рд╢рд╛рд│рд╛ рдПрдХрдЪ standard рднрд┐рдВрддреАрддрд▓рд╛ socket ЁЯФМ рд╕реНрд╡реАрдХрд╛рд░рддреЗ. рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг standard plug рд╕рд╣ рдпреЗрддреЗ; рдкреНрд░рддреНрдпреЗрдХ рдЦреЛрд▓реАрдд standard socket рдЕрд╕рддреЛ. рдХреЛрдгрддреЗрд╣реА рдЙрдкрдХрд░рдг, рдХреЛрдгрддреАрд╣реА рдЦреЛрд▓реА, рд╢реВрдиреНрдп рдЦрд╛рд╕ adapters: N├ЧM рдРрд╡рдЬреА N+M.

рд╣реЗрдЪ MCP, AI рд╕рд╛рдареА:

рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг plug рдХреЗрд▓реНрдпрд╛рд╡рд░ рддреЗ рдХрд╛рдп рджреЗрддреЗ рддреЗ рдЬрд╛рд╣реАрд░ рдХрд░рддреЗ тАФ manual рдирдХреЛ: "рдирдорд╕реНрдХрд╛рд░! рдореА рд╣реА tools (рддреБрдореНрд╣реА рдХрд░реВ рд╢рдХрддрд╛ рдЕрд╢рд╛ рдЧреЛрд╖реНрдЯреА), рд╣реЗ resources (рддреБрдореНрд╣реА рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдЕрд╢рд╛ рдЧреЛрд╖реНрдЯреА), рд╣реЗ prompts (рдореА рд╕реБрдЪрд╡рд▓реЗрд▓реНрдпрд╛ рдХреГрддреА) рджреЗрддреЛ." model рдЖрдзреА рд╢реЛрдзрддреЛ, рдордЧ рд╡рд╛рдкрд░рддреЛ тАФ рдзрдбрд╛ 11 рдЪрд╛ loop, standard plugs рд╕рд╣.

ЁЯЧ║я╕П рдЖрдХреГрддреА

flowchart LR
    subgraph before["ЁЯНЭ before: N├ЧM custom adapters"]
        x1["every app ├Ч every tool<br/>= a hand-built integration"]
    end
    subgraph hosts["ЁЯПл hosts - the rooms"]
        h1["Claude Desktop ЁЯФМ"]
        h2["your IDE ЁЯФМ"]
        h3["your agent app ЁЯФМ"]
    end
    subgraph servers["ЁЯФм MCP servers - the instruments"]
        s1["ЁЯУБ filesystem<br/>tools ┬╖ resources ┬╖ prompts"]
        s2["ЁЯРЩ GitHub"]
        s3["ЁЯЧДя╕П your database"]
    end
    before -.->|"MCP standardizes<br/>the socket"| hosts
    h1 ---|"one protocol"| s1
    h2 --- s2
    h3 --- s3
    h1 --- s3

тЭУ рдХрд╛рдп (рддрдкрд╢реАрд▓)

тЖТ {"method":"initialize", "params":{"clientInfo":{"name":"my-agent"}}}
тЖТ {"method":"tools/list"}
тЖР {"result":{"tools":[{"name":"query_db",
     "description":"Run a read-only SQL query",
     "inputSchema":{"type":"object","properties":{"sql":{"type":"string"}}}}]}}
тЖТ {"method":"tools/call","params":{"name":"query_db","arguments":{"sql":"SELECT тАж"}}}
тЖР {"result":{"content":[{"type":"text","text":"23 rows: тАж"}]}}

рдЖрдзреА рд╢реЛрдзрд╛, рдордЧ рдмреЛрд▓рд╡рд╛ тАФ result desk рд╡рд░ рдпреЗрддреЛ рдЖрдгрд┐ рдзрдбрд╛ 11 рдЪрд╛ loop рдкреБрдвреЗ рдЪрд╛рд▓реВ рд░рд╛рд╣рддреЛ. рдПрд╡рдврд╛рдЪ рд╕рдЧрд│рд╛ рд╕реЛрд╣рд│рд╛.

ЁЯдФ рдХрд╛

рдзрдбрд╛ 11 рдирдВрддрд░ рдкреНрд░рддреНрдпреЗрдХ team рддреАрдЪ tools рдкреНрд░рддреНрдпреЗрдХ app рдордзреНрдпреЗ рд╣рд╛рддрд╛рдиреЗ рдЬреЛрдбрдд рд╣реЛрддреА тАФ N├ЧM adapters рдЪрд╛ рдбреНрд░реЙрд╡рд░. MCP рддреЛ рдПрдХрддреНрд░ рдХрд░рддреЛ: рддреБрдордЪрд╛ database server рдПрдХрджрд╛рдЪ рд▓рд┐рд╣рд╛, рдЖрдЬ Claude Desktop рдордзреВрди, рдЙрджреНрдпрд╛ рддреБрдордЪреНрдпрд╛ IDE рдордзреВрди, рдкреБрдврдЪреНрдпрд╛ рдЖрдард╡рдбреНрдпрд╛рдд рддреБрдордЪреНрдпрд╛ custom agent рдордзреВрди рд╡рд╛рдкрд░рд╛. рдореНрд╣рдгреВрдирдЪ "agent ecosystems" рдЕрдЪрд╛рдирдХ рдЪрд╛рд▓реВ рд▓рд╛рдЧрддрд╛рдд: рдХреНрд╖рдорддрд╛ рдЦрд╛рд╕рдЧреА рдЬреЛрдбрдгреАрдРрд╡рдЬреА рд╡рд╛рдЯреВрди рдШреЗрддрд╛ рдпреЗрдгрд╛рд░реЗ рднрд╛рдЧ рдмрдирд▓реНрдпрд╛. (рдЖрдгрд┐ рд╣рд╛ рд╕рд┐рдиреЗрдорд╛ рддреБрдореНрд╣реА рдкрд╛рд╣рд┐рд▓рд╛ рдЖрд╣реЗ: Kubernetes рдиреЗ containers рд╕рд╛рдареА рдЖрдгрд┐ Terraform рдиреЗ infrastructure рд╕рд╛рдареА рд╣реЗрдЪ standard plugs рдХреЗрд▓реЗ тАФ рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ interfaces рд╣реЗрдЪ ecosystems рдШрдбрдгреНрдпрд╛рдЪреЗ рдХрд╛рд░рдг рдЕрд╕рддрд╛рдд. ЁЯФМ)

ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛

рдХрд╛рдЧрджрд╛рд╡рд░рдЪрд╛ lab (5 рдорд┐рдирд┐рдЯреЗ): host рддреБрдореНрд╣реА рд╡реНрд╣рд╛. рд╡рд░рдЪреЗ JSON session рдШреНрдпрд╛ рдЖрдгрд┐ рддреБрдордЪреЗ calendar рдЧреБрдВрдбрд╛рд│рдгрд╛рд▒реНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рд╕рд╛рдареА tools/list response рд▓рд┐рд╣рд╛: рдХреЛрдгрддреА tools (рдирд╛рд╡реЗ + arguments)? рдХреЛрдгрддреЗ resources? рддреБрдореНрд╣реА рдХрд╢рд╛рд▓рд╛ read-only рдЖрдгрд┐ рдХрд╢рд╛рд▓рд╛ рдорд╛рдгрд╕рд╛рдЪреНрдпрд╛ рдордВрдЬреБрд░реАрдорд╛рдЧреЗ рдареЗрд╡рд╛рд▓? рдЕрднрд┐рдирдВрджрди тАФ рддреБрдореНрд╣реА рдЖрддреНрддрд╛рдЪ рдПрдХ MCP server design рдХреЗрд▓рд╛; SDK рдЖрд╡реГрддреНрддреА рдореНрд╣рдгрдЬреЗ рдмрд╣реБрддреЗрдХ рдлрдХреНрдд typing.

рдЦрд░рд╛ lab (15 рдорд┐рдирд┐рдЯреЗ, рдПрдХ config рдмрджрд▓): reference filesystem server рдХреЛрдгрддреНрдпрд╛рд╣реА MCP рдмреЛрд▓рдгрд╛рд▒реНрдпрд╛ app рдордзреНрдпреЗ рдЬреЛрдбрд╛ (рдЙрджрд╛. Claude Desktop тЖТ claude_desktop_config.json, рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛ IDE рдЪреА MCP settings), modelcontextprotocol.io рд╡рд░рдЪреНрдпрд╛ quickstart рдкреНрд░рдорд╛рдгреЗ тАФ рдордЧ assistant рд▓рд╛ рдПрдХрд╛ folder рдЪреА рдпрд╛рджреА рдХрд░рд╛рдпрд▓рд╛ рдЖрдгрд┐ рдПрдХрд╛ file рдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреНрдпрд╛рдпрд▓рд╛ рд╕рд╛рдВрдЧрд╛. рддреЗ рдХреЛрдгрддреА TOOLS рдмреЛрд▓рд╛рд╡рддреЗ рддреЗ рдкрд╛рд╣рд╛. рддреБрдореНрд╣реА рдЖрддреНрддрд╛ рд╡рд╛рдЪрд▓реЗрд▓рд╛ protocol рдкреНрд░рддреНрдпреЗрдХ step рдЦрд╛рд▓реА рдЪрд╛рд▓реВ рдЖрд╣реЗ.

ЁЯОУ рдЖрддрд╛ toolbox рдЦрд░реЛрдЦрд░ рдкреВрд░реНрдг рдЭрд╛рд▓рд╛

AI рдХрд╕реЗ рдЪрд╛рд▓рддреЗ рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдпрд╛рдЪреЗ рдмрд╛рд░рд╛ рдзрдбреЗ тАФ рдЖрдгрд┐ рддреЗ рдмрд╛рдХреА рд╕рдЧрд│реНрдпрд╛рд╢реА рдЬреЛрдбрдгрд╛рд░рд╛ plug. рдЬрд╛рджреВ рд╢реВрдиреНрдп, sockets рд╕рд╣. ЁЯФМЁЯОУ

git checkout main

ЁЯФМ Lesson 13 (bonus) тАФ MCP: the universal plug for AI tools

ЁЯУН You are here: Bonus lesson 13 ┬╖ Previous: lesson-12-diffusion


ЁЯУж What's in this branch

All 12 core lessons, plus the bonus everyone building agents meets within a week: MCP тАФ the Model Context Protocol тАФ the standard that turns lesson 11's tools into plug-and-play parts.

ЁЯзТ Explain like I'm 5

The school's science lab has a problem. ЁЯФм Every instrument тАФ microscope, scale, thermometer тАФ comes with its own weird cable, and every classroom has different sockets. Want the microscope in Room 3? Someone hand-builds a Room-3-microscope adapter. New scale? Five rooms = five new adapters. With N rooms and M instruments you need N├ЧM adapters тАФ the janitor's drawer is a nightmare of one-off cables. ЁЯНЭ

Then the school adopts one standard wall socket ЁЯФМ. Every instrument ships with the standard plug; every room has the standard socket. Any instrument, any room, zero custom adapters: N+M instead of N├ЧM.

That's MCP, for AI:

And each instrument announces what it offers when plugged in тАФ no manual: "Hello! I offer these tools (things you may do), these resources (things you may read), these prompts (recipes I suggest)." The model discovers, then uses тАФ lesson 11's loop, with standardized plugs.

ЁЯЧ║я╕П Diagram

flowchart LR
    subgraph before["ЁЯНЭ before: N├ЧM custom adapters"]
        x1["every app ├Ч every tool<br/>= a hand-built integration"]
    end
    subgraph hosts["ЁЯПл hosts - the rooms"]
        h1["Claude Desktop ЁЯФМ"]
        h2["your IDE ЁЯФМ"]
        h3["your agent app ЁЯФМ"]
    end
    subgraph servers["ЁЯФм MCP servers - the instruments"]
        s1["ЁЯУБ filesystem<br/>tools ┬╖ resources ┬╖ prompts"]
        s2["ЁЯРЩ GitHub"]
        s3["ЁЯЧДя╕П your database"]
    end
    before -.->|"MCP standardizes<br/>the socket"| hosts
    h1 ---|"one protocol"| s1
    h2 --- s2
    h3 --- s3
    h1 --- s3

тЭУ What (the details)

тЖТ {"method":"initialize", "params":{"clientInfo":{"name":"my-agent"}}}
тЖТ {"method":"tools/list"}
тЖР {"result":{"tools":[{"name":"query_db",
     "description":"Run a read-only SQL query",
     "inputSchema":{"type":"object","properties":{"sql":{"type":"string"}}}}]}}
тЖТ {"method":"tools/call","params":{"name":"query_db","arguments":{"sql":"SELECT тАж"}}}
тЖР {"result":{"content":[{"type":"text","text":"23 rows: тАж"}]}}

Discover, then call тАФ the result lands on the desk and lesson 11's loop continues. That's the whole ceremony.

ЁЯдФ Why

Lesson 11 left every team hand-wiring the same tools into every app тАФ the N├ЧM adapter drawer. MCP collapses it: write your database server ONCE, use it from Claude Desktop today, your IDE tomorrow, your custom agent next week. It's also why "agent ecosystems" suddenly work: capabilities became shareable parts instead of private wiring. (And you've seen this movie: standard plugs are what Kubernetes did for containers and Terraform did for infrastructure тАФ boring interfaces are how ecosystems happen. ЁЯФМ)

ЁЯзк Try it

Paper lab (5 min): you be the host. Take the JSON session above and write the tools/list response for an instrument wrapping your calendar: what tools (names + arguments)? what resources? what would you mark read-only vs gated-behind-a-human? Congratulations тАФ you just designed an MCP server; the SDK version is mostly typing.

Real lab (15 min, one config edit): add the reference filesystem server to any MCP-speaking app (e.g. Claude Desktop тЖТ claude_desktop_config.json, or your IDE's MCP settings) following the quickstart at modelcontextprotocol.io тАФ then ask the assistant to list a folder and summarize a file. Watch which TOOLS it calls. The protocol you just read is running under every step.

ЁЯОУ Now the toolbox is truly complete

Twelve lessons of how AI works and how to use it тАФ plus the plug that connects it to everything else. Zero magic left, sockets included. ЁЯФМЁЯОУ

git checkout main
тЖР PreviousdiffusionFinished! Take the quiz тЖТcheck what stuck

This page is the lesson's README from the lesson-13-mcp branch, shown here so the whole School stays on one site. Code files open on GitHub at the same branch.