Font Tools MCP

Font Tools MCP

Enables AI agents to diagnose, modify, and validate OTF/TTF fonts interactively through a set of read-only, write, and validation tools.

Category
访问服务器

README

Font Tools MCP — 설계 문서

OTF/TTF 폰트를 AI 에이전트(Claude 등)가 대화형으로 진단·수정·검증하기 위한 MCP 서버 1차 스켈레톤.

설계 원칙

  1. 모든 수정은 새 파일로 출력한다. 원본을 절대 덮어쓰지 않는다 (디자이너 워크플로우 보호).
  2. Tool은 작고 명확하게. "테이블 단위" 또는 "메트릭 단위"로 쪼갠다. 거대한 만능 도구를 만들지 않는다.
  3. 읽기/쓰기 분리. get_* / list_* 류는 사이드이펙트 없음. set_* / apply_* 는 반드시 output_path 파라미터 강제.
  4. 구조화된 반환. 에이전트가 다음 액션을 결정할 수 있도록 항상 JSON dict/list 반환. 자유 텍스트 X.
  5. 검증을 도구화. validate_font를 모든 수정 사이클의 끝에 두어 에이전트가 회귀를 자동 감지하게 한다.

Tool 카탈로그

진단 (read-only)

도구 용도
font_info 패밀리·스타일·UPM·테이블 목록·가변 폰트 여부
list_tables 포함된 SFNT 테이블 태그
dump_table_ttx 특정 테이블을 TTX(XML)로 덤프
get_name_records name 테이블 전체 레코드
get_vertical_metrics OS/2 + hhea + vhea 수직 메트릭 한 번에
list_features GSUB/GPOS feature 태그 목록

수정 (write, output_path 필수)

도구 용도
apply_ttx_patch TTX XML 패치를 병합 (가장 범용적)
set_name_record name 테이블 레코드 추가/갱신
set_vertical_metrics 수직 메트릭 변경 + sync_all 옵션으로 OS/2·hhea·vhea 일치화

검증

도구 용도
validate_font fontbakery 실행, 결과를 JSON으로 반환

학습 메모리 (RAG의 단순 버전)

도구 용도
record_case (증상, 진단, 패치 요약, 테이블) 사례 저장
find_similar_cases 키워드 매칭으로 유사 사례 검색

메모리는 1단계에서는 JSON 파일. 운영에 들어가면 memory.pysearch()만 임베딩 기반(Chroma/Qdrant)으로 교체하면 된다.

전형적인 대화 흐름

사용자: "Glyphs에서 뽑은 NotoSansKR-Bold.otf인데 InDesign에서 윗줄 간격이
        너무 뜬다. 고쳐줘."

에이전트:
 1) find_similar_cases("InDesign 행간 너무 큼")
    → 과거 사례: "OS/2 usWinAscent/Descent가 hhea와 다름" 발견
 2) get_vertical_metrics("...Bold.otf")
    → 실제로 usWinAscent=2400, hhea.ascent=1900 불일치 확인
 3) set_vertical_metrics(
        font_path=..., output_path="..._fixed.otf",
        ascender=1900, descender=-500, sync_all=True)
 4) validate_font("..._fixed.otf")
    → fontbakery 통과
 5) record_case(
        symptom="InDesign 행간 과도",
        diagnosis="OS/2 usWin* 와 hhea 불일치",
        patch_summary="sync_all로 메트릭 통일, USE_TYPO_METRICS 비트 set",
        table_tag="OS/2,hhea")

향후 확장 지점

  • subset_font (pyftsubset 래퍼) — 한자 영역 분리
  • enable_dsig — Windows 서명 자리 확보
  • add_cmap_entry / remove_cmap_entry — PUA·이모지 매핑
  • set_panose / set_unicode_range — OS/2 분류 비트
  • compare_fonts — 두 버전 diff (회귀 추적)
  • render_preview — HarfBuzz로 셰이핑 후 PNG 생성 (시각 회귀)

파일 구성

font-mcp/
├── README.md                         # 이 문서
├── server.py                         # FastMCP 진입점, tool 등록
├── font_ops.py                       # fontTools 래퍼 (실제 동작)
├── memory.py                         # 사례 저장소 (JSON → 추후 벡터 DB)
├── requirements.txt
└── claude_desktop_config.example.json

설치 & 실행

cd font-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# 단독 동작 확인
python server.py

Claude Desktop에 등록하려면 claude_desktop_config.example.json 참조.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选