MCP协议学习指南

一个交互式、实践性的教育指南,用于学习模型上下文协议(MCP),使用Python从零开始构建自己的MCP服务器。

  • by habond
  • 本地部署
  • 更新于
在 GitHub 查看 habond/learn-mcp

使用说明

MCP学习指南

开始学习→

学习模型上下文协议(MCP)的交互式实践教育指南。使用Python从头开始构建自己的MCP服务器。

概述

本指南将带您完成65个交互式步骤中的12节课,教您从HTTP基础知识到使用工具、资源和提示构建完整的MCP服务器的所有内容。

关键特征:每节课都建立在前几节课的代码之上。您将在capstone项目中创建可重用的模块。

入门指南

在浏览器中打开指南:

open docs/index.html

或者在当地供应:

cd docs
python -m http.server 8000
# Then visit http://localhost:8000

课程

第一阶段:基础(第1-3课)

  • 第1课:了解MCP-MCP是什么和核心概念
  • 第2课:你的第一个HTTP服务器-使用Python的HTTP.Server构建
  • 第3课:JSON-RPC 2.0基础-构建 jsonrpc.py 路由器模块

第2阶段:MCP协议核心(第4-6课)

  • 第4课:MCP握手-构建 mcp_core.py (导入jsonrpc.py)
  • 第5课:实施工具-构建 tools.py (导入mcp_core.py)
  • 第6课:实施资源-构建 resources.py (导入mcp_core.py)

第三阶段:运输与一体化(第7-9课)

  • 第7课:STDIO传输-构建 transports/stdio.py
  • 第8课:HTTP/SSE传输-构建 transports/http_sse.py
  • 第9课:实施提示-构建 prompts.py

第4阶段:测试和实际使用(第10-12课)

  • 第10课:构建MCP客户端-连接到您的服务器
  • 第11课:Claude桌面集成-配置和测试
  • 第12课:Capstone项目-将所有模块组装到Notes服务器中

模块体系结构

在课程结束时,您将构建这个模块化框架:

mcp_project/
├── jsonrpc.py              # Lesson 3: JSON-RPC router
├── mcp_core.py             # Lesson 4: MCP server foundation
├── tools.py                # Lesson 5: Tool registry & handlers
├── resources.py            # Lesson 6: Resource registry & handlers
├── prompts.py              # Lesson 9: Prompt registry & handlers
├── transports/
│   ├── __init__.py
│   ├── stdio.py            # Lesson 7: STDIO transport
│   └── http_sse.py         # Lesson 8: HTTP/SSE transport
└── notes_server.py         # Lesson 12: Capstone - combines all modules

代码块类型

课程使用两种视觉上不同的代码块样式:

  • 文件编辑块 (绿色边框,铅笔图标):您应该写入文件的代码
  • 插图块 (plain):示例、输出或解释代码

先决条件

  • Python 3.10+
  • Python基础知识
  • 终端/命令行
  • 现代网络浏览器

特性

  • 循序渐进的互动课程
  • 复制粘贴Python代码示例
  • 进度跟踪(保存在浏览器中)
  • 移动响应式设计
  • 键盘导航(Alt+箭头键)

项目结构

docs/
├── index.html              # Landing page
├── assets/
│   ├── style.css           # Styling
│   ├── script.js           # Navigation & interactivity
│   └── favicon.svg         # Site icon
└── lessons/
    ├── lesson-01.html      # Lesson files
    ├── lesson-01-2.html
    └── ... (65 files total)

技术栈

  • 纯HTML、CSS、JavaScript(无构建系统)
  • Python标准库仅用于服务器代码
  • Highlight.js用于语法高亮显示

许可证

麻省理工学院