字体服务协议

高性能的macOS字体发现、网页字体转换和云发布服务协议,具备异步操作、智能缓存和生产级错误处理功能。

  • by akari2600
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 akari2600/macos-fonts-mcp

使用说明

macOS字体MCP服务器(v0.2)

用于macOS字体发现、webfont转换和云发布的高性能模型上下文协议(MCP)服务器。内置异步/等待、全面缓存和生产就绪错误处理。

✨ 特性

核心工具

  • list_families() -使用缓存枚举所有macOS字体系列
  • faces_for_family({ "family": "..." }) -获取详细的字体信息
  • font_overview({ "postScriptName": "..." }) -Font Book样式元数据概述
  • publish_font({ "postScriptName": "...", "convert": {...}, "publish": {...} }) -完整的字体发布流程

性能和可靠性

  • ⚡ 异步操作:所有字体处理都用 asyncio.to_thread()
  • 🚀 智能缓存:字体元数据和系列列表的多级缓存
  • 🔍 O(1)查询:用于即时字体分辨率的PostScript名称索引
  • 🔄 S3重试逻辑:连接池的指数回退
  • 🧹 自动清理:生成的文件和缓存的后台清理
  • 📊 结构化日志记录:JSON日志记录,具有全面的错误跟踪功能

生产就绪

  • ✅ 输入验证:所有工具输入的Pydantic模型
  • 🛡️ 错误处理:优雅的降级,详细的错误报告
  • 🧪 综合测试:单元和集成测试覆盖率
  • 📈 资源管理:具有清理功能的内存高效字体处理

🚀 快速开始

# Setup environment
python3 -m venv .venv
source .venv/bin/activate

# Upgrade pip and install build tools
pip install --upgrade pip setuptools wheel

# Install with development tools
pip install -e .[dev]

# Run all checks
make check

# Start the server
make run

替代安装方法

紫外线(如有):

uv venv
source .venv/bin/activate
uv sync --all-extras  # installs all dependencies including dev extras

使用需求文件:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt

仅生产:

pip install -e .
# or
pip install -r requirements.txt

🛠️ 发展

# Setup development environment
make setup-dev

# Run tests with coverage
make test-coverage

# Format and lint code
make format
make lint

# Type checking
make type-check

# Clean up generated files
make clean

📊 发布工作流

这 publish_font 该工具提供了一个完整的管道:

  1. 字体分辨率 -通过索引缓存快速查找PostScript名称
  2. 可选处理 -子集、可变字体实例化、提示下拉
  3. WOFF2转换 -行业标准web字体生成
  4. S3上传 -具有重试逻辑的可靠云存储
  5. CSS生成 -生产就绪@font-face规则
  6. 示例HTML -即时预览生成

🏗️ 建筑

  • 异步优先设计:所有操作的非阻塞I/O
  • 分层缓存:内存缓存+PostScript索引+S3重复数据删除
  • 资源清理:自动清理临时文件和内存
  • 错误恢复:具有回退策略的全面错误处理
  • 生产测井:用于监控和调试的结构化JSON日志

🔧 故障排除

安装问题

“pip install-e.[dev]”不起作用:

# Try upgrading pip first
pip install --upgrade pip setuptools wheel
pip install -e .[dev]

# Or use requirements files
pip install -r requirements-dev.txt

# Or install dependencies separately
pip install -e .
pip install pytest pytest-asyncio pytest-mock pytest-cov rich loguru mypy black isort flake8

非macOS系统上缺少PyObjC: 服务器需要macOS和PyObjC框架。对于其他系统的开发:

# Install without macOS-specific dependencies
pip install mcp fonttools boto3 pydantic pytest

虚拟环境问题:

# On Ubuntu/Debian, install venv support
sudo apt install python3-venv python3-pip

# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate

运行时问题

CoreText导入错误: 这在非macOS系统上是预期的。该服务器仅设计为在macOS上运行。

S3上传失败: 确保配置了AWS凭据:

aws configure
# or set environment variables
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret