MCP服务器构建框架

FastMCP是一个Python框架,用于构建符合模型上下文协议(MCP)的服务器,使大型语言模型能够安全地与外部工具、数据库和API交互。

  • by GaziAdib
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 GaziAdib/MCP-FASTAPI-Server-Budget-Management

使用说明

🚀 FastMCP自定义服务器从头开始

为LLM工具构建生产就绪的MCP服务器

一门实用的、基于项目的课程,介绍如何使用FastMCP构建模型上下文协议(MCP)服务器,使大型语言模型能够安全地与工具、数据库和API交互。

📚 文档 • 🎯 特性 • 🏗️ 建筑 • 🚦 入门指南


关于我

嗨!我是Gazi Adib(YT上的GreatAdib)。我毕业于孟加拉国的计算机科学与工程专业,对教授、实验、构建和简化人工智能、法学硕士和面向初学者的现代软件系统充满热情。

我积极致力于web应用程序、AI/ML系统和后端架构,同时,我为每个人创建了完全免费的高质量教育内容和课程。

我的使命简单而有力,那就是让所有人都能接受高质量的技术教育。

我坚信,当概念被深入理解并实际应用时,真正的学习就会发生。这就是为什么我的教学风格侧重于:

  1. 清晰的理论

  2. 强劲的基本面

  3. 真实世界的用例

  4. 动手实施

  5. 我不只是解释什么是东西——我展示了它在真实系统中是如何工作的。

📌 概述

快速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)                    │
└───────────────────────────────────────────────────────────────────┘

请求流

  1. LLM收到用户提示 → 自然语言教学
  2. MCP客户端进程 → 转换为MCP协议
  3. FastMCP服务器解释 → 通往合适工具的路线
  4. 工具执行 → 执行数据库查询或API调用
  5. 数据返回 → 通过链返回结构化响应
  6. 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交互设计的架构

📖 课程模块

  1. MCP简介 -了解协议
  2. FastMCP基础知识 -设置和第一台服务器
  3. 工具设计 -创建LLM友好的工具
  4. 数据库集成 -带原始SQL的SQLite
  5. STDIO服务器 -地方发展模式
  6. HTTP/SSE服务器 -生产部署
  7. 现实世界项目 -构建一个完整的系统

📜 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。


✍️ 作者

加齐·阿迪布

人工智能和后端开发人员

专业从事FastMCP•Python•LLM工具


🌟 致谢

  • FastMCP团队创建了一个优秀的框架
  • MCP社区的贡献和反馈
  • 所有提供宝贵反馈的学生和开发人员

⭐ 最后说明

本课程使用现代MCP标准弥合了LLM和现实世界系统之间的差距,利用Fast MCP的强大功能连接我们自己的自定义服务器和构建工具,这就是LLM将如何与我们的服务器通信,并以自然语言执行我们的命令,从而添加、从数据库中获取数据并完成惊人的事情。

设计实用、清洁、以生产为导向。

如果你觉得这很有用,可以考虑给repo一个⭐


幸福大厦! 🚀

对dTech内容创作和在世界各地传播IT知识充满热情!