Step 3
Step 3 — MCP — concepts and clients
30 min
Step 3 — MCP — concepts and clients
MCP (Model Context Protocol) is the standard that connects AI assistants with external systems. Anthropic open-sourced it in 2024, and it became the de-facto standard fast.
Why
Before MCP:
- Each tool needed bespoke plugins (Cursor and Claude Code didn't share)
- Adding a tool = a lot of code
After MCP:
- One server works everywhere (Claude Code, Cursor, Zed, Cline…)
- Three primitives: Tools, Resources, Prompts
The three primitives
| Primitive | What | Example |
|---|---|---|
| Tools | callable functions | slack_send_message, github_create_pr |
| Resources | readable data | files, DB rows, API responses |
| Prompts | predefined commands | "review this code" |
A minimal server (Python)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("My First MCP")
@mcp.tool()
def add(a: int, b: int) -> int:
"""add two integers"""
return a + b
@mcp.resource("config://app/version")
def get_version() -> str:
return "1.0.0"
if __name__ == "__main__":
mcp.run()
Tools (add) + Resources (config://app/version) in one file.
Wire into Claude Code
claude mcp add my-server -- python my-mcp-server.py
Now claude can call add(3, 5).
Public servers worth knowing
| Server | Use |
|---|---|
@modelcontextprotocol/server-filesystem |
local files |
@modelcontextprotocol/server-github |
GitHub PRs / issues |
@modelcontextprotocol/server-slack |
Slack |
@upstash/context7-mcp |
live docs |
@executeautomation/playwright-mcp-server |
browser automation |
claude mcp list shows registered servers.
Try it
Save the snippet, register, then ask "add 5 and 7" inside claude.
Going deeper
Next
Step 4 — Skills, Subagents, Hooks.