内容
# MCP 教程
该仓库包含我**[关于 MCP (模型上下文协议) 的 YouTube 课程](https://www.youtube.com/watch?v=A6chBogLD0k&list=PL_-Bd6t4T02_JnGFZ9iPRa8B4kFeowg9m&index=4&ab_channel=selfdeeplearning)**的教程材料和示例代码。
课程讲述了 AI 中工具使用的演变——从 **Toolformer** 到 **MCP**——然后深入探讨构建 MCP 服务器、客户端和代理的实际示例。
## 📺 课程概述
该仓库与 YouTube 教程系列 [self deep learning - MCP Course](https://www.youtube.com/watch?v=A6chBogLD0k&list=PL_-Bd6t4T02_JnGFZ9iPRa8B4kFeowg9m&index=4&ab_channel=selfdeeplearning) 一起进行。
### **第 1 章 — AI 如何使用工具:从 Toolformer 到 MCP**
* 本课程适合谁 & 先决条件
* 什么是工具 & 为什么需要工具
* 经典工具使用 – Toolformer (2023)
* 向 MCP 的过渡
### **第 2 章 — MCP 基础**
* 核心组件 — 主机、客户端、服务器
* `tools/list` 请求
* `tools/call` 请求
* 协议机制 — JSON-RPC 2.0
* 与函数调用特性的关系
### **第 3 章 — Python 中的 MCP 基础**
* 设置 MCP stdio 服务器
* 定义 MCP 工具(例如,计算器)
* 设置 MCP stdio 客户端
* 从客户端调用 MCP 服务器工具
* 设置 MCP 可流式传输的 HTTP 服务器
* 设置 MCP HTTP 客户端
### **第 4 章 — 连接到现有的 MCP 服务器**
* 连接到内置服务器,如 **Filesystem**、**Git** 和 **Tavily**
### **第 5 章 — MCP + LLM 集成**
* 如何将 MCP 连接到 LLM(例如,OpenAI API、LangChain/LangGraph)
* 安全风险和安全设计考虑
### **第 6 章 — 未来展望与总结**
* 我们没有涵盖的内容及其原因
* MCP 和相关方法的未来展望
## 📂 目录结构
```
.
├── servers/ # MCP 服务器 (stdio, HTTP, 等)
├── clients/ # MCP 客户端 (stdio, HTTP, 等)
├── agents/ # 使用 OpenAI API 或 LangChain 的聊天代理
└── assets/ # 幻灯片 & YouTube 脚本
```
## 🚀 开始使用
### 1. 安装 `uv`
请按照此处的说明进行操作:[uv 安装指南](https://docs.astral.sh/uv/getting-started/installation/)。
例如,在 macOS/Linux 上:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
在 Windows (PowerShell) 上:
```powershell
irm https://astral.sh/uv/install.ps1 | iex
```
### 2. 创建虚拟环境
```bash
uv venv
source .venv/bin/activate # 在 macOS/Linux 上
.venv\Scripts\activate # 在 Windows 上
```
### 3. 安装依赖
```bash
uv sync
```
### 4. 运行示例
```bash
uv run clients/stdio_client.py
```
### 5. 环境变量
该项目中的一些示例(**tavily_client**、**agents**)需要外部服务的 API 密钥(例如,LLMs、搜索工具)。
1. 将 `.env.example` 复制到 `.env`:
```
cp .env.example .env
```
2. 编辑 `.env` 并替换为您自己的密钥:
```
TAVILY_API_KEY=tvly-xxxxxx
OPENAI_API_KEY=sk-xxxxxx
```
您可以在这里获取您的密钥:
👉 Tavily API 密钥 → https://app.tavily.com/
👉 OpenAI API 密钥 → https://platform.openai.com/
## 🎯 学习目标
通过本教程项目,您将:
* 理解 MCP 是什么以及它的重要性。
* 学会如何构建自己的 **MCP 服务器和客户端**。
* 连接现有服务器(Filesystem、Git、Tavily)。
* 安全地将 MCP 与 LLM 集成。
## 📌 注意事项
* 该仓库旨在用于 **教育**,而非生产环境。
* `assets/` 文件夹包含视频中使用的幻灯片和脚本。