当前位置: 首页 > news >正文

12_FastMCP 2.x 中文文档之FastMCP高级功能:图标详解

一、图标

为您的服务器、工具、资源和提示添加视觉图标

新版本:2.14.0 功能

图标为您的 MCP 服务器和组件提供视觉表示,能够帮助客户端应用程序呈现更友好的用户界面。当在 MCP 客户端中显示时,图标可帮助用户快速识别和浏览您服务器提供的各项功能。

二、图标格式

图标采用 MCP 协议规范中定义的标准 MCP 图标类型。每个图标需要指定以下信息:

  • src:指向图标图像的 URL 或数据 URI
  • mimeType(可选):图像的 MIME 类型(例如 “image/png”、“image/svg+xml”)
  • sizes(可选):尺寸描述符数组(例如 [“48x48”]、[“any”])

示例代码:

from mcp.types import Iconicon = Icon(src="https://example.com/icon.png",mimeType="image/pvg",sizes=["48x48"]
)

三、服务器图标

您可以为服务器添加图标和网站 URL,这些信息将在客户端应用程序中显示:

示例代码:

from fastmcp import FastMCP
from mcp.types import Iconmcp = FastMCP(name="WeatherService",website_url="https://weather.example.com",icons=[Icon(src="https://weather.example.com/icon-48.png",mimeType="image/png",sizes=["48x48"]),Icon(src="https://weather.example.com/icon-96.png",mimeType="image/png",sizes=["96x96"]),]
)

服务器图标会显示在 MCP 客户端界面中,帮助用户在已安装的多个服务器中快速识别您的服务器。

四、组件图标

图标可以添加到各个工具、资源、资源模板和提示中:

4.1 工具图标示例

from mcp.types import Icon@mcp.tool(icons=[Icon(src="https://example.com/calculator-icon.png")]
)
def calculate_sum(a: int, b: int) -> int:"""将两个数字相加。"""return a + b

4.2 资源图标示例

@mcp.resource(
"config://settings",
icons=[Icon(src="https://example.com/config-icon.png")]
)
def get_settings() -> dict:"""检索应用程序设置。"""return {"theme": "dark", "language": "en"}

4.3 资源模板图标示例

@mcp.resource(
"user://{user_id}/profile",
icons=[Icon(src="https://example.com/user-icon.png")]
)
def get_user_profile(user_id: str) -> dict:"""获取用户配置文件。"""return {"id": user_id, "name": f"User {user_id}"}

4.4 提示图标示例

@mcp.prompt(
icons=[Icon(src="https://example.com/prompt-icon.png")]
)
def analyze_code(code: str):"""创建代码分析提示。"""return f"请分析以下代码:\n\n{code}"

五、使用数据 URI

对于较小的图标,或者当您希望直接嵌入图标时,可以使用数据 URI:

示例代码:

from mcp.types import Icon
from fastmcp.utilities.types import Image# 将 SVG 图标作为数据 URI 使用
svg_icon = Icon(src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6Ii8+PC9zdmc+",mimeType="image/svg+xml"
)@mcp.tool(icons=[svg_icon])
def my_tool() -> str:"""带有嵌入式 SVG 图标的工具。"""return "result"# 从本地图像文件生成数据 URI
img = Image(path="./assets/brand/favicon.png")
icon = Icon(src=img.to_data_uri())@mcp.tool(icons=[icon])
def file_icon_tool() -> str:"""使用本地文件生成图标的工具。"""return "result"
http://www.dtcms.com/a/578006.html

相关文章:

  • 打工人日报#20251106
  • 在Windows上通过WSL体验openEuler:打造高效的AI开发环境
  • ERP和WMS系统有什么区别吗?ERP系统能代替WMS仓储管理系统吗?
  • 我在造一个编程语言,叫 Free
  • 石家庄做网站那家好做推广的公司一般都叫什么
  • 论文分享 | AlexNet:点燃深度学习革命的“一把火”
  • 拉普拉斯算子及散度
  • 前端FAQ: 如何使⽤Web Workers来提⾼⻚⾯性能?
  • 怎么建设淘客自己的网站_品牌形象网站建设
  • Kafka-1 基本概念
  • MATLAB实现粒子群算法优化tsp问题
  • Modbus RTU 转 Modbus TCP:以协议通讯为核心优化光伏逆变器产线PLC协同流程案例
  • 10个Tcp三次握手四次挥手题目整理
  • tcp_connect_v4接口
  • SELinux 文件上下文管理详解:从基础到实战
  • 10个TCP可靠性与拥塞控制题目整理
  • 天津建设网站培训房地产怎么做网站推广
  • 20251106在荣品RD-RK3588开发板的Android13系统下配置单5GHz的softAP模式以提高网速
  • 有没有做长图的网站如何制作网站教程视频
  • Photoshop - Photoshop 工具栏(23)单列选框工具
  • 计算机图形中的法线矩阵:深入理解与应用
  • MySQL入门练习50题
  • SSM公办小学网络报名系统f3d3p(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 可以做投票的网站深圳网站建设制作设计企业
  • 在飞牛nas中docker使用nas挂载的硬盘问题(docker开机后自动重启)
  • 告别文件混乱!Adobe Bridge 2026 全媒体可视化管理,让设计流程更顺畅
  • 记录kubelet错误:Could not open resolv conf file
  • MATLAB基于Theil不等系数的IOWHA算子组合预测模型
  • 河南旅游集团 网站建设计算机是学什么内容的
  • 社交网站页面设计长春火车站是哪个站