Solar Human Proofreader
OfficialSolar Human Proofreader
MCP-сервер, который возвращает рукопись, над которой поработал живой редактор красной ручкой. Вычитывает корейский текст, чтобы его было легко читать. Upstage Solar Pro 4 правит предложения, а код проверяет, остались ли на месте факты, цитаты и стиль. Ничего не добавляет и не убирает.
Это серверный MCP для развёртывания на Vercel. До 100 вызовов в день бесплатно, дальше — по своему ключу (BYOK).
Что в нём отличается
Это не инструмент для снятия «ИИ-налёта». Это инструмент, который убирает места, где читатель вынужден перечитать текст. Поэтому и порядок работы не «обнаружить и заменить», а повторяет действия человека-редактора.
Шаг | Кто | Что делает |
1. Сквозное чтение | код | сначала измеряет длину предложений, растянутость, следы перевода, пассивы и штампы, ритмические отклонения |
2. Заключение | Solar | читает то, чего не видно по цифрам — обрывы логики, пересекающиеся абзацы, мёртвый ритм |
3. Правка | Solar | правит только те места, на которые указано в заключении |
4. Сверка | код | сравнивает с оригиналом — ловит новые слова, изменённые цитаты, повёрнутый не-так стиль |
5. Доправка | Solar | локально исправляет только то, что зацепила сверка |
Модель не спрашивают «расскажи, сколько ты исправила». Потому что модель, которая оценивает свой только что написанный текст, всегда сама себе потакает. Доля изменений, сохранение цифр, сверка цитат и определение стиля — всё это считает код. На одинаковом входе всегда получается одинаковое заключение.
Принципы редактуры
Принцип красной ручки — нельзя переформулировать причину правки одним предложением — не трогаем.
Лучше убрать, чем добавить — хорошая правка не заполняет. Объём вышепел — срабатывает предупреждение.
Голос автора не трогаем — перевернуть стиль (например, полуформальный «한다체» в официальный «합소체») — тоже переделка. Если стиль повернут не Virce — приём блокируется.
Факты неизменны — если появляется хоть одно слово или цифра, которых не было в оригинале, эту правку не принимаем.
Инструменты
Инструмент | Что делает | Стоимость |
| откликается на свидание — «прогоняет» рукопись и возвращает исправленный вариант. Основной инструмент. | 1~3 вызов |
| не правит, а только даёт заключение, почему текст трудно читается. | 1 вызов |
| измеряет длину предложения, ввязательность, пассив, ритм оценкой 0~100 | бесплатно |
| сверяет оригинал и правку, ловит искажения. Можно проверять и текст, исправленный другой моделью. | бесплатно |
| переписывает одно место различными альтернативами в разных ключах. | 1 вызов |
| показывает, сколько бесплатных вызовов осталось. | бесплатно |
Параметры proofread
Параметр | Описание |
| текст для правки (до 20 000 знаков) |
|
|
|
|
|
|
| читатель. Напр.: |
| отдельное пожелание. Напр.: |
| списки, где не должен измениться ни один символ. Можно принудительно, при сверке |
Как подключить
Клиентам, поддерживающим Streamable HTTP (Claude Code, Cursor и т. п.), достаточно указать URL.
{
"mcpServers": {
"human-proofreader": {
"url": "https://<your-deployment>.vercel.app/api/mcp"
}
}
}Claude Code — одно строчка:
claude mcp add --transport http human-proofreader https://<your-deployment>.vercel.app/api/mcpКлиентам со stdio нужно npx -y mcp-remote <url>.
Готовый отладкиИИ
Чтобы можно было развернуть сервер, просто дав адрес URL, мы дополнительно отдаём машинный текст. Оба пути передают фактический адрес развёртки из заголовка запроса, поэтому не заметишь подставленный плейсхолдер.
Путь | Что это |
| прозная инструкция: команды установки для каждого клиента, список инструментов, правила лимита и BYOK, способ вернуть результат |
| то же, но структурным манифестом. Есть готовы тела для вставки в настройку |
*Подключение
После строки заголовка клиента вставьте URL:
Бесплатные 100 вызовов, дальше — свой ключ
Лимит free в сутки считается в единицах одного вызова Solar. Если один proofread превращается в вызов чтения + вызов правки, списывается 2 вызова. Если считать по числу вызовов инструмента, одинаковый лимит будет отличаться у разных людей в разы, и те, кто пишут, не смогут не про него посчитать — ни клиент, ни провайдер. readability и compare не вызывают Solar, поэтому не списывают лимит. Счет сбрамывается в KST nighttime.
Чтобы продолжить работу после лимита, используйте свой ключ в заголовке, а не в аргументе инструмента: аргумент мог бы остаться открытым текстом в истории диалога клиента.
{
"mcpServers": {
"human-proofreader": {
"url": "https://<your-deployment>.vercel.app/api/mcp",
"headers": {
"X-Upstage-Api-Key": "up_..."
}
}
}
}Заголовок | path | key |
| прямая работа — Upstage ( | |
| через OpenRouter (модель |
Запуск напрямую
git clone https://github.com/SolarLLM/human-proofreader-mcp
cd human-proofreader-mcp && npm install
cp .env.example .env.local # OPENROUTER_API_KEY 또는 UPSTAGE_API_KEY 를 채운다
npm run dev # http://localhost:3000/api/mcpvercel deploy --prodПеременные окружения
Переменная | Описание |
| серверный ключ для free-плана. подходит любой |
| дневной лимит бесплатных вызовов (по умолчанию 100) |
| хранилище счетчиков лимитов. Если не задано — approximate через память одной инстанции, и другие ответы это принесут |
| «соль» к хэшу идентификатора использования. На каждой развёртке — своя. |
| максимум символов на один входящий запрос (по умолчанию 20000) |
Без Redis тоже работает, но serverless — это множество инстансов, поэтому лимития становится приблизительным. Чтобы честно держать фактический круг вызовов, подключите Upstash Redis.
План Vercel и depth: на Hobby окружение убивается через 60 секунд. deep (3 вызова) может подолеть такую и для длинного текста. В Hobby лучше до standme или через Pro (до 300 секунд).
Разработка
npm test # 결정적 계층(가독성·대조·변경률) 회귀 테스트
npm run typecheckТестов, которые вызывают LLM, мы не пишем. Зато тестируем весь код, который выносит решение — потому что самый опасный отказ сервера — это ворота, тихо пропускающие результат.
Хочешь посчитать разницу
Как сильно текст «попрален» — общепринятое значение для определения переработки. Если считать по словоформам, при замене одной частицы всё слово подкатится как «изменилось», и цифра в два раза вырос (измедини: 22,8% по символам → 46,9% по словам). Поэтому считаем по символам.
Полностью отказались от метода «сравнивать предложение с предложением / абзац с абзацем». Нормальная правка: разбивает длинные предложения, связывает короткое, перерезает абзац. Каков ни — 1:1 не получается: такое разбиение и сливание считтся «несовпадением», и нормальная правка выглядит как переписывание (замер: объявление, где было четыре абзаца, дало 75% — на самом деле 27%).
LCS, применяемое прямо ко всему тексту — и точно, и предельно дёшево: 20 000 знаков против 20 000 — 1.1 секунд. При том, что один вызов Solar занимает далеко 20+ с, это можно пренебречь. Результат совпадает с символьной версией Python difflib (замер: 0,228 = 0,228; 0,680 = 0,68).
Порог — предупреждение 30% · стоп 50%. В корейском языке есть частицы и смысловые слоги, так что даже совершенно другое содержание — 0,650,70 — дно. Стоп 0,50 — ниже и этого дна, и ниже нормы сильной правки (0,250,45).
Что ловит снег сверки
Код | вердикт | вердикт |
| не принять | без рукописи появилось следование |
| не принять | появилась проблема |
| не принять | прямая цитата не осталась стены |
| не принять | сменный стиль (например «역» → «합») |
| не принять | изменились все сохранённые предложения |
| не принять | показатель 50% и больше — не правка, а переписать |
| warning | 30~50% |
| warning | создан новый клише |
| warning | повышенный регистр / исчисление разговор |
| warning | пропал подзаголовок / ошибка предупреждение 15%+ |
| наблюдение | что появилось / что потерялось — показать список, не блокировать |
Вставку целого предложения ворота блокируют. При изменённых нескольких словах внутри предложения не блокируется — дается в списке new_terms. Правка — это качество замены слов, поэтому если блокировать такое, пойдёт ведро ложных сообщений. В на фото этот список поймал тихое добавление уточнений похоже: «по сравнению со старой» → «по сравнению с понятием такого же масштаба».
``
Спасибо
Мы взяли из epoko77-ai/im-not-ai постановку вопроса о «следе ИИ» в корейском тексте и модель классификации стиля. Код не заимствован, написан с нуля. Этот сервер — отдельный дизайн с акцентом не на «снятие И”-следа», а «на удобство чтения».
Лицензия
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Korean ID document verification and PII masking APIs
Loads your personal writing voice into any AI and scores how closely a draft matches it.
Korean business record validation and workflow safety gates for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SolarLLM/human-proofreader-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server