模型上下文协议服务器

FastMCP是一个用于构建和运行MCP(模型上下文协议)服务器的Python框架,旨在为大型语言模型(LLM)提供标准化的上下文和工具接口。

  • by FabG
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fabg/mcp-server

使用说明

MCP服务器

此仓库包括设置MCP(模型上下文协议)服务器、向其添加工具以及与LLM(大型语言模型)交互的指令和代码。

MCP简介

模型上下文协议(MCP)是一种新的标准化方式,为LLM提供上下文和工具。在这个repo中,我们将使用 FastMCP 这使得构建MCP服务器和客户端变得简单直观。

FastMCP 2.0 是github上排名第一的热门仓库,截至2025年5月,拥有超过1万颗星和600个分叉。

使用干净的Python代码创建工具、公开资源、定义提示等:

from fastmcp import FastMCP

mcp = FastMCP("Demo 🚀")

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

if __name__ == "__main__":
    mcp.run()

什么是MCP?

模型上下文协议允许您构建服务器,以安全、标准化的方式向LLM应用程序公开数据和功能。它通常被描述为“AI的USB-C端口”,提供了一种将LLM连接到它们可以使用的资源的统一方式。将其视为API可能更容易,但它是专门为LLM交互而设计的。
MCP服务器可以:

  • 通过资源公开数据(将这些类似于GET端点;它们用于将信息加载到LLM的上下文中)
  • 通过工具提供功能(有点像POST端点;它们用于执行代码或产生副作用)
  • 通过Prompts(LLM交互的可重用模板)定义交互模式
  • 还有更多!
    有一个低级Python SDK可用于直接实现该协议,但FastMCP旨在通过提供高级Python接口使其更容易实现。

为什么选择FastMCP?

MCP协议功能强大,但实现它涉及许多样板——服务器设置、协议处理程序、内容类型、错误管理。FastMCP处理所有复杂的协议细节和服务器管理,因此您可以专注于构建出色的工具。它被设计成高级和Python风格;在大多数情况下,装饰一个功能就是你所需要的。

虽然FastMCP 1.0的核心服务器概念奠定了基础,并为官方MCP SDK做出了贡献,但FastMCP 2.0(本项目)是积极开发的后续产品,增加了显著的增强功能和全新的功能,如强大的客户端库、服务器代理、组合模式等等。

FastMCP旨在:

🚀 快速:高级接口意味着更少的代码和更快的开发

🍀 简单:用最少的样板构建MCP服务器

🐍 Pythonic:对Python开发人员来说感觉很自然

🔍 完成:FastMCP旨在提供核心MCP规范的完整实施

设置

我们 uv 这是一个防锈包管理工具,比pip快得多。 如果您还没有,请安装它:

curl -LsSf https://astral.sh/uv/install.sh | sh

优点 uv 在Pipenv/Pipfile上包括:

  • 更快的依赖关系解决和安装时间。
  • 更好地与Poetry等现代Python生态系统集成。
  • 减少虚拟环境管理的开销。
  • 在解析环境变量时增强了安全性,尽管这也引入了新的考虑因素(稍后讨论)。

您可能需要更新$PATH以反映安装uv的位置。 MacOS示例: /Users/<user>/.local/bin/

您可以按如下方式更新.bash_profile:

# Setting PATH for uv
PATH="/Users/<user>/.local/bin/:${PATH}"
export PATH

创建虚拟环境 创建一个默认的虚拟环境 .venv,运行:

uv venv

激活您的环境

source .venv/bin/activate

安装依赖项

uv add fastmcp==2.4.0 --frozen

验证版本

fastmcp version

你应该看到这样的东西:

FastMCP version:                                                          2.4.0
MCP version:                                                              1.9.1
Python version:                                                          3.11.9
Platform:                                        macOS-15.4.1-x86_64-i386-64bit
FastMCP root path: /Users/Fab/Git/mcp-server/.venv/lib/python3.11/site-packages

项目

MCP服务器,用于从亚马逊的网页中提取信息

此项目演示了如何使用 FastMCP 使用人工智能辅助工具编排构建简单的MCP服务器和客户端。 工作流程如下:

  • 用户发送一条消息,如“从此亚马逊链接获取产品信息”
  • MCP客户端检查可以处理该任务的已注册工具
  • 客户端向MCP服务器发送结构化请求
  • MCP服务器执行适当的操作(例如,启动无头浏览器)
  • 服务器向MCP客户端返回结构化结果
  • 客户端将结果转发给LLM,LLM将结果呈现给用户

特性

此服务器提供两个工具:

  • fetch_page:下载HTML
  • extract_info:提取有组织的信息。

有关更多信息,请参阅 自述文件

快速入门-FastMCP服务器和工具

看 快速入门-创建服务器和工具

FastMCP服务器

要了解核心FastMCP服务器类以及如何运行它,请参阅: FastMCP服务器

FastMCP客户端

要了解核心FastMCP服务器类以及如何运行它,请参阅: FastMCP客户端


用法

uv run main.py