MCP Typography Audit Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Typography Audit Server audit this HTML for justified text in Russian at 700px width"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Typography Audit Server
Сервер протокола Model Context Protocol (MCP), позволяющий AI-агентам (Claude, Cursor, Windsurf и др.) выполнять полиграфический аудит вёрстки и проверять вёрстку с книжным выравниванием текста по алгоритму Кнута — Пласса (как в издательской системе $\mathrm{\TeX}$).
Ядро проекта: Вся логика высокоточной веб-типографики, переносов и микровыравнивания базируется на библиотеке Justif от Lyall Cooper. Данный MCP-сервер переносит её возможности в автономную среду headless-браузера Playwright для работы с AI-агентами.
📖 Возможности
Книжная типографика для агента: Реализация алгоритма Кнута — Пласса (Knuth-Plass line breaking) устраняет построчные «реки» пробелов, выравнивает полосу набора, включает микротипографику и висячую пунктуацию.
Поддержка переносов (Hyphenation): Корректные переносы длинных слов по слогам (включая русский язык
ruи английскийen-us).Визуальная обратная связь (Vision-in-the-loop): Сервер отдаёт скриншот страницы прямо в формате MCP
image/png. Мультимодальные модели (Claude 3.5/3.7, GPT-4o) могут визуально оценить вёрстку и скорректировать CSS.Анализ разметки: Автоматический перехват ошибок JavaScript в консоли браузера, проверка наличия обязательного атрибута
langи тест адаптивности под разную ширину контейнера.
Related MCP server: Browser Intelligence MCP
🛠️ Установка и сборка
1. Клонирование и установка зависимостей
git clone https://github.com/kobaltgit/mcp-typography-server.git
cd mcp-typography-server
# Установка NPM-зависимостей
npm install
# Установка браузера Chromium для Playwright (обязательно)
npx playwright install chromium2. Сборка проекта
npm run buildКоманда компилирует TypeScript в исполняемый JavaScript-файл в папке dist/index.js.
🧪 Тестирование сервера
Вариант 1. Интерактивная проверка через MCP Inspector
MCP Inspector — официальный веб-интерфейс для отладки MCP-инструментов.
Запустите инспектор из корня проекта:
npx @modelcontextprotocol/inspector node dist/index.jsОткройте в браузере ссылку, которую выведет терминал (вида
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...).В интерфейсе:
Убедитесь, что статус соединения — Connected (зелёный индикатор).
Перейдите во вкладку Tools и нажмите List Tools.
Выберите инструмент
audit_typography.
Заполните тестовые поля:
lang:ruwidth:700html:<h2>Проверка типографики Кнута — Пласса</h2> <p> «Качественный набор текста — это баланс между формой и смыслом», — писали классики графического дизайна. В обычном браузере стандартное выравнивание по ширине часто создает неприятные белые пустоты («реки в наборе»), которые сильно утомляют глаз читателя. </p> <p> Библиотека Justif применяет алгоритм из типографской системы TeX. Сложные составные слова, такие как <em>высококвалифицированный</em>, <em>сельскохозяйственный</em> или <em>достопримечательность</em>, делятся строго по правилам русской орфографии. </p>
Нажмите Run Tool. В окне появится отчёт по разметке и скриншот отрендеренной страницы с идеальным выравниванием.
Вариант 2. Автоматический тест через скрипт (test.js)
Запустите тестовый клиент в терминале:
node test.jsСкрипт подключится к серверу через stdio, выполнит тестовый запрос и сохранит результат в файл test-result.png в корне проекта.
🔌 Подключение к AI-клиентам
1. Claude Desktop
Откройте файл конфигурации:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Добавьте конфигурацию сервера:
macOS / Linux:
{
"mcpServers": {
"typography-auditor": {
"command": "node",
"args": [
"/абсолютный/путь/к/mcp-typography-server/dist/index.js"
]
}
}
}Windows:
(Обратите внимание на экранирование обратных слэшей \\):
{
"mcpServers": {
"typography-auditor": {
"command": "node",
"args": [
"C:\\path\\to\\mcp-typography-server\\dist\\index.js"
]
}
}
}2. Cursor / Windsurf
В корне вашего разрабатываемого веб-проекта создайте или отредактируйте файл .cursor/mcp.json:
{
"mcpServers": {
"typography-auditor": {
"command": "node",
"args": [
"/абсолютный/путь/к/mcp-typography-server/dist/index.js"
]
}
}
}🤖 Пример использования с агентом
После подключения инструмента агенту доступен тул audit_typography.
Пример промпта:
«Сверстай мне адаптивный блок статьи о пользе чтения на русском языке. Примени алгоритм Justif для выравнивания по ширине. Проверь вёрстку через инструмент
audit_typographyна ширине 375px (мобилка) и 750px (десктоп). Если на скриншоте увидишь неудачные переносы или разрывы строк — скорректируй стили».
Что произойдёт под капотом:
Агент генерирует HTML/CSS код.
Вызывает
audit_typographyс кодом статьи.Сервер через Playwright рендерит страницу, применяет Justif и делает скриншот.
Агент получает скриншот, анализирует его с помощью Vision и отдаёт вам проверенный результат.
🙏 Основа проекта и благодарности (Credits)
Этот MCP-сервер был бы невозможен без проекта:
Justif — автор Lyall Cooper. Великолепная реализация алгоритма Кнута — Пласса, микротипографики и оптического выравнивания полей для современного веба.
⚠️ Частые вопросы и отладка
Ошибка | Причина | Решение |
| Не скачан браузер Chromium | Выполните команду |
| Особенности типизации ES-модулей | Убедитесь, что в |
Сервер не отвечает или ломается JSON-RPC | Вывод лишнего текста в | В коде сервера для логов используйте только |
📄 Лицензия
MIT
Available Tools
1 toolaudit_typographyB
Рендерит HTML-код, применяет Justif (алгоритм Кнута-Пласса) и возвращает скриншот с аудитом верстки
Inputs: html (required), lang, width.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
With only a single tool in the set, there is no possibility of confusing it with another tool. Its purpose (render HTML, apply Knuth-Plass justification, return a layout audit screenshot) is uniquely identifiable.
There is only one tool, so no naming pattern can be violated. The single name 'audit_typography' follows a clean verb_noun convention.
A single tool is too thin for what appears to be an auditing domain — there is no way to configure rendering, retrieve detailed findings, or target specific elements. One monolithic tool that does render+justify+screenshot is under-scoped.
The surface offers one all-in-one operation with no companion tools for configuration, structured result retrieval, or targeted checks. Agents needing anything beyond a single screenshot audit (e.g. per-element diagnostics or custom width/font inputs) hit a dead end.
Maintenance
Related MCP Connectors
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
Screenshot, PDF and Open Graph image API for AI agents: capture pages, render PDFs, make OG images.
Render-and-verify API: HTML/CSS to image or PDF, screenshot any URL, confirm the text rendered.
Website checker for AI coding agents. Measures your site in a real browser, with evidence.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables CSS layout verification and debugging by extracting deterministic, diffable rendered layout from a browser, allowing agents to inspect, explain, and diff CSS changes.8 npm2MIT
- AlicenseAqualityBmaintenanceEnables AI agents to capture screenshots, scrape structured page content, and run automated visual checks on live websites via a headless Chromium browser.3MIT
- AlicenseNot gradedqualityCmaintenanceProvides AI clients with deterministic Playwright-driven browser control, enabling navigation, interaction, screenshots, and inspection of rendered HTML, computed styles, console diagnostics, and font audits without an embedded LLM or API key.MIT
- AlicenseNot gradedqualityBmaintenanceEnables coding agents to inspect rendered web layouts as compact text measurements from headless Chromium, without needing screenshots.70 npmMIT