article-review-mcp
article-review-mcp
Визуальное MCP-приложение для рецензирования явных патчей статьи с категоризированными комментариями.
Редактирующий агент не передаёт серверу молча переписанную рукопись. Он отправляет:
unchanged base document
+ explicit patches against that base
+ one or more categorized rationale comments per patchСервер детерминированно проверяет и применяет эти патчи, открывает интерактивный интерфейс рецензирования, фиксирует решения человека и безопасно собирает итоговую статью.
Почему патчи первичны
Полнодокументный diff может показать, что изменилось, но теряет исходное намерение агента. В этом проекте патч является атомарным объектом рецензирования:
Patch
├── exact target in the original document
├── replace / delete / insert_before / insert_after
├── proposed text
├── categorized comments explaining why
└── human decision: pending / accepted / rejected / editedКаждый комментарий имеет ровно один основной topicId. Патч может содержать несколько комментариев по разным темам.
Related MCP server: Lens
Текущие возможности
Явная отправка
PatchSetдля неизменяемого базового документаreplace,delete,insert_beforeиinsert_afterПроверка SHA-256 базового документа
Точное разрешение якорей с опциональными
contextBeforeиcontextAfterОтклонение неоднозначных якорей и перекрывающихся патчей
Обязательные категоризированные комментарии с обоснованием для каждого патча
Пользовательские таксономии тем для каждой сессии рецензирования
Вкладки тем со счётчиками патчей/комментариев по каждой теме
Два режима рецензирования по темам:
оставлять все патчи видимыми и затемнять несвязанные
показывать только патчи, содержащие выбранную тему
Раздельный, объединённый и полный итоговый виды
Подсветка вставок/удалений на уровне слов для английского и китайского языков
Принять, отклонить, сбросить, отредактировать вручную и массово вынести решение по видимым патчам
Добавлять, отвечать на, закрывать и фильтровать комментарии рецензентов
Компактная обратная связь, отфильтрованная по темам, для редактирующего агента
Неизменяемые раунды ревизий с переносом решений по точным патчам
JSON-персистентность, оптимистичная конкурентность и идемпотентность
MCP App плюс браузерный просмотрщик на localhost, защищённый токеном
Безопасный предпросмотр, запись в новый файл, защищённая перезапись и экспорт в статический HTML
Устаревшие инструменты
base + full proposalсохранены как псевдонимы совместимости
Требования
Node.js 20 или новее
Установка зависимостей для запуска не требуется
Проверка
npm run checkНабор тестов запускает проверки синтаксиса и 13 тестов, включая реальный обмен данными MCP через stdio и вызовы просмотрщика на localhost.
Запуск в качестве MCP-сервера
node src/cli.mjs \
--stdio \
--workspace /absolute/path/to/your/writing-workspaceПример конфигурации клиента:
{
"mcpServers": {
"article-review": {
"command": "node",
"args": [
"/absolute/path/to/article-review-mcp/src/cli.mjs",
"--stdio",
"--workspace",
"/absolute/path/to/your/writing-workspace"
]
}
}
}Основной вызов агента
Вызовите article_review_submit_patchset:
{
"title": "Introduction revision",
"format": "markdown",
"base": {
"type": "workspace_file",
"path": "manuscript.md"
},
"baseHash": "optional-sha256-of-the-base",
"topics": [
{
"id": "architecture",
"label": "架构与叙事",
"description": "章节组织、研究主线和段落衔接"
},
{
"id": "logic",
"label": "逻辑与论证"
},
{
"id": "clarity",
"label": "表达与清晰度"
}
],
"patchSet": {
"id": "revision-001",
"summary": "补齐 Section 1 到 Section 2 的理论过渡",
"patches": [
{
"id": "selection-pressure-bridge",
"operation": "replace",
"target": {
"oldText": "The later experiments therefore held the candidate text fixed...",
"contextBefore": "These results support Prediction 1...",
"contextAfter": "LLM judge reliability varies..."
},
"newText": "Collectively, Section 1 establishes that...",
"comments": [
{
"topicId": "architecture",
"kind": "proposal_rationale",
"title": "补齐 Section 1 → Section 2 的逻辑桥梁",
"body": "原文从多智能体失败直接跳到 Judge reliability,缺少为什么需要 Judge 的理论过渡。",
"severity": "major"
},
{
"topicId": "logic",
"kind": "proposal_rationale",
"title": "明确研究问题递进关系",
"body": "先证明系统存在选择失败,再验证 Judge 是否能够提供可靠信号。"
}
]
}
]
}
}Правила патчей
Все патчи нацелены на один и тот же неизменённый базовый документ.
Каждый патч должен включать как минимум один категоризированный комментарий.
Каждый комментарий имеет один и только один основной
topicId.target.oldTextдолжен разрешаться ровно в одно место.Используйте
contextBeforeиcontextAfter, когда один и тот же текст встречается несколько раз.Перекрывающиеся патчи и множественные вставки на небезопасной общей границе отклоняются.
Сервер формирует предложение; агент не отправляет второй полный вариант рукописи в основном рабочем процессе.
Типичные ошибки валидации:
BASE_HASH_MISMATCH
ANCHOR_NOT_FOUND
ANCHOR_AMBIGUOUS
PATCH_OVERLAP
MISSING_PATCH_COMMENT
UNKNOWN_COMMENT_TOPICРецензирование по темам
Интерфейс показывает вкладки тем, например:
全部主题 12
架构与叙事 4
逻辑与论证 3
证据与引用 2
方法与统计 1
表达与清晰度 2Выбор темы фильтрует комментарии на правой панели по этой теме. Панель рукописи может либо:
сохранять все патчи видимыми и затемнять несвязанные, либо
полностью скрывать несвязанные патчи.
J и K перемещают только по патчам, релевантным активной теме.
Запасной локальный просмотрщик
Для клиентов, которые не отображают MCP Apps:
node src/cli.mjs \
--viewer 4173 \
--workspace /absolute/path/to/your/writing-workspaceПросмотрщик привязывается к 127.0.0.1 и выводит случайный URL, защищённый токеном.
Синтетическое демо:
npm run demoОсновные инструменты
Рабочий процесс, обращённый к модели:
article_review_submit_patchset
article_review_open
article_review_get_feedback
article_review_add_comments
article_review_update_patchset
article_review_finalizeОперации рецензирования только для приложения:
article_review_get_page
article_review_get_document
article_review_set_patch_decision
article_review_bulk_decide
article_review_edit_patch
article_review_add_comment
article_review_reply_comment
article_review_resolve_commentУстаревшие псевдонимы совместимости:
article_review_create
article_review_get_summary
article_review_update_proposal
article_review_set_decision
article_review_edit_hunkИнварианты безопасности
Базовый документ восстанавливается байт в байт из необработанных сегментов.
Применение всех патчей восстанавливает итоговое предложение байт в байт.
CRLF, пробельные символы, Markdown, китайский, английский и базовый LaTeX не нормализуются.
Текст рукописи отображается как инертные текстовые узлы, никогда через
innerHTML.Абсолютные пути, обход через
..и выход через симлинки каталогов отклоняются.Мутации требуют
expectedVersionиidempotencyKey.Перезапись исходного файла требует явного подтверждения, проверки SHA-256 исходного файла и резервной копии.
Документация
Отложенные возможности
Отслеживание изменений DOCX
Редактирование PDF
Частичное принятие на уровне слов
Совместная работа нескольких пользователей в реальном времени
Синхронизация с Google Docs
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 Servers
- Alicense-qualityBmaintenanceA stateful, AST-aware MCP server for structured code review workflows. It enables iterative review sessions with AST-based context localization and provides structured feedback with verdicts and patch suggestions for JavaScript/TypeScript code.1GPL 3.0
- Alicense-qualityDmaintenanceMCP server for visual feedback, video direction, and QA assertions on web pages, enabling AI agents to read, reply, and resolve annotations in real time.4MIT
- Alicense-qualityCmaintenanceMCP server for searching and retrieving submissions, reviews, meta-reviews, rebuttals, and decisions from OpenReview venues like NeurIPS and ICLR, enabling peer review analysis.1MIT
Related MCP Connectors
Read-only MCP over an agentic SLR workspace with per-claim citation verification
Read-only MCP over an agentic SLR workspace with per-claim citation verification
Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.
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/Biogod2020/article-review-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server