mcpField
S
Sf Symbols

Sf Symbols

本地服务
github.com/svedm媒体与设计217 周前更新

关于 Sf Symbols

Sf Symbols 是 macOS 命令行工具和 MCP 服务,可列出、搜索 Apple SF Symbols,并导出矢量 SVG,适用于需要符号名称或可缩放图形文件的开发者。

主要功能

  1. 01列出系统中的 SF Symbols
  2. 02按名称、关键词或别名搜索
  3. 03将矢量字形导出为 SVG
  4. 04设置字重、尺寸和填充色

适用场景

  1. 01为界面查找符号
  2. 02导出可缩放的 SVG 字形
  3. 03通过 MCP 客户端搜索符号

MCP 相关

以 stdio 方式运行 MCP 服务,提供列出符号、搜索目录和导出 SVG 的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

sfsymbols-mcp

一款 macOS 命令行工具和 Model Context Protocol 服务,用于 Apple 的 SF Symbols。它可以:

  • 列出系统上的所有 SF Symbol 名称(9,000 多个)。
  • 按名称、关键词或别名搜索符号。
  • 将任意符号导出为真正的矢量 SVG——包含真实的贝塞尔 <path> 数据,而非栅格化图像。

这些矢量轮廓是 Apple 发布的精确曲线,直接从系统符号目录中提取,因此导出的 SVG 可无损缩放至任意尺寸。


要求

  • macOS 14(Sonoma)或更高版本——此工具会读取 Apple 磁盘上的 SF Symbols 目录,因此只能在 macOS 上运行。
  • Swift 6.3+ 工具链(Xcode 26 / 对应的 Swift 工具链),用于从源代码构建。

**注意:**SVG 导出使用 Apple 的私有 CoreUI 目录 API 来读取矢量字形数据。 它目前可在 macOS 上运行,但没有文档说明,且未来的操作系统版本可能会更改此 API。


安装

Homebrew + Mint

Mint 可直接从 Git 仓库安装 Swift 命令行工具:

brew install mint
mint install svedm/sfsymbols-mcp

此操作会将 sfsymbols-mcp 构建并链接到 Mint 的 bin 目录(通常为 ~/.mint/bin,如果运行 mint link,则为 /usr/local/bin)。你也可以不安装,直接运行:

mint run svedm/sfsymbols-mcp sfsymbols-mcp list --limit 10
从源代码构建
git clone https://github.com/svedm/sfsymbols-mcp.git
cd sfsymbols-mcp
swift build -c release

生成的二进制文件位于 .build/release/sfsymbols-mcp。你也可以选择将它复制到 PATH 中:

cp "$(swift build -c release --show-bin-path)/sfsymbols-mcp" /usr/local/bin/

CLI 用法

此可执行文件有四个子命令。不带参数运行时会启动 MCP 服务(默认子命令为 serve)。

列出符号
sfsymbols-mcp list                 # print every symbol name
sfsymbols-mcp list --limit 20      # print the first 20

总数会写入 stderr;名称会写入 stdout(每行一个)。

搜索符号
sfsymbols-mcp search heart         # by name / keyword / alias
sfsymbols-mcp search weather --limit 10

结果按以下顺序排序:完全匹配的名称、前缀匹配、子串匹配,最后是关键词/别名匹配。

导出为 SVG
# Print SVG to stdout
sfsymbols-mcp export heart.fill

# Save to a file
sfsymbols-mcp export star.fill --output star.svg

# Pick a weight and fill color
sfsymbols-mcp export gearshape.fill --weight bold --fill "#1D1D1F" -o gear.svg

选项:

选项值默认值
--weightultralight、thin、light、regular、medium、semibold、bold、heavy、blackregular
--point-size任意数字(控制轮廓的坐标比例)100
--fill任意 SVG 颜色,例如 currentColor、#FF0000、blackcurrentColor
--output、-o文件路径;如果省略,则将 SVG 输出到 stdout—

SVG 的 viewBox 为符号的固有边界框,且 fill 默认为 currentColor,因此将其嵌入 HTML 或其他 SVG 时,会继承周围文本的颜色。


MCP 服务

通过 stdio 启动服务:

sfsymbols-mcp serve
# or simply:
sfsymbols-mcp
将其添加到 Claude Code(claude CLI)

最简单的方法——只需一条命令。如果二进制文件不在 PATH 中,请使用完整路径:

claude mcp add sfsymbols -- /usr/local/bin/sfsymbols-mcp serve

如果通过 Mint 安装,可使用以下命令获取准确路径:

mint which sfsymbols-mcp

这只会为当前项目注册服务(默认的 local 范围)。若要让所有项目都能使用,请添加 --scope user:

claude mcp add --scope user sfsymbols -- /usr/local/bin/sfsymbols-mcp serve

使用以下命令检查并移除服务:

claude mcp list              # see registered servers
claude mcp get sfsymbols     # see details for this one
claude mcp remove sfsymbols  # remove it

然后启动 claude;在会话中运行 /mcp,确认 sfsymbols 服务已连接。

通过配置文件添加

更喜欢编辑文件?在项目根目录中创建 .mcp.json(这是 Claude Code 读取的项目范围配置,你可以提交该文件以便与团队共享):

{
  "mcpServers": {
    "sfsymbols": {
      "command": "/usr/local/bin/sfsymbols-mcp",
      "args": ["serve"]
    }
  }
}

同一份 JSON 也适用于其他 MCP 客户端,例如 Claude Desktop 的 claude_desktop_config.json。

工具
工具参数返回值
list_symbolslimit(int,可选)、offset(int,可选)JSON:total、offset、count、symbols[]
search_symbolsquery(string,必填)、limit(int,可选)JSON:query、count、symbols[]
export_symbolname(string,必填)、weight(string,可选)、point_size(number,可选)、fill(string,可选)SVG 文档文本

错误(未知符号、缺少参数)会作为工具结果返回,并带有 isError: true。


工作原理

  • 列出 / 搜索读取以下位置的系统目录 plist 文件: /System/Library/CoreServices/CoreGlyphs.bundle/Contents/Resources/ (name_availability.plist、symbol_search.plist、name_aliases.strings)。
  • 导出通过 CoreUI 的 CUICatalog 加载 SF Symbols 资源目录(Assets.car),请求指定字重的命名矢量字形,读取其 CGPath,并将路径序列化为 SVG <path> 数据。CoreUI 路径本身已采用 SVG(Y 轴向下)方向,因此不会进行坐标翻转。

开发

swift build      # debug build
swift test       # run the test suite

许可证

SF Symbols 本身由 Apple 提供,并受 Apple 的许可条款约束。此工具仅读取 Mac 上已有的目录,不会重新分发 Apple 的资源。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。