🚀 FastMCP自定义服务器从头开始
*为LLM工具构建生产就绪的MCP服务器*
   
*一门实用的、基于项目的课程,介绍如何使用FastMCP构建模型上下文协议(MCP)服务器,使大型语言模型能够安全地与工具、数据库和API交互。*
______________________________________________________________________
关于我
嗨!我是Gazi Adib(YT上的GreatAdib)。我毕业于孟加拉国的计算机科学与工程专业,对教授、实验、构建和简化人工智能、法学硕士和面向初学者的现代软件系统充满热情。
我积极致力于web应用程序、AI/ML系统和后端架构,同时,我为每个人创建了完全免费的高质量教育内容和课程。
我的使命简单而有力,那就是让所有人都能接受高质量的技术教育。
我坚信,当概念被深入理解并实际应用时,真正的学习就会发生。这就是为什么我的教学风格侧重于:
- 清晰的理论
- 强劲的基本面
- 真实世界的用例
- 动手实施
- 我不只是解释什么是东西——我展示了它在真实系统中是如何工作的。
📌 概述
快速MCP 是一个Python框架,简化了构建符合 模型上下文协议(MCP)--用于将Claude和GPT等LLM与外部工具、数据源和web API连接的现代标准。
此存储库包含全面的学习材料,将带您从零开始构建生产就绪的MCP服务器。您将学习如何通过真实的数据库集成和LLM优化的工具设计来设计、实现和部署本地(STDIO)和远程(HTTP/SSE)MCP服务器。
为什么这很重要
传统的LLM与现实世界的数据是隔离的。MCP通过为LLM提供一个标准化的协议来弥合这一差距,使其能够安全地与您的数据库、API和工具交互,同时保持安全性和控制性。
______________________________________________________________________
✨ 核心功能
🎯 双服务器架构
- 本地STDIO服务器 用于开发和调试
- 远程HTTP/SSE服务器 用于生产部署
- 从开发到生产的无缝过渡
🔧 生产就绪工具
- 真正的数据库集成(SQLite与原始SQL)
- LLM的自定义工具注册
- 用自然语言进行CRUD操作
⚡ 开发者体验
- 最小样板代码
- Python式和简洁的语法
- FastAPI友好设计
- 内置运输支持
🌐 可扩展模式
- 一对一通信(STDIO)
- 一对多通信(HTTP/SSE)
- 多用户并发访问支持
______________________________________________________________________
🏗️ 建筑
系统概述
┌──────────────────────────────────────────────────────────────────┐
│ LLM Client Layer │
│ (Claude / GPT / Compatible) │
└───────────────────────────────┬──────────────────────────────────┘
│
Natural Language Request
│
┌───────────────────────────────▼──────────────────────────────────┐
│ MCP Client Layer │
│ (Inspector / SDK / Interface) │
└───────────────────────────────┬──────────────────────────────────┘
│
MCP Protocol Communication
(STDIO / HTTP / SSE)
│
┌───────────────────────────────▼──────────────────────────────────┐
│ FastMCP Server Core │
│ (Python Application Logic) │
├───────────────────────────────────────────────────────────────────┤
│ • Request Parser • Tool Registry • Response Builder │
│ • Protocol Handler • Security Layer • Error Handler │
└───────────────────────────────┬──────────────────────────────────┘
│
Tool Execution Layer
│
┌───────────────────────────────▼──────────────────────────────────┐
│ Tools Layer │
│ (Python Functions & Logic) │
├───────────────────────────────────────────────────────────────────┤
│ • Database Queries • API Calls • Data Processing │
│ • Calculations • File Operations • Custom Logic │
└───────────────────────────────┬──────────────────────────────────┘
│
Data Access Layer
│
┌───────────────────────────────▼──────────────────────────────────┐
│ Data Sources Layer │
│ (SQLite Database / External APIs) │
└───────────────────────────────────────────────────────────────────┘请求流
- LLM收到用户提示 → 自然语言教学
- MCP客户端进程 → 转换为MCP协议
- FastMCP服务器解释 → 通往合适工具的路线
- 工具执行 → 执行数据库查询或API调用
- 数据返回 → 通过链返回结构化响应
- LLM展示结果 → 向用户输出自然语言
______________________________________________________________________
🛠️ 技术栈
核心技术
| 类别 | 技术 | 目的 |
|---|---|---|
| 语言 | Python 3.10+ | 服务器实现 |
| 框架 | FastMCP | MCP服务器框架 |
| 数据库 | SQLite(原始SQL) | 数据持久化 |
| 协议 | HTTP、SSE、STDIO | 传输层 |
| 数据格式 | JSON | 数据序列化 |
| LLM客户 | Claude,GPT兼容 | AI集成 |
开发工具
- MCP 检查员 -服务器测试和调试
- Python虚拟环境 -依赖隔离
- Git -版本控制
______________________________________________________________________
🎯 你将学到什么
🧠 Conceptual Knowledge
- 什么是模型上下文协议(MCP)及其在LLM生态系统中的作用
- 为什么FastMCP对于构建LLM工具服务器至关重要
- 本地(STDIO)和远程(HTTP/SSE)架构之间的差异
- 开发与生产MCP服务器模式
- 一对一vs一对多沟通范式
💻 Practical Skills
- 从头开始构建自定义FastMCP服务器
- 设计和注册LLM友好的工具
- 使用原始SQL实现SQLite数据库连接
- 创建可通过自然语言访问的CRUD操作
- 部署STDIO和HTTP/SSE传输模式
- 为实际应用构建MCP服务器
🏢 Production Patterns
- 构建可扩展的MCP服务器基础架构
- 实施身份验证和安全层
- 处理多个并发LLM连接
- 连接到外部API和托管数据库
- 错误处理和日志记录最佳实践
______________________________________________________________________
📋 先决条件
所需知识
| 区域 | 主题 | 级别 |
|---|---|---|
| python | 函数、列表、字典、理解 | 中级 |
| 结构化查询语言 | SELECT、INSERT、UPDATE、DELETE查询 | 基本 |
| 应用程序编程接口 | REST概念、JSON数据结构 | 基础 |
系统要求
- 操作系统:Windows、macOS或Linux
- Python版本:3.10或更高
- 磁盘空间:最小500MB
- 互联网:远程服务器需要
备注:不需要事先了解MCP或FastMCP。我们从基础开始!
______________________________________________________________________
🚀 课程设计
在本课程结束时,您将构建一个 功能齐全的FastMCP服务器 具有以下功能:
功能清单
- ✅ 向LLM公开多个工具
- ✅ 接受自然语言指令
- ✅ 连接到SQLite数据库
- ✅ 执行完整的CRUD操作
- ✅ 支持STDIO和HTTP/SSE传输
- ✅ 包括错误处理和日志记录
- ✅ 模拟真实世界的企业LLM工具服务器
______________________________________________________________________
🚦 入门指南
快速开始
# Clone the repository
git clone https://github.com/GaziAdib/MCP-FASTAPI-Server-Budget-Management
# Navigate to project directory
cd fastmcp-course
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows with gitbash:
source venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run your first MCP server
python main.py项目结构
fastmcp-course/
├── 📄 venv/ # venv for environment
├── 📄 crud.py # core logics with DB
├── 📄 main.py # main Fast MCP server file
├── 📄 database.py # setup database
├── 📄 models.py # create tables
├── 📄 schemas.py # Model Schema Validated
├── 📄 requirements.txt # Python dependencies
└── 📄 README.md # This file______________________________________________________________________
📚 涵盖的服务器类型
🔹 本地MCP服务器(STDIO)
非常适合发展和学习
| 功能 | 详细信息 |
|---|---|
| 部署 | 完全在本地计算机上运行 |
| 沟通 | 标准输入/输出流 |
| 建筑 | 一对一客户端服务器 |
| 用例 | 学习、测试、调试 |
| 速度 | 速度极快,无网络延迟 |
| 互联网 | 不需要 |
| 调试 | 易于跟踪和调试 |
🔹 远程MCP服务器(HTTP/SSE)
生产就绪架构
| 功能 | 详细信息 |
|---|---|
| 部署 | 云端或远程服务器托管 |
| 沟通 | HTTP+服务器发送事件 |
| 建筑 | 一对多并发连接 |
| 用例 | 生产应用 |
| 可扩展性 | 同时支持多个用户 |
| 整合 | 托管数据库、外部API |
| 安全 | 身份验证,需要加密 |
______________________________________________________________________
👥 这是给谁的
AI Developers
Backend Developers
Python Engineers
Automation Engineers
Students
如果你想构建与真实数据库和API交互的LLM驱动系统,这门课程适合你。
______________________________________________________________________
⚡ 为什么选择FastMCP?
FastMCP通过提供以下功能从其他MCP实现中脱颖而出:
| 优势 | 好处 |
|---|---|
| 最小沸腾板 | 注重逻辑,而不是配置 |
| Python语法 | 遵循Python规范的干净、可读的代码 |
| FastAPI友好 | 与现代Python web框架无缝集成 |
| 轻松工具注册 | 使用简单的装饰器注册工具 |
| 内置交通工具 | STDIO和HTTP/SSE支持开箱即用 |
| LLM优化 | 专为LLM交互设计的架构 |
______________________________________________________________________
📖 课程模块
- MCP简介 -了解协议
- FastMCP基础知识 -设置和第一台服务器
- 工具设计 -创建LLM友好的工具
- 数据库集成 -带原始SQL的SQLite
- STDIO服务器 -地方发展模式
- HTTP/SSE服务器 -生产部署
- 现实世界项目 -构建一个完整的系统
______________________________________________________________________
📜 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
✍️ 作者
加齐·阿迪布
*人工智能和后端开发人员*
专业从事FastMCP•Python•LLM工具
 ](https://github.com/GaziAdib/MCP-FASTAPI-Server-Budget-Management)  
______________________________________________________________________
🌟 致谢
- FastMCP团队创建了一个优秀的框架
- MCP社区的贡献和反馈
- 所有提供宝贵反馈的学生和开发人员
______________________________________________________________________
⭐ 最后说明
*本课程使用现代MCP标准弥合了LLM和现实世界系统之间的差距,利用Fast MCP的强大功能连接我们自己的自定义服务器和构建工具,这就是LLM将如何与我们的服务器通信,并以自然语言执行我们的命令,从而添加、从数据库中获取数据并完成惊人的事情。*
*设计实用、清洁、以生产为导向。*
如果你觉得这很有用,可以考虑给repo一个⭐
______________________________________________________________________
幸福大厦! 🚀
对dTech内容创作和在世界各地传播IT知识充满热情!
