1. What MCP is and why it is needed on top of API
“Listen, with this API everything is clear,” writes Tommy. “There is USGS, there is the address of the window, there is JSON. I’ll tell the AI: go to this address, fetch the latest tremors, give them to Sam in the radar. It will go, right?”
“It will,” Alex agrees. “AI can do that: hit an open address, fetch the response. You’re right, no magic there. The question is not ‘will it go or not,’ but how you are going to do it every day.”
“What do you mean, every day?”
“Think about it. Today you asked — it went, brought it back. Tomorrow you need fresh tremors — again you type to it by hand: ‘go to earthquake.usgs.gov/..., here is the format, here are the fields.’ The day after tomorrow you want to show the bitcoin rate — you start looking for an exchange address and again dictate to AI where the window is and what is in the response. For every service, you explain to the machine from scratch where to knock and how to parse the response. It is like drawing a courier a map by hand every time.”
“Well… tedious, yeah,” Tommy agrees. “Can it be simpler somehow?”
“It can — once you set up AI with a ready-made connection to the service, and after that you just say in plain words, ‘bring the tremors.’ The address, format, fields — everything is already inside the connection, AI does not need to be explained anything. That thing is called MCP.”
“MCP. What does it stand for?”
“Model Context Protocol. But do not memorize it; the expansion gives you nothing. In terms of meaning, it is a way to connect an external service to AI once, so later you can trigger it with words instead of explaining all the details every time. Connect such a ‘cable’ to earthquakes — AI gets a ready-made ‘bring tremors’ button. Connect it to GitHub — a ‘show tasks’ button. Connect it to a site parser — a ‘go to the site and fetch what is needed’ button.”
2. How MCP differs from API
“So it is like a smart API?” Tommy asks.
“I get why it seems that way — close, but not quite. And this difference is important not to blur. The API lives on the service side — it is its delivery window, and there is only one for everyone: whether a program knocks or you do it by hand. And MCP exists on the AI side and on the service side — it is what AI uses to reach that API. Behind the MCP connection and the ‘bring tremors’ command is the same ordinary geologists’ API. MCP does not replace it and does not ‘improve’ it — it simply connects it to AI in a standard way, so you do not have to dictate request formats to the machine by hand. Let me break down who is where:”
| What | Where it lives | Why |
|---|---|---|
| API | on the service side (USGS) | the window through which the office gives out data — to any program |
| MCP | on the AI side, on the service side | the cable AI uses to connect to the window on its own, without your explanations |
| you by hand | human | courier: ran there yourself, copied it, brought it back |
API is WHERE to knock. MCP is WHAT AI knocks with instead of you.
“So,” Tommy thinks out loud, “before, I was the courier: I went to the site myself, copied it, brought it to Sam. And with an MCP cable, AI becomes the courier?”
“Exactly. And you no longer draw the map for it every time — the MCP cable already knows it.”
3. MCP as a single standard — USB
Tommy nods, but then immediately frowns — something still does not add up.
“Hold on. If there is still a normal API behind the MCP connection, and AI already knows how to talk to APIs… why invent a separate MCP at all? What is wrong with just giving it the address?”
“Good question, right on target. Look. USGS has its own rules, GitHub has its own, the exchange has its own — each service has its own API and its own documentation for it. Without an MCP cable, it turns out that for every service, AI has to be configured from scratch for the whole communication process: where the address is, what the format is, what fields there are, whether a key is needed. And an MCP cable is when all of that is packaged once into a standard form that any AI can understand. The perfect example for this situation is USB.”
“USB? Like a flash drive?”
“Yeah. Look: a flash drive, a mouse, a camera, a printer — the devices are completely different, but they plug into the same connector, and the computer understands each one. Nobody solders a separate wire for the mouse (although that is exactly how it used to be done). USB is a common agreement about how all of this should connect. MCP is exactly the same kind of common connector, only for AI and services. The person building the service sets up an MCP connection to it once — and from then on, any AI can work with it under unified rules. You just plug it in — and AI gets a new ability.”
MCP is the “USB” for AI: a single connector into which different services plug in.
“And in Claude Code, where is that? Does it understand these MCP cables?”
“More than that: Claude Code can plug in such cables out of the box. Connecting MCP servers is a built-in feature. One MCP connector — one new connected service: the earthquakes server gives us ‘tremors,’ the site parser server gives us the ‘parse the site’ feature. Plugged in an MCP cable — the agent got one more ‘hand.’ Now I’ll show you with an example.”
flowchart LR Q["Earthquake
server"] --> M{{"MCP —
a single connector"}} G["GitHub
server"] --> M F["Site parser
Firecrawl"] --> M M --> AI["AI
Claude Code —
new hands"] AI --> B1["+ “bring tremors”"] AI --> B2["+ “show tasks”"] AI --> B3["+ “parse the site”"]
“Is plugging it in hard? Or like with a flash drive? Wrong side, then flip it, then flip it again. And finally, good :)”
“Kind of like that, yes.”
4. How to connect an MCP server in Claude Code
“Let’s intentionally take the simplest example,” Alex suggests, “without a key, so you can feel the essence itself and not drown in settings. Earthquakes are exposed publicly anyway. Open a regular terminal and type the command:”
# connect the open data MCP server. The name "quakes" can be anything; make it up yourself.
claude mcp add --transport http quakes <address-of-the-open-data-MCP-server>
“Can you go into details?”
“Coming right up. Look, claude mcp add means ‘Claude, add an mcp cable.’ --transport http — we communicate with it over the network, not as a local app. quakes is the name under which we will remember it; I made it up myself. Then comes the address of the mcp cable itself. Press Enter — the cable is added. Let’s check what was connected:”
claude mcp list
The list shows quakes with the status ✓ Connected. No status or an error — first thing you look at here: is the address correct, is the server alive. That is the super-skill of “fixing the mcp cable.” And then you launch Claude and type the command /mcp in the session:
/mcp # command inside the session: shows cables and their button-tools
“And it will have my quakes?”
“And it will have your quakes, and next to it — a list of its ‘actions/buttons.’ That is what AI can now invoke. And that is it, after that you just ask in plain words.”
flowchart LR A["claude mcp add
--transport http name address"] --> L{"claude mcp list —
✔ Connected?"} L -->|"yes"| S["Launch claude,
in the session /mcp —
cable in place"] --> W["Ask in plain words"] L -->|"no"| X["Check the address
and whether the server is alive"] --> L
Tommy cannot hold back — he tries it right now. He writes to the agent:
Fetch earthquakes from the last hour through quakes, take from each one
mag, coordinates, time, and build the radar: magnitude → dot size,
freshness → brightness, coordinates → where to place it.
His finger hangs over Enter. He presses it.
A second. A line of request runs across the screen. The radar, which until then had shown invented dots, blinks — and lights up the first real one. Somewhere on the other side of the planet, a few minutes ago the ground shook, and here it is — a dot on his screen.
“Is this for real?!” Tommy points at the monitor. “Did an earthquake just happen right now?”
“It just shook,” Alex answers. “The cable pulls in everything that shook over the last hour. And notice: you did not dictate to AI either the address or the JSON format. You said, ‘fetch through quakes’ — it went to the window itself, fetched the response itself, parsed the fields itself. The courier is no longer you.”
Tommy leans back and just stares for a couple of seconds.
“Listen, this is huge,” he exhales. And immediately gets excited: “So I can connect to anything like that? Say I want to download YouTube videos through AI — can I?”
“Slow down.” Alex snorts. “Plugging in a cable is not ‘giving AI the whole internet.’ Each cable opens exactly one service. The one for earthquakes gives earthquakes — and nothing else. Neither your bank, nor YouTube, nor someone else’s database will be opened by it. You need a different service — you connect a different cable, a separate one, for that.”
And he adds:
“And even inside one cable, AI can only do what it is allowed to do. If you gave it a read-only key, it cannot delete anything, no matter how hard it tries. This is not ‘opening the whole world,’ this is ‘opening one specific door.’”
5. A service with an access key
“OK, I’ll assume I got it.” Tommy nods. “But look here. The radar works, but it looks weak — kind of gray, very primitive. I want it to look expensive, beautiful, like Stripe, for example. Have you seen their site? Exactly in that same style. Can AI go crawl it and copy their style?”
“You will not believe it… Earthquakes had a ready-made window — an API. But a third-party site does not have a ‘give me your design’ window. Nobody made such an API. There is only one way to copy the style — go to the site itself and parse it. Get, live, what has no window.”
“And AI can do that?”
“On its own, not really, but we have a magic cable for that case. We take Firecrawl — a service that can read other people’s sites. It connects with an mcp cable, just like earthquakes, but with one small difference: Firecrawl asks for a key. Without it, you only get a trial: basic tools and a daily limit, shared with everyone else on your IP. If you want to work properly, you need a key. There it is, your first real token.”
“And where do I get it? Do I have to buy it?”
“You sign up at firecrawl.dev, get a key in the form of fc-.... There is a free tier, no card required, and it will be enough for a couple of requests with room to spare. Once you have it, you connect it. Just note: the cable address is the same for everyone, and the key travels separately, in a header — a little note attached to every request: ‘here is my pass.’ Don’t write the key into the address itself — Firecrawl explicitly asks you not to:”
claude mcp add --transport http firecrawl https://mcp.firecrawl.dev/v2/mcp --header "Authorization: Bearer fc-YOUR_KEY"
“Listen, but Claude can connect everything itself. As far as I know. Let me send it the key. I’ll copy it into the chat now.”
“Stop!” Alex cuts him off before the finger can press Enter. “Not in the chat.”
Tommy freezes, hands over the keyboard.
“Where then? You yourself said the key has to be added to the command.”
“Into the command — yes, into the cable header. But into the conversation with AI, you do not paste the key as ordinary text. And there is another trap — everybody falls for it. You see, by default the mcp cable is installed only for you and only in this folder. If you add the flag -s project when adding mcp — then the setup with your key will be written to the project file and will end up in the shared git repository, where everyone can see it. A key is a pass that you paid for.”
“So the key stays out of the chat and out of the repository.”
“Exactly. Remember three things that you do not paste into a conversation with AI as ordinary text: access keys, passwords, and other people’s personal data. Make it a rule and count the days you did not break it. Today is, let’s say, the first day without a leaked key. Do not reset the counter.”
Tommy checks what got connected:
claude mcp list # firecrawl → ✓ Connected
“Done. So what next?”
“Now you ask in plain words, just like with the tremors. Only this time — go to the site and copy the style:”
Through firecrawl, copy the style of stripe.com — colors, typography, structure —
and remake my radar in that spirit.
Tommy presses enter. The agent disappears for a couple of seconds — and comes back. The gray radar transforms: deep background, clean typography, soft gradients. It looks like Stripe, but not a copy — its own thing.
“Wow.” Tommy leans toward the screen. “It really crawled their site?”
“It crawled it and ripped off the style.” Alex grins. “Feel the difference? With earthquakes, AI had a ready-made window — it just took the data. But with Stripe there is no window — AI went to the real site itself and ripped off the design from there. Two hands, one essence: AI got new hands outward. With one, it grabs through a ready-made window; with the other, it reaches into places where there is no window.”
“In short,” Tommy sums up. “If there is a window on the service, the mcp cable brings the data. If there is no window, mcp goes to the site and gets it itself. And the key stays out of the chat and out of the repository.”
“Nice. Now we can get to work,” Alex answers.
GO TO FULL VERSION