Skip to main content
Glama
SolarLLM

Solar Human Proofreader

Official
by SolarLLM

Solar Human Proofreader

MCP-сервер, который возвращает рукопись, над которой поработал живой редактор красной ручкой. Вычитывает корейский текст, чтобы его было легко читать. Upstage Solar Pro 4 правит предложения, а код проверяет, остались ли на месте факты, цитаты и стиль. Ничего не добавляет и не убирает.

Это серверный MCP для развёртывания на Vercel. До 100 вызовов в день бесплатно, дальше — по своему ключу (BYOK).


Что в нём отличается

Это не инструмент для снятия «ИИ-налёта». Это инструмент, который убирает места, где читатель вынужден перечитать текст. Поэтому и порядок работы не «обнаружить и заменить», а повторяет действия человека-редактора.

Шаг

Кто

Что делает

1. Сквозное чтение

код

сначала измеряет длину предложений, растянутость, следы перевода, пассивы и штампы, ритмические отклонения

2. Заключение

Solar

читает то, чего не видно по цифрам — обрывы логики, пересекающиеся абзацы, мёртвый ритм

3. Правка

Solar

правит только те места, на которые указано в заключении

4. Сверка

код

сравнивает с оригиналом — ловит новые слова, изменённые цитаты, повёрнутый не-так стиль

5. Доправка

Solar

локально исправляет только то, что зацепила сверка

Модель не спрашивают «расскажи, сколько ты исправила». Потому что модель, которая оценивает свой только что написанный текст, всегда сама себе потакает. Доля изменений, сохранение цифр, сверка цитат и определение стиля — всё это считает код. На одинаковом входе всегда получается одинаковое заключение.

Принципы редактуры

  • Принцип красной ручки — нельзя переформулировать причину правки одним предложением — не трогаем.

  • Лучше убрать, чем добавить — хорошая правка не заполняет. Объём вышепел — срабатывает предупреждение.

  • Голос автора не трогаем — перевернуть стиль (например, полуформальный «한다체» в официальный «합소체») — тоже переделка. Если стиль повернут не Virce — приём блокируется.

  • Факты неизменны — если появляется хоть одно слово или цифра, которых не было в оригинале, эту правку не принимаем.


Инструменты

Инструмент

Что делает

Стоимость

proofread

откликается на свидание — «прогоняет» рукопись и возвращает исправленный вариант. Основной инструмент.

1~3 вызов

read_through

не правит, а только даёт заключение, почему текст трудно читается.

1 вызов

readability

измеряет длину предложения, ввязательность, пассив, ритм оценкой 0~100

бесплатно

compare

сверяет оригинал и правку, ловит искажения. Можно проверять и текст, исправленный другой моделью.

бесплатно

suggest

переписывает одно место различными альтернативами в разных ключах.

1 вызов

usage

показывает, сколько бесплатных вызовов осталось.

бесплатно

Параметры proofread

Параметр

Описание

text

текст для правки (до 20 000 знаков)

genre

칼нем, 리포트, 블로그, 뉴스레터, 공적, 에세이, 자동 (по умолчанию)

strength

보수(≈10%), 기본(15~25%), 적침(~35%). Если не задано — подбирается по состоянию текста

depth

light (1 вызов), standard (2 вызова), deep (3 вызова), auto (по умолчанию)

audience

читатель. Напр.: 비전공 임원

instructions

отдельное пожелание. Напр.: 마지막 단락은 짧게

preserve

списки, где не должен измениться ни один символ. Можно принудительно, при сверке


Как подключить

Клиентам, поддерживающим 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, мы дополнительно отдаём машинный текст. Оба пути передают фактический адрес развёртки из заголовка запроса, поэтому не заметишь подставленный плейсхолдер.

Путь

Что это

/llms.txt

прозная инструкция: команды установки для каждого клиента, список инструментов, правила лимита и BYOK, способ вернуть результат

/mcp.json

то же, но структурным манифестом. Есть готовы тела для вставки в настройку

*Подключение
После строки заголовка клиента вставьте 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

X-Upstage-Api-Key

прямая работа — Upstage (api.upstage.ai, модель solar-pro4)

https://console.upstage.ai

X-OpenRouter-Api-Key

через OpenRouter (модель upstage/solar-pro4)

https://openrouter.ai/keys


Запуск напрямую

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/mcp
vercel deploy --prod

Переменные окружения

Переменная

Описание

OPENROUTER_API_KEY / UPSTAGE_API_KEY

серверный ключ для free-плана. подходит любой

FREE_DAILY_LIMIT

дневной лимит бесплатных вызовов (по умолчанию 100)

UPSTASH_REDIS_REST_URL / _TOKEN

хранилище счетчиков лимитов. Если не задано — approximate через память одной инстанции, и другие ответы это принесут

QUOTA_SALT

«соль» к хэшу идентификатора использования. На каждой развёртке — своя.

MAX_INPUT_CHARS

максимум символов на один входящий запрос (по умолчанию 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).

Что ловит снег сверки

Код

вердикт

вердикт

content_injected

не принять

без рукописи появилось следование

number_injected

не принять

появилась проблема

quote_alt

не принять

прямая цитата не осталась стены

register_switched

не принять

сменный стиль (например «역» → «합»)

preserve_broken

не принять

изменились все сохранённые предложения

over_edited

не принять

показатель 50% и больше — не правка, а переписать

heavy_edit

warning

30~50%

cliche_injected

warning

создан новый клише

register_raised / colloquial_erased

warning

повышенный регистр / исчисление разговор

heading_lost · length_grown

warning

пропал подзаголовок / ошибка предупреждение 15%+

new_terms · number_dropped

наблюдение

что появилось / что потерялось — показать список, не блокировать

Вставку целого предложения ворота блокируют. При изменённых нескольких словах внутри предложения не блокируется — дается в списке new_terms. Правка — это качество замены слов, поэтому если блокировать такое, пойдёт ведро ложных сообщений. В на фото этот список поймал тихое добавление уточнений похоже: «по сравнению со старой» → «по сравнению с понятием такого же масштаба».

``


Спасибо

Мы взяли из epoko77-ai/im-not-ai постановку вопроса о «следе ИИ» в корейском тексте и модель классификации стиля. Код не заимствован, написан с нуля. Этот сервер — отдельный дизайн с акцентом не на «снятие И”-следа», а «на удобство чтения».

Лицензия

MIT

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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