MCP到底是什么?
模型上下文协议完整指南——从困惑的初学者到生产开发人员
______________________________________________________________________
我为什么写这个
因为 我希望这在我开始的时候就存在。
本系列中的每个博客都回答了我实际遇到的一个问题。每个代码示例都解决了我实际面临的问题。每个项目都是我实际构建的东西(坏了,修复了,又坏了)。
如果你在阅读这篇文章时对MCP一无所知,那么你正是我写这篇文章的目的。
______________________________________________________________________
🎯 你将学到什么
在本系列结束时,您将:
- ✅ 了解MCP是什么以及它为什么重要
- ✅ 构建公开工具、资源和提示的MCP服务器
- ✅ 了解客户批准的采样如何融入实际的MCP工作流程
- ✅ 构建可以使用任何MCP服务器的MCP客户端
- ✅ 部署生产就绪的MCP解决方案
- ✅ 完成 4个真实世界的项目 面临实际工程挑战
______________________________________________________________________
📚 系列
第一阶段:基础(博客1-4)
*从头开始理解MCP*
| # | 博客 | 你将学到什么 |
|---|---|---|
| 1 | MCP到底是什么? | MCP解决的问题,USB-C类比,为什么这很重要 |
| 2 | MCP架构深度学习 | 主机、客户端、服务器、工具、资源、提示、传输 |
| 3 | 您的第一台MCP服务器 | 搭建系统信息服务器,连接Claude Desktop |
| 4 | 构建自己的MCP客户端 | 构建CLI聊天机器人,了解工具执行循环 |
第二阶段:项目1——安全数据库分析师(博客5-6)
*面向人工智能的生产级PostgreSQL访问*
| # | 博客 | 你将学到什么 |
|---|---|---|
| 5 | 安全数据库分析师(第1部分) | 连接池、SQL安全层、模式自检 |
| 6 | 安全数据库分析师(第2部分) | 人在循环中写入、事务、审计日志 |
第三阶段:项目2——DevOps第一响应者(博客7-8)
*具有真实集群访问权限的Kubernetes调试代理*
| # | 博客 | 你将学到什么 |
|---|---|---|
| 7 | DevOps第一响应者(第一部分) | K8s客户端设置、pod诊断、日志分析 |
| 8 | DevOps第一响应者(第二部分) | 经批准后,安全重启、扩展、回滚 |
第四阶段:项目3——深度研究浏览器(博客9-11)
*具有服务器端LLM调用的Web研究代理*
| # | 博客 | 你将学到什么 |
|---|---|---|
| 9 | 深度研究浏览器(第一部分) | 使用Playwright进行无头浏览,内容提取 |
| 10 | 深度研究浏览器(下) | MCP采样——服务器向LLM寻求帮助 |
| 11 | 深度研究浏览器(第三部分) | 多页研究、PDF提取、引用 |
第五阶段:生产部署(博客12)
*将MCP服务器投入生产*
| # | 博客 | 你将学到什么 |
|---|---|---|
| 12 | 生产部署 | Docker、流式HTTP传输、身份验证、云部署 |
第六阶段:项目4——多客户端知识库(博客13)
*证明MCP在真实客户端之间的互操作性*
| # | 博客 | 你将学到什么 |
|---|---|---|
| 13 | 多客户端MCP | 一台服务器跨Claude Desktop、Cursor、VS Code和Python客户端 |
______________________________________________________________________
先决条件
- Python 3.10+ --我们使用现代Python功能
- Python基础知识 --函数、类、async/await
- 零MCP知识 --这才是重点
______________________________________________________________________
入门指南
# Clone the repo
git clone https://github.com/YOUR_USERNAME/what-the-hell-is-mcp.git
cd what-the-hell-is-mcp
# Start with Blog 1
cd blog-1
# Read blog.md and follow along!博客文件夹因阶段而异:
基金会博客通常包含:
blog-X/
├── blog.md # The full tutorial
└── assets/ # Diagrams and screenshots以项目为中心的博客通常会添加元数据和可运行代码:
blog-X/
├── README.md # Quick reference and metadata
├── blog.md # The full tutorial
├── code/ or project-folder/
└── assets/______________________________________________________________________
四个项目
1.安全数据库分析师
*“你的首席执行官想问一些关于公司数据的问题。但让人工智能访问原始数据库是可怕的。”*
允许Claude安全查询PostgreSQL的MCP服务器:
- 使用asyncpg的连接池
- SQL解析和验证(块DROP、DELETE等)
- 写操作的人在循环中
- 完整的审计追踪
2.DevOps第一响应者
*“现在是凌晨3点。您的K8s集群出现故障。您不会在半睡眠状态下键入kubectl命令,而是问:'我的集群出了什么问题?'”*
用于Kubernetes调试的MCP服务器:
- 列出Pod、部署、服务
- 从任何pod获取日志
- 自动分析碰撞循环
- 经批准的安全补救
3.深度研究浏览器
*“网页很大。向LLM发送5MB的HTML是行不通的。我们需要服务器智能化。”*
用于网络研究的MCP服务器:
- 与Playwright一起无头浏览
- 内容提取和摘要
- MCP采样(服务器向LLM寻求帮助)
- 带有引文的多页研究
4.多客户端知识库
*“只有当同一台服务器在任何地方都能工作时,协议才重要。这个项目证明了这一点。”*
演示跨客户端互操作性的MCP服务器:
- 搜索内部文档、代码片段和常见问题
- 将同一服务器连接到Claude Desktop、Cursor、VS Code和Python客户端
- 通过共享团队就绪配置
.cursor/mcp.json和.vscode/mcp.json - 支持本地stdio和远程Streamable HTTP部署
______________________________________________________________________
📁 存储库结构
what-the-hell-is-mcp/
├── README.md # You are here
├── plan.md # Series outline and planning notes
│
├── blog-1/ # What the Hell is MCP?
├── blog-2/ # Architecture Deep Dive
├── blog-3/ # First MCP Server
├── blog-4/ # Building an MCP Client
├── blog-5/ # Database Analyst Part 1
├── blog-6/ # Database Analyst Part 2
├── blog-7/ # DevOps Agent Part 1
├── blog-8/ # DevOps Agent Part 2
├── blog-9/ # Research Browser Part 1
├── blog-10/ # Research Browser Part 2
├── blog-11/ # Research Browser Part 3
├── blog-12/ # Production Deployment
└── blog-13/ # Multi-Client MCP______________________________________________________________________
🤝 贡献
发现bug了吗?有更好的解释吗?想添加项目吗?
- 分叉回购
- 创建您的分支(
git checkout -b fix/better-explanation) - 提交您的更改
- 推送并打开PR
欢迎所有贡献,特别是拼写错误修复。我大部分是在凌晨2点写的。
______________________________________________________________________
📚 资源
⭐ 如果这对你有帮助
如果这个系列像我一样为你节省了数周的困惑,请考虑:
- ⭐ 主演此回购
- 🐦 与迷失在MCP土地上的人分享
- 🛠️ 构建一些很酷的东西并告诉我
______________________________________________________________________
From zero to production. One blog at a time.
Happy building!
