FastMCP实战案例教程

一、地图查询AI工具

1.1 项目介绍

我们将构建一个简单的地图查询服务,用户输入城市名称,大模型调用FastMCP工具,通过地理API查询该城市的经纬度,并将结果返回。

1.2 安装与环境准备

  1. 创建虚拟环境(推荐)

python3 -m venv mcp-env
source mcp-env/bin/activate
  1. 安装FastMCP

pip install fastmcp
  1. 安装地图查询依赖(使用OpenStreetMap Nominatim API)

pip install requests

1.3 完整代码实现:地图查询工具

创建文件map_mcp_server.py

from fastmcp import FastMCP
import requests

# 创建MCP实例
mcp = FastMCP("MapLookup")

# 定义地图查询工具
@mcp.tool()
def geo_lookup(location: str) -> dict:
    """
    查询地理位置,返回经纬度等信息
    """
    url = "https://nominatim.openstreetmap.org/search"
    params = {
        "q": location,
        "format": "json",
        "limit": 1
    }
    headers = {"User-Agent": "FastMCP-Demo/1.0"}
    response = requests.get(url, params=params, headers=headers)
    data = response.json()
    if not data:
        return {"error": f"未找到位置: {location}"}
    result = data[0]
    return {
        "display_name": result["display_name"],
        "latitude": result["lat"],
        "longitude": result["lon"]
    }

# 启动MCP服务
if __name__ == "__main__":
    mcp.run()

1.4 运行MCP服务

在终端执行:

默认会在http://localhost:3000启动MCP服务。你将看到如下启动日志:

1.5 测试运行效果(模拟模型调用)

你可以使用Postman或CURL模拟模型调用MCP工具:

返回结果示例:

1.6 集成到大模型(如Claude、ChatGPT)

如果你使用支持MCP的大模型(如Claude 3、OpenAI GPT - 4.5 with MCP),你只需将MCP服务器地址注册为工具服务,模型即可通过自然语言调用它。示例Prompt:“请告诉我北京的经纬度”,模型会自动选择geo_lookup工具并返回准确坐标。

二、企业级MCP服务

2.1 为什么选择FastMCP

  • 极速开发体验:仅需3行代码即可创建具备完整功能的MCP服务器。

  • 原生Python支持:类型注解自动验证输入参数,支持async/await异步处理,无缝集成Pydantic数据模型,兼容Pillow等主流图像库。

  • 企业级协议支持:完整实现Model Context Protocol标准,提供资源(Resources)安全访问控制、工具(Tools)执行审计追踪、上下文(Context)进度管理、图像(Image)自动格式转换。

2.2 五分钟快速入门指南

2.2.1 环境准备

推荐使用uv进行依赖管理:

2.2.2 创建首个MCP服务

新建server.py文件:

2.2.3 部署与测试

  • 开发模式实时调试

  • 生产环境部署

2.3 六大核心功能深度解析

2.3.1 资源(Resources)管理

企业数据的安全访问通道:

2.3.2 智能工具(Tools)开发

支持复杂业务逻辑的原子操作:

2.3.3 对话提示(Prompts)模板

标准化LLM交互流程:

2.3.4 图像处理(Images)

多媒体数据无缝集成:

2.3.5 上下文(Context)管理

执行过程全生命周期控制:

2.3.6 多环境部署策略

模式
命令示例
适用场景

开发调试

fastmcp dev server.py

实时热更新、交互测试

Claude集成

fastmcp install server.py

生产环境部署

独立运行

uv run python server.py

自定义容器化部署

2.4 企业级应用案例:智能财务助手

三、谷歌图片搜索MCP Server

3.1 项目背景

在实际业务中,有时需要让AI搜索图片,例如自媒体写公众号、AI写文章批量发布等场景。本案例将指导你如何利用Fastapi - MCP快速搭建一个MCP服务器,以实现谷歌图片搜索功能。

3.2 实现步骤

3.2.1 先跑通代码

  1. 在谷歌创建项目project:有两种方式,方式1到谷歌云的后台创建,打开网站https://console.cloud.google.com/apis/credentials点「Create project」;方式2(推荐)直接新建一个Gemini的api key,会自动创建Project,网站https://aistudio.google.com/apikey

  2. 获取谷歌搜索的api key:打开网站https://developers.google.com/custom-search/v1/overview?hl=zh - cn#api_key,点获取密钥,选择第一步中创建好的项目。

  3. 获取谷歌搜索引擎的id,也是cx:网站https://programmablesearchengine.google.com/controlpanel/create,填写相关信息后点「创建」,就能看到cx的值。 然后让DeepSeek帮你写谷歌图片搜索的代码。

3.2.2 把这个代码封装成Fastapi接口

  1. 安装Fastapi:

  1. 让Deepseek帮你把之前的代码改成Fastapi代码。

  2. 运行python main.py,在浏览器打开端口后添加/docs的地址,就是接口的文档,见到正常的Fastapi部署页面就表示部署成功。

3.2.3 用Fastapi - MCP改造服务端

安装Fastapi - MCP,在上述fastapi代码的基础上添加相关代码。运行后可以通过http://你服务器地址:9797/mcp来访问MCP,注意如果是在本地跑,服务器地址就是localhost

3.2.4 在AI软件中使用MCP

在Cursor可以直接用url,配置MCP Server,确保「Tools」里有对应的工具。

3.2.5 直接在对话中使用

在AI对话中输入搜索图片的提示词,例如“搜索马斯克的照片”,AI就能正确调用我们的工具。

四、总结

通过以上几个实战案例,我们可以看到FastMCP在不同场景下的强大应用能力。它可以帮助开发者快速构建MCP服务器和客户端,使得大语言模型能够更好地与外部系统进行交互,获取实时信息,执行特定任务。在实际开发中,你可以根据具体需求选择合适的案例进行参考和扩展。

最后更新于