03_FastMCP 2.x 中文文档之FastMCP快速入门

一、快速入门

欢迎!本指南将帮助您快速设置 FastMCP,运行您的第一个 MCP 服务器,并将服务器部署到 FastMCP Cloud。

如果尚未安装 FastMCP,请先按照安装说明进行操作。

二、创建 FastMCP 服务器

FastMCP 服务器是工具、资源和其他 MCP 组件的集合。要创建服务器,请先实例化 FastMCP 类。

创建一个名为 my_server.py 的新文件,并添加以下代码:

复制代码
from fastmcp import FastMCP

mcp = FastMCP("我的 MCP 服务器")

完成!您已经创建了一个 FastMCP 服务器,虽然目前还很基础。让我们添加一个工具来让它变得更有趣。

2.1 添加工具

要添加一个返回简单问候语的工具,请编写一个函数并使用 @mcp.tool 装饰器将其注册到服务器:

复制代码
from fastmcp import FastMCP

mcp = FastMCP("我的 MCP 服务器")

@mcp.tool
def greet(name: str) -> str:
    return f"你好,{name}!"

2.2 运行服务器

运行 FastMCP 服务器最简单的方法是调用其 run() 方法。您可以选择不同的传输方式,例如用于本地服务器的 stdio

复制代码
from fastmcp import FastMCP

mcp = FastMCP("我的 MCP 服务器")

@mcp.tool
def greet(name: str) -> str:
    return f"你好,{name}!"

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

或用于远程访问的 http:

复制代码
from fastmcp import FastMCP

mcp = FastMCP("我的 MCP 服务器")

@mcp.tool
def greet(name: str) -> str:
    return f"你好,{name}!"

if __name__ == "__main__":
    mcp.run(transport="http", port=8000)

这样我们就可以使用 python my_server.py 运行服务器。stdio 传输是将 MCP 服务器连接到客户端的传统方式,而 HTTP 传输则支持远程连接。

为什么需要 if name == "main ": 代码块?

建议使用 main 代码块以确保一致性和兼容性,这样能保证您的服务器与所有将服务器文件作为脚本执行的 MCP 客户端兼容。如果用户只使用 FastMCP CLI 运行服务器,则可以省略该代码块,因为 CLI 会直接导入服务器对象。

2.3 使用 FastMCP CLI

您也可以使用 fastmcp run 命令来启动服务器。请注意,FastMCP CLI 不会执行服务器文件的 main 代码块。相反,它会导入您的服务器对象,并使用您提供的任何传输方式和选项来运行它。

例如,要使用默认的 stdio 传输运行此服务器(无论您在 mcp.run() 中如何设置),可以使用以下命令:

复制代码
fastmcp run my_server.py:mcp

要使用 HTTP 传输运行此服务器,可以使用以下命令:

复制代码
fastmcp run my_server.py:mcp --transport http --port 8000

三、调用 MCP 服务器

当您的服务器通过 HTTP 传输运行时,您可以使用 FastMCP 客户端或任何支持 MCP 协议的 LLM 客户端连接到它:

复制代码
import asyncio
from fastmcp import Client

client = Client("http://localhost:8000/mcp")

async def call_tool(name: str):
    async with client:
        result = await client.call_tool("greet", {"name": name})
        print(result)

asyncio.run(call_tool("张三"))

请注意:

  • FastMCP 客户端是异步的,因此我们需要使用 asyncio.run 来运行客户端
  • 在使用客户端之前,我们必须进入客户端上下文(async with client:)
  • 您可以在同一个上下文中进行多次客户端调用

四、部署到 FastMCP Cloud

FastMCP Cloud 是由 Prefect 的 FastMCP 团队运营的托管服务。它经过优化,可以尽可能快速地部署经过身份验证的 FastMCP 服务器,为您提供一个安全的 URL,可以插入任何 LLM 客户端。

FastMCP Cloud 对个人服务器免费,并为团队提供简单的按需付费定价。

要部署您的服务器,您需要一个 GitHub 账户。拥有账户后,您可以通过三个步骤部署服务器:

  • 将您的 my_server.py 文件推送到 GitHub 仓库
  • 使用您的 GitHub 账户登录 FastMCP Cloud
  • 从您的仓库创建一个新项目,并输入 my_server.py:mcp 作为服务器入口点

完成!FastMCP Cloud 将构建并部署您的服务器,使其在类似 https://your-project.fastmcp.app/mcp 的 URL 上可用。您可以与其聊天以测试其功能,或从任何支持 MCP 协议的 LLM 客户端连接到它。

有关更多详细信息,请参阅 FastMCP Cloud 指南

相关推荐
腾飞开源9 天前
20_FastMCP 2.x 中文文档之FastMCP服务端认证:令牌验证详解
fastmcp 2.x中文文档·令牌验证·jwt验证·hmac对称密钥·不透明令牌·tokenverifier·fastmcp认证
腾飞开源11 天前
26_FastMCP 2.x 中文文档之FastMCP服务端部署:HTTP 部署指南
身份验证·fastmcp 2.x中文文档·http部署·asgi应用·自定义路由·cors配置·fastapi集成
腾飞开源15 天前
14_FastMCP 2.x 中文文档之FastMCP服务端高级功能:MCP中间件详解
请求拦截·缓存中间件·fastmcp·fastmcp 2.x中文文档·middleware基类·mcp中间件·钩子层次
腾飞开源18 天前
07_FastMCP 2.x 中文文档之FastMCP服务端核心组件:资源与模板详解
fastmcp 2.x中文文档·fastmcp资源·资源模板·resource装饰器·查询参数·异步资源·资源注解
腾飞开源19 天前
09_FastMCP 2.x 中文文档之FastMCP高级功能服务器组成详解
性能优化·代理服务器·模块化设计·fastmcp 2.x中文文档·服务器组合·前缀规则·标签过滤
布林模型1 个月前
缠论工具czsc快速使用入门(二)
python·缠论·快速入门·czsc
胡西风_foxww6 个月前
Python 入门到进阶全指南:从语言特性到实战项目
开发语言·python·快速入门
春天的菠菜1 年前
【django】django RESTFramework前后端分离框架快速入门
后端·django·drf·快速入门·rest framwork
urhero1 年前
Python编程学习第一篇——制作一个小游戏休闲一下
python·零基础·小游戏·快速入门·快乐