MCP uses JSON-RPC 2.0: what does it add beyond raw RPC?
MCP is built on JSON-RPC 2.0. Does that make it 'just RPC'? What does MCP add beyond raw JSON-RPC?
JSON-RPC is only the message envelope. MCP adds the semantics: three typed primitives, a capability-negotiation lifecycle, a consent model, named methods, and a shared ecosystem.
JSON-RPC is like the postal system. It tells you how to put a letter in an envelope, address it, and get a reply back. But it says nothing about what you write inside or what the words mean. Two people could both use the post and still fail to understand each other if one writes in French and the other in Japanese. MCP is the agreed language and etiquette inside those envelopes. It says: first introduce yourself and list what you can do, here is how you ask for a tool versus a file, and here is when to check with the human before acting. Because everyone agrees on that shared language, any writer can talk to any reader without a private dictionary per pair.
Detailed answer & concept explanation~8 min readEverything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example.
Everything important, quickly.
4 min: separate the JSON-RPC envelope from MCP's contract, then enumerate lifecycle, primitives, namespaces, consent, and ecosystem with one concrete host example.
| Concern | Raw JSON-RPC 2.0 | MCP on top |
|---|---|---|
| What it defines | Message framing only | Application-layer semantics |
| Discovery | None; you invent it | initialize handshake plus capability negotiation |
| Method names | Arbitrary, per app | Fixed: tools/list, tools/call, resources/read |
| Primitives | None | Tools, resources, prompts |
| Consent model | None | Host-mediated per-call approval |
| Interop | Per-pair custom glue | One server runs in any host |
Real products, models, and research that use this idea.
- Claude Code spawns each configured MCP server, runs the initialize handshake, then calls tools/list to build its catalog before the first user turn.
- Anthropic's reference servers for filesystem, GitHub, Postgres, and Slack all speak the same tools/call and resources/read methods, so any host reuses them unchanged.
- Cursor and Zed adopted MCP in 2025, so a server written for Claude Code drops into both without rewriting the RPC layer.
What an interviewer would ask next. Try answering before peeking at the approach.
QWalk me through what happens during the MCP initialize handshake, field by field.
QWhy standardize a method namespace instead of letting each server name methods freely?
Don't say thisRed flags and common mistakes that signal junior thinking. Click to expand.
Red flags and common mistakes that signal junior thinking. Click to expand.
Saying MCP is just JSON-RPC with a logo. JSON-RPC frames messages; MCP defines what the messages mean, which is the whole point.
The night-before-the-interview bullets. Scan these on the way to the call.
Primary sources. Skim if you want the original framing.
Same topic, related formats. Practice these next.