Skip to main content
Glama

ICCPlus MCP

English | 한국어

Сервер Model Context Protocol с поддержкой схемы для создания, просмотра, редактирования, проверки и упаковки проектов ICC Plus.

Этот проект был создан с помощью виб-кодинга в сотрудничестве с ИИ-агентом по кодингу.

Сервер предоставляет ИИ-агенту полную модель проекта ICC Plus, сгенерированную и проиндексированную непосредственно из исходного кода вышестоящего проекта:

  • схема проекта и текущие значения по умолчанию генерируются из исходного кода ICC Plus;

  • все 59 объявленных типов моделей и 893 уникальных поля доступны для обнаружения;

  • все 227 авторских файлов исходного кода/сборки/конфигурации/патчей и 1 411 именованных функций/методов в создателе и автономном просмотрщике индексируются с точным исходным кодом, SHA-256-доказательствами, сигнатурами, использованием полей модели и диапазонами строк;

  • все 75 файлов в запрошенном репозитории развертывания и 34 файла внутри его официальных архивов просмотрщика имеют байтовые счетчики и SHA-256-манифесты;

  • высокоуровневые инструменты сохраняют идентификаторы, порядок, родительские ссылки и взаимные членства;

  • универсальное патчирование RFC 6902 сохраняет доступ к новым или необычным полям вышестоящего проекта;

  • структурная и семантическая проверка выявляет висячие ссылки до сохранения;

  • инструменты Custom CSS на основе исходного кода раскрывают официальные классы просмотрщика, разрешают селекторы проекта и диагностируют риски синтаксиса/каскада до сохранения;

  • сохранение ширины строк ICC Plus v2.10, видимость форм сборки/отладочные заголовки, раздельные элементы управления пересчетом оценок, скрытые меню строк и CSS-классы состояний аддонов моделируются и доступны для обнаружения;

  • официальные веб- и локальные архивы просмотрщика можно собрать без открытия пользовательского интерфейса создателя.

Совместимость в настоящее время генерируется из ICC Plus v2.10.1, коммита исходного кода b33bfb9b29e0a84a035a56d7e1827e42fe0f7000.

Что это такое

ICCPlus MCP — это адаптер для авторства и сборки вокруг JSON-проекта ICC Plus. Он не перереализует браузерный просмотрщик. Эффекты выбора, воспроизведение аудио, диалоги, рендеринг и другое интерактивное поведение по-прежнему выполняются в официальном просмотрщике. Сервер понимает и проверяет конфигурацию, которая управляет этими поведениями, может оценивать деревья требований для заданного состояния и может упаковывать результат в официальные шаблоны просмотрщика.

Дизайн намеренно имеет два уровня:

agent
  ├─ discover: capabilities, schema, resources, prompts
  ├─ author: create/update/move/duplicate/import entities
  ├─ complete field access: atomic JSON Patch for every schema field
  └─ verify: normalize, validate, evaluate, save, build viewer
                           │
                           ▼
             revisioned in-memory project session
                           │
                           ▼
                ICC Plus JSON / viewer ZIP

Related MCP server: ts-language-mcp

Требования

Установка и сборка

git clone https://github.com/Kz2g1ew-commits/ICCPlus-MCP.git
cd ICCPlus-MCP
npm ci
npm run build

Исполняемый файл — dist/index.js, общается через stdio. Вывод протокола использует stdout; диагностика — stderr.

Подключение агента

Установите ICCPLUS_WORKSPACE в единственный каталог, который сервер может читать или записывать. Относительные пути к проектам, ресурсам, шаблонам и выходным файлам разрешаются внутри этого каталога. Существующие символические ссылки разрешаются и не могут выйти за его пределы.

Codex

codex mcp add iccplus \
  --env ICCPLUS_WORKSPACE=/absolute/path/to/iccplus-workspace \
  -- node /absolute/path/to/ICCPlus-MCP/dist/index.js

Проверьте с помощью codex mcp list, затем перезапустите клиент, если он уже был открыт. Эквивалентная запись в config.toml для пользователя или доверенного проекта:

[mcp_servers.iccplus]
command = "node"
args = ["/absolute/path/to/ICCPlus-MCP/dist/index.js"]
env = { ICCPLUS_WORKSPACE = "/absolute/path/to/iccplus-workspace" }
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled = true

Codex CLI, расширение IDE и поверхность Codex в настольном ChatGPT используют эту конфигурацию. Запись, ограниченная проектом, может находиться в .codex/config.toml и загружается только для доверенного проекта.

Другие stdio MCP-клиенты

Используйте конфигурацию локального сервера клиента с этой командой:

{
  "command": "node",
  "args": ["/absolute/path/to/ICCPlus-MCP/dist/index.js"],
  "env": {
    "ICCPLUS_WORKSPACE": "/absolute/path/to/iccplus-workspace"
  }
}

Необязательные переменные окружения:

  • ICCPLUS_WORKSPACE: граница файловой системы; по умолчанию — текущий рабочий каталог процесса сервера.

  • ICCPLUS_MAX_ASSET_BYTES: максимальный размер локального ресурса; по умолчанию — 26 214 400 байт (25 МиБ).

  • ICCPLUS_DUPLICATED_TEXT_LIMIT_BYTES: максимальный размер, дублируемый в текстовый запасной вариант результата инструмента; по умолчанию — 8 192 байта. Более крупные точные результаты остаются доступными в structuredContent. Установите -1 для неограниченного текста в старом стиле.

Рекомендуемый рабочий процесс агента

  1. Вызовите iccplus_capabilities для соответствующего семейства функций или поля.

  2. Создайте или откройте проект и сохраните его project_id и revision.

  3. Сначала создайте ссылочные сущности верхнего уровня: точки, переменные, слова, группы, дизайны и глобальные требования.

  4. Создайте строки, затем выборы, затем оценки/аддоны/требования.

  5. Передавайте expected_revision в мутации. Используйте dry_run для масштабных изменений.

  6. Для продвинутой стилизации найдите точные селекторы с помощью iccplus_css_catalog, проанализируйте кандидатный CSS, затем примените его с помощью iccplus_css_set.

  7. Вызовите iccplus_validate и, где полезно, iccplus_evaluate_requirements.

  8. Сохраните явно или соберите официальный архив просмотрщика.

Агент также может запросить встроенные промпты author-iccplus-project или audit-iccplus-project.

Пример пользовательского запроса:

Создай CYOA с 10 стартовыми кредитами, тремя взаимоисключающими вариантами происхождения и строкой оружия, разблокируемой выбором происхождения. Проверь его, сохрани как projects/origins.json, затем собери веб-просмотрщик, используя templates/web_viewer.zip.

Инструменты

Инструмент

Назначение

iccplus_capabilities

Обнаружение 19 семейств функций, типа/поля, точного тела функции, индекса исходных файлов или артефакта развертывания.

iccplus_css_catalog

Список официальных классов просмотрщика на основе исходного кода и точных селекторов ID проекта.

iccplus_css_analyze

Анализ сохраненного или кандидатного CSS: синтаксис, специфичность, разрешение целей, конфликты каскада, внешние ресурсы.

iccplus_css_set

Замена, добавление, вставка в начало или очистка пользовательского CSS проекта с защитой ревизии, пробного запуска и проверки.

iccplus_schema

Чтение сводки схемы, одного определения или полной сгенерированной схемы.

iccplus_create_project

Начало с точных текущих значений по умолчанию вышестоящего проекта.

iccplus_open_project

Открытие JSON проекта в изолированную сессию.

iccplus_list_projects

Список сессий, ревизий, состояний изменений и счетчиков.

iccplus_project_status

Проверка валидации, размера, количества содержимого и необязательного JSON.

iccplus_read_project

Чтение точных JSON-указателей, включая CSS/HTML/JS и неизвестные поля, с редактированием ресурсов по умолчанию.

iccplus_query

Поиск всех смоделированных сущностей по типу, ID или тексту.

iccplus_create_entity

Создание сущности с значениями по умолчанию, свежими ID и восстановлением родительских связей.

iccplus_update_entity

Глубокое слияние/сброс полей и опциональное переписывание ссылок на ID.

iccplus_duplicate_entity

Клонирование дерева сущностей с новыми ID и опциональным внутренним переназначением.

iccplus_move_entity

Изменение порядка сущности и восстановление позиционных индексов.

iccplus_delete_entity

Удаление с отклонением новых висячих ссылок по умолчанию.

iccplus_patch

Атомарное применение операций RFC 6902 к любому полю проекта.

iccplus_normalize

Миграция устаревших форм и восстановление ID, индексов, родителей и членств.

iccplus_validate

Запуск сгенерированной схемы плюс семантической/ссылочной проверки.

iccplus_evaluate_requirements

Оценка требований на основе предоставленных выборов, точек, переменных и слов.

iccplus_export_fragment

Экспорт одного переиспользуемого поддерева сущности.

iccplus_import_fragment

Импорт поддерева с безопасной регенерацией/переназначением ID.

iccplus_set_asset

Установка любого строкового поля из файла рабочего пространства, URL или data URL.

iccplus_save_project

Атомарное сохранение проверенного JSON внутри рабочего пространства.

iccplus_build_viewer

Сборка официальных веб/локальных ZIP-архивов просмотрщика и опционально отдельных изображений.

iccplus_history

Отмена или повтор мутации сессии.

iccplus_close_project

Закрытие сессии с защитой несохраненных изменений.

Инструменты сущностей охватывают row, backpack_row, choice, addon, selectable_addon, score, requirement, point, variable, word, group, row_design_group, choice_design_group, global_requirement, sound_effect и category.

Ресурсы и промпты

URI/имя

Содержимое

iccplus://css/catalog

Официальный каталог селекторов Custom CSS с доказательствами из исходного кода.

iccplus://schema/project

Полная сгенерированная JSON-схема проекта.

iccplus://features

Каталог функций на основе исходного кода и счетчики покрытия.

iccplus://deployment

SHA-256-манифест для всех файлов развертывания и записей официального ZIP просмотрщика.

iccplus://licenses

Нормализованные в UTF-8 метаданные для 209 вышестоящих сторонних пакетов.

iccplus://project/{projectId}/css

Сохраненный CSS, статический анализ и специфичные для проекта селекторы.

iccplus://project/{projectId}/summary

Живая ревизия, валидация и счетчики сущностей.

author-iccplus-project

Безопасный порядок создания и рабочий процесс проверки.

audit-iccplus-project

Полный аудит завершенности и упаковки проекта.

Безопасность и целостность данных

  • Мутации выполняются на клонированных данных и фиксируются атомарно.

  • expected_revision обеспечивает оптимистичное управление параллелизмом.

  • dry_run возвращает прогнозируемый отчет о проверке без изменения сессии.

  • no_new_errors — политика мутаций по умолчанию; strict требует полностью допустимого результата; none доступен для поэтапных исправлений.

  • JSON Patch блокирует сегменты указателей, загрязняющие прототип.

  • Сохранение использует временный файл плюс переименование.

  • Существующие файлы не заменяются, если не установлено overwrite=true.

  • Значения ресурсов редактируются в обычном выводе запросов и сообщаются по типу медиа и приблизительному размеру в байтах.

  • Точные чтения путей избегают возврата полного проекта, а большие результаты инструментов не дублируются в текстовый и структурированный вывод одновременно.

  • Неизвестные поля переживают загрузку, редактирование, нормализацию и сохранение для прямой совместимости.

Покрытие валидации

Валидатор объединяет сгенерированную схему App с проверками на:

  • дублирующиеся или отсутствующие ID и несоответствия позиционных индексов;

  • родительские ссылки аддонов;

  • все смоделированные ссылки на строки, выборы, очки, группы, переменные, слова, дизайны, звуки и глобальные требования;

  • ссылки на преобразование очков в баллы и активацию очков;

  • вложенные требования, пороговые значения и циклы глобальных требований;

  • взаимные членства групп и дизайн-групп;

  • несовместимые режимы экспорта просмотрщика;

  • синтаксис Custom CSS, опасные устаревшие конструкции, неразрешённые селекторы ID ICC Plus, широкий охват, внешние ресурсы и вероятные конфликты с инлайн-стилями;

  • инварианты целочисленности/плавающих значений очков и инициализации.

Оценщик требований реализует id (включая /ON#N), points, pointCompare, or, selFromGroups, selFromRows, selFromWhole, gid, word, отрицание, операторы и вложенные предварительные условия. Он возвращает объяснимый след, а не только логическое значение.

Расширенный Custom CSS

ICC Plus хранит CSS в поле верхнего уровня customCSS и внедряет его как style#customCSS в официальный создатель/просмотрщик с помощью textContent. MCP получает свой каталог из закреплённой разметки автономного просмотрщика, включая row-{id}, row-{id}-bg, row-{id}-header, choice-{id}, классы состояний выбора, addon и выбираемый addon-{id}.

iccplus_css_catalog может возвращать CSS-экранированные селекторы для каждой строки, выбора и выбираемого аддона открытого проекта. iccplus_css_analyze разбирает вложенные правила, сообщает о специфичности и соответствующих сущностях и предупреждает, когда объявление, вероятно, проиграет инлайн-стилям ICC Plus. iccplus_css_set сохраняет результат через ту же транзакцию с версионированием и политику проверки, что и другие мутации проекта.

Для v2.10+ каталог также охватывает .row-bg-{rowId}, .row-header-{rowId}, .choice, .addon-selectable и классы состояний .addon-enabled, .addon-disabled, .addon-selected и .addon-unselected, сохраняя при этом более старые написания селекторов строк.

Это намеренно статический анализ. Вычисленные стили, адаптивная вёрстка и отрисовка состояний взаимодействия остаются ответственностью официального просмотрщика; никакой среды автоматизации браузера или несвязанного инструмента просмотра не включено.

Сборки просмотрщика

iccplus_build_viewer принимает официальный ZIP-шаблон в рабочей области.

  • Веб-режим записывает project.json.

  • Локальный режим встраивает проект в js/app.js.

  • Заголовок загрузки, текст, цвета, фавикон, фон, шрифты и Custom CSS проекта сохраняются в упакованном проекте.

  • Необязательное разделение изображений извлекает URL-адреса данных из глобальных стилей, строк, строк рюкзака, дизайн-групп и настроек просмотрщика; идентичные ресурсы дедуплицируются.

JavaScript просмотрщика шаблона остаётся источником истины во время выполнения.

Синхронизация с вышестоящим проектом

Модель проекта генерируется непосредственно из вышестоящего исходного кода. Повторно запустите анализатор на копии ICC-Plus-Svelte:

npm run analyze:upstream -- --source ../ICC-Plus-Svelte --deployment ../ICCPlus
npm test
npm run check
npm run build

Анализатор использует TypeScript AST для повторной генерации:

  • src/generated/iccplus.schema.json

  • src/generated/default-project.json

  • src/generated/source-analysis.json

  • src/generated/deployment-manifest.json

  • src/generated/third-party-licenses.json

  • analysis/CODEBASE_INVENTORY.md

Тесты завершаются ошибкой, если вновь объявленный тип модели вышестоящего проекта не назначен семейству функций. source-analysis.json также записывает объявления, импорты, полные файлы исходного кода с SHA-256-адресацией, метки компонентов, каждую именованную функцию/метод исходного кода, точные тела функций и вхождения в исходный код. Манифест развёртывания охватывает каждый файл в wahaha303/ICCPlus плюс каждую запись официального архива просмотрщика. Агенты могут запрашивать field:<name>, type:<name>, function:<name> или source:<relative-path> через iccplus_capabilities; deployment:<relative-path> возвращает доказательства развёртывания. Запросы функций поддерживают file, offset и limit, чтобы дублирующиеся локальные имена оставались управляемыми; include_source=false возвращает компактные метаданные.

Разработка

npm test
npm run test:stdio
npm run verify:upstream -- --source ../ICC-Plus-Svelte --deployment ../ICCPlus
npm run check
npm run build
npm run inspect
npm pack --dry-run

Тестовый набор охватывает покрытие сгенерированной модели, мутацию графа модели, нормализацию, перезапись ссылок, все семейства требований, атомарность RFC 6902, упаковку просмотрщика и обмен данными между клиентом и сервером MCP в памяти.

Полную семантическую карту функций см. в analysis/FEATURE_ANALYSIS.md. Сгенерированные доказательства полей/функций/компонентов находятся в analysis/CODEBASE_INVENTORY.md. Запись проверки по каждому требованию — в analysis/COMPLETION_AUDIT.md.

Атрибуция

ICC Plus разработан wahaha303. Этот MCP-сервер является независимой интеграцией и не заменяет и не изменяет официальный создатель/просмотрщик. Оба проекта распространяются под лицензией MIT; см. LICENSE. Уведомления о зависимостях вышестоящего проекта и вендорных зависимостях сохранены в THIRD_PARTY_NOTICES.md и ресурсе iccplus://licenses.

A
license - permissive license
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 Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables local-first book writing with AI assistance, allowing users to scaffold, create, search, validate, and enrich a book repository through natural language using OpenCode or Claude.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI coding agents to interact with TypeScript projects through compiler-level code intelligence, providing tools for navigation, type information, diagnostics, refactoring, and semantic search.
    29
    339
    3
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for AI agents to compile, playtest, and exhaustively explore ink interactive fiction stories, catching compile errors, runtime errors, unreachable content, and verifying story structure.
    5
    59
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI tools to collaboratively write novels by managing chapters, characters, and story state through commands like validate, context, draft, review, and approve.
    8
    MIT

View all related MCP servers

Related MCP Connectors

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

  • Build, validate, and deploy multi-agent AI solutions from any AI environment.

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

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/Kz2g1ew-commits/ICCPlus-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server