Token导航 LogoToken导航TokenDH.com
Fontlab MCP Server logo
设计创作stdio官方级别未说明来源级核验

Fontlab MCP Server

MCP Server

FontLab MCP服务器通过Model Context Protocol提供对FontLab PythonQt API的编程访问,使AI助手能够进行字体设计和操作。

工具数

0

提示词数

0

GitHub Stars

5

资源数

0
PythonClaude设计Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Dithilli

提供方

Dithilli

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv venv

详细介绍

FontLab MCP 服务器

一个模型上下文协议(MCP)服务器,提供对FontLab的PythonQt API的程序化访问,使Claude和其他AI助手能够与FontLab进行交互,以进行字体设计和操作。

概述

这款MCP服务器将模型上下文协议与FontLab强大的字体编辑功能相连接,使您能够:

  • 查询字体元数据和字形信息
  • 通过编程创建和修改字形
  • 应用变换(缩放、旋转、平移)
  • 将字体导出为多种格式
  • 自动化字体设计工作流程

建筑

┌─────────────────┐
│   Claude/MCP    │
│     Client      │
└────────┬────────┘
         │ MCP Protocol (stdio)
         │
┌────────▼────────┐
│  FontLab MCP    │
│     Server      │
│  (Python)       │
└────────┬────────┘
         │ Script Execution
         │
┌────────▼────────┐
│    FontLab      │
│   Application   │
│  (PythonQt API) │
└─────────────────┘

服务器采用桥接模式在FontLab环境中执行Python脚本,通过临时文件和JSON序列化进行通信。

特点

资源(只读操作)

  • fontlab://font/current - 获取当前字体信息
  • fontlab://font/current/glyphs - 列出所有字形
  • fontlab://font/info - 获取详细的字体元数据
  • fontlab://glyph/{name} - 获取特定字形的详细信息

工具(写入操作)

  • create_glyph - 使用自定义参数创建新字形
  • modify_glyph_width - 调整字形宽度
  • transform_glyph - 应用缩放、旋转和平移
  • update_font_info - 修改字体元数据
  • export_font - 导出为OTF、TTF、WOFF、WOFF2、UFO格式
  • delete_glyph - 从字体中移除字形

安装

先决条件

  • Python 3.10或更高版本
  • 已安装 FontLab 7 或 8
  • pip 包管理器

设置

  1. 克隆此仓库:
   git clone https://github.com/dithilli/fontlab-mcp-server.git
   cd fontlab-mcp-server
  1. 创建一个虚拟环境(推荐):
   python3 -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
   pip install -r requirements.txt
  1. 安装该软件包:
   pip install -e .

配置

服务器会自动检测标准位置中的 FontLab 安装:

  • macOS: /Applications/FontLab 8.app 或者 /Applications/FontLab 7.app
  • 在桥接初始化时可以配置自定义路径

用法

运行服务器

使用stdio传输方式启动服务器:

python -m src.server

或者使用已安装的命令:

fontlab-mcp-server

克劳德桌面配置

添加到你的Claude桌面配置文件中(~/Library/Application Support/Claude/claude_desktop_config.json (在 macOS 上):

{
  "mcpServers": {
    "fontlab": {
      "command": "/path/to/venv/bin/python",
      "args": ["-m", "src.server"],
      "cwd": "/path/to/fontlab-mcp-server"
    }
  }
}

与Claude的示例用法

配置完成后,您可以要求Claude:

查询字体信息:

“FontLab中当前打开了哪些字体?”

创建字形:

“创建一个名为‘customA’的新字形,宽度为650”

修改字形:

“将‘A’字形在水平方向上按1.2倍缩放”

导出字体:

“将当前字体导出为OTF格式,保存到~/Desktop/myfont.otf”

API 参考文档

资源

获取当前字体

URI: fontlab://font/current
Returns: JSON with font metadata

列出字形

URI: fontlab://font/current/glyphs
Returns: Array of glyph objects with names, unicodes, and widths

获取字形详细信息

URI: fontlab://glyph/{name}
Parameters:
  - name: Glyph name (e.g., "A", "space", "Agrave")
Returns: Detailed glyph information including bounds and contours

工具

创建图形字符(或:生成字形)

{
  "name": "glyph_name",
  "unicode": 65,  // optional
  "width": 600    // optional, default 600
}

修改字形宽度

{
  "name": "glyph_name",
  "width": 650
}

转换字形

{
  "name": "glyph_name",
  "scale_x": 1.2,      // optional, default 1.0
  "scale_y": 1.0,      // optional, default 1.0
  "rotate": 45,        // optional, default 0 (degrees)
  "translate_x": 10,   // optional, default 0
  "translate_y": 0     // optional, default 0
}

更新字体信息

{
  "family_name": "My Font Family",  // optional
  "style_name": "Bold",             // optional
  "version": "1.0",                 // optional
  "copyright": "Copyright 2025"     // optional
}

导出字体

{
  "path": "/path/to/output.otf",
  "format": "otf"  // optional: otf, ttf, woff, woff2, ufo
}

删除字形

{
  "name": "glyph_name"
}

发展

项目结构

fontlab-mcp-server/
├── src/
│   ├── __init__.py           # Package initialization
│   ├── server.py             # Main MCP server
│   ├── fontlab_bridge.py     # FontLab communication bridge
│   ├── resources.py          # Resource handlers
│   ├── tools.py              # Tool handlers
│   └── utils/                # Utility functions
├── scripts/                  # FontLab executor scripts
├── tests/                    # Unit tests
├── pyproject.toml            # Package configuration
├── requirements.txt          # Python dependencies
└── README.md                 # This file

测试

运行测试:

pytest tests/

做出贡献

欢迎投稿!请:

  1. 克隆仓库
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

限制与注意事项

  • 服务器要正常运行,必须启动FontLab
  • 脚本执行使用子进程通信,这可能会产生延迟
  • 某些FontLab功能可能需要特定版本(7或8)
  • 这座桥假设FontLab CLI能够接受 -script 标志(可能需要调整)

路线图

未来的改进:

  • \[ \] 支持组件操作
  • \[ \] 字距表操作
  • \[ \] OpenType 特性编辑
  • \[ \] 批处理字形操作
  • \[ \] 实时事件流
  • \[ \] 更好的错误处理和验证
  • \[ \] 支持多种开放字体
  • \[ \] 撤销/重做功能

许可证

MIT 许可证 - 查看 许可证 文件详情请见附件/文件

致谢

支持

如需咨询问题、提出疑问或贡献内容,请访问:

  • GitHub:
  • FontLab API 文档:

______________________________________________________________________

版本: 0.1.0 作者 大卫·萨尔津斯基 状态: Alpha - 最有价值球员(MVP)实施

目录标签

目录标签

PythonClaude设计字体设计本地部署自动化工具PythonAPIAI集成字体操作

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP