使用说明
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:下载HTMLextract_info:提取有组织的信息。
有关更多信息,请参阅 自述文件
快速入门-FastMCP服务器和工具
FastMCP服务器
要了解核心FastMCP服务器类以及如何运行它,请参阅: FastMCP服务器
FastMCP客户端
要了解核心FastMCP服务器类以及如何运行它,请参阅: FastMCP客户端
用法
uv run main.py
