font-subset-mcp
v1.0.0
Published
Local font subsetting & conversion MCP server — subset TTF/OTF/WOFF/WOFF2 by characters, convert formats, generate CSS @font-face
Maintainers
Readme
font-subset-mcp
本地字体子集裁剪 & 格式转换 MCP 服务,参考 transfonter.org 功能实现。 完全在本地运行,无需上传文件到外部服务。
快速开始
方式一:通过 npx 运行(推荐)
无需安装,直接在 ~/.cursor/mcp.json 中添加:
{
"mcpServers": {
"font-converter": {
"command": "npx",
"args": ["-y", "font-subset-mcp"],
"env": {}
}
}
}方式二:全局安装后运行
npm install -g font-subset-mcp在 ~/.cursor/mcp.json 中添加:
{
"mcpServers": {
"font-converter": {
"command": "font-subset-mcp",
"args": [],
"env": {}
}
}
}提供的工具
| 工具名 | 功能 |
|--------|------|
| query_font_info | 查询字体元数据(字族名、字形数、文件大小等) |
| subset_font_by_characters | 按输入字符裁剪字体,极大减小体积 |
| convert_font_format | 字体格式转换(TTF ↔ WOFF ↔ WOFF2) |
| generate_font_face_css | 生成 CSS @font-face 规则(支持 base64 内联) |
| batch_subset_fonts | 批量裁剪多个字体文件 |
支持格式
- 输入:
.ttf.otf.woff.woff2 - 输出:
ttfwoffwoff2
使用示例
在 Cursor 对话中直接说:
查询字体信息:/Users/ls/fonts/MyFont.ttf
裁剪字体 /Users/ls/fonts/AlimamaShuHeiTi-Bold.ttf
只保留:你好世界阿里妈妈字体ABC0123456789
输出格式:ttf
为 /Users/ls/fonts/MyFont.ttf 生成 CSS @font-face,font-family 名称:MyFont发布到 npm
# 构建
npm run build
# 登录 npm
npm login
# 发布
npm publish本地开发
npm install
npm run build # 编译 TypeScript
npm start # 直接运行性能参考
以阿里妈妈字体(7029 字形,1343 KB)裁剪 30 个常用汉字:
| 指标 | 数值 | |------|------| | 原始大小 | 1343 KB | | 子集大小 | ~5 KB | | 体积减少 | ~99% | | 处理时间 | < 1 秒 |
