掘金 人工智能 前天 14:17
FastMCP 快速入门
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

FastMCP是一个基于Python的快速构建MCP(Model Context Protocol)服务器和客户端的工具。MCP协议提供了一种标准化的方式,用于暴露数据和工具给大语言模型。FastMCP 2.0在1.0版本的基础上进行了显著扩展,包括更强大的客户端功能、服务器代理与组合、OpenAPI/FastAPI集成等。通过FastMCP,开发者可以轻松地创建工具、暴露资源、定义提示词,实现LLMs与资源的连接。

💡 FastMCP是构建MCP服务器和客户端的Pythonic方式,它简化了MCP应用程序的开发流程。

🚀 FastMCP 2.0相较于1.0版本,扩展了客户端功能、服务器代理与组合,并集成了OpenAPI/FastAPI,使其成为构建现代MCP应用程序的推荐选择。

🛠️ 使用FastMCP,开发者可以通过定义工具(Tools)、暴露数据(Resources)和定义提示词模板(Prompts)来构建MCP服务器,方便LLMs与资源的交互。

⚙️ 安装FastMCP可以使用uv或pip等工具,只需简单几步即可完成。从官方SDK更新至FastMCP 2.0,只需修改导包语句。

💻 快速开始部分展示了如何创建MCP服务器、添加工具以及使用客户端测试服务器的完整流程,包括运行服务器和与服务器交互的示例代码。

一、简介

1.1 FastMCP

FastMCP 是构建 MCP 服务器和客户端的快速、Python 方式。

MCP:Model Context Protocol,是标准化的提供大语言模型上下文和工具的协议。

FastMCP 允许用户使用简单、符合直觉的方式构建 MCP 服务器和客户端。可以使用更简介、Python 风格的代码创建工具、暴露资源、定义提示词:

from fastmcp import FastMCPmcp = FastMCP("Demo 🚀")@mcp.tool()def add(a: int, b: int) -> int:    """Add two numbers"""    return a + bif __name__ == "__main__":    mcp.run()

1.2 FastMCP 2.0 vs MCP 官方 SDK

官方 MCP 中 Python SDK 中存在 FastMCP,那是基于 FastMCP 1.0 的。

FastMCP 2.0在 1.0 的基础上进行了显著扩展,引入了强大的客户端功能、服务器代理与组合、OpenAPI/FastAPI 集成以及更多高级功能。

FastMCP 2.0 是构建现代、强大的 MCP 应用程序的推荐途径。

1.3 什么是MCP?

MCP 允许你构建服务器以安全、标准化的方式去暴露数据和工具给大语言模型。MCP 通常被描述为 “AI 的USB 接口”,提供统一的方式去连接 LLMs 和资源。可以把它看作是专门为 LLM 交互的 API。MCP 服务器可以做:

二、安装

2.1 安装FastMCP

推荐使用 uv 安装和管理 FastMCP。

如果想在项目中使用 FastMCP,可以通过下面代码添加依赖:

uv add fastmcp

或者可以用 pip 或者 uv pip 安装

uv pip install fastmcp

2.1.1 验证安装

可以通过下面命令验证是否安装成功:

fastmcp version

你应该会看到如下输出:

% fastmcp versionFastMCP version:                                                     2.3.4MCP version:                                                         1.8.1Python version:                                                     3.12.2Platform:                                     macOS-15.4.1-arm64-arm-64bitFastMCP root path: /path/to/fastmcp

2.2 从官方SDK更新

从官方 SDK 的 FastMCP 1.0更新到 FastMCP 2.0 很简单。将导包从from mcp.server.fastmcp import FastMCP改为from fastmcp import FastMCP就可以了。

# 之前# from mcp.server.fastmcp import FastMCP# 现在from fastmcp import FastMCPmcp = FastMCP("My MCP Server")

三、快速开始

3.1 创建MCP服务器

一个MCP服务器就是工具、资源和其他MCP组件的集合。创建MCP服务器需要用到FastMCP类。

创建一个文件my_server.py然后添加如下代码:

from fastmcp import FastMCPmcp = FastMCP("My MCP Server")

这样就创建了一个MCP服务器了,下面来添加一些工具。

3.2 添加工具

下面添加一个打招呼的工具,编写一个函数,然后使用@mcp.tool装饰器:

from fastmcp import FastMCPmcp = FastMCP("My MCP Server")@mcp.tool()def greet(name: str) -> str:  return f"Hello, {name}"

3.3 测试服务器

创建MCP客户端,并指向刚刚创建的服务器:

import asynciofrom fastmcp import FastMCP, Clientmcp = FastMCP("My MCP Server")@mcp.tool()def greet(name: str) -> str:    return f"Hello, {name}!"client = Client(mcp)async def call_tool(name: str):    async with client:        result = await client.call_tool("greet", {"name": name})        print(result)asyncio.run(call_tool("Ford"))

这里需要注意几点:

3.4 运行服务器

为了用 Python 运行 MCP 服务器,需要添加 run 语句在__main__中:

from fastmcp import FastMCPmcp = FastMCP("My MCP Server")@mcp.tool()def greet(name: str) -> str:    return f"Hello, {name}!"if __name__ == "__main__":    mcp.run()

这样我们就可以使用python my_server.py运行 MCP 服务器。

3.4.1 用Python与服务器交互

现在可以像和其他第三方 MCP 服务器一样进行交互。

创建客户端并指向服务器文件:

import asynciofrom fastmcp import Clientclient = Client("my_server.py")async def call_tool(name: str):    async with client:        result = await client.call_tool("greet", {"name": name})        print(result)asyncio.run(call_tool("Ford"))

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

FastMCP MCP Python LLM 服务器
相关文章