Skip to main content
Glama

# advdupe2-mcp

Строй в Garry’s Mod по описанию и фотографии.

MCP-сервер, который позволяет ассистенту собирать постройки из пропов и сохранять их для Advanced Duplicator 2. Задай референс, размер и лимит пропов — затем загрузи готовый дюп в игре.

Пример: от фотографии до постройки

Запрос: «Сделай из пропов Вкусно — и точка, максимум 150 пропов».

После уточнения размера получился компактный павильон на 86 пропов: вывеска, логотип, стеклянные двери, стойка, мебель и растения. Справа — реальный игровой скриншот; окружающие здания относятся к карте.

Сообщение ассистенту:

Фасад и план сверху перед загрузкой:

Схема показывает габариты и расположение деталей. Текстуры и освещение видны на игровом скриншоте выше.

JSON этой постройки · Генератор

Related MCP server: mcp-garry-codes

Что умеет

  • Создавать здания, фасады, интерьеры, мебель и декор из prop_physics.

  • Подбирать модели из разрешённого списка сервера и читать их размеры.

  • Задавать позиции, углы, цвета, материалы, скины и соединения Weld / NoCollide.

  • Проверять постройку перед сохранением через preview_only.

  • Читать и записывать AdvDupe2 ревизий 4 и 5, сохранять структуру в JSON.

  • Переносить и поворачивать простые готовые постройки.

Сервер работает локально через stdio. Ассистент создаёт файл дюпа, а игрок загружает его через Advanced Duplicator 2.

Установка

Нужны Python 3.11+, Garry’s Mod, Advanced Duplicator 2 и MCP-клиент. Для работы по фотографиям ассистент должен поддерживать изображения.

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
Copy-Item mcp.config.example.json mcp.config.json

В mcp.config.json замени пути на свои и добавь блок mcpServers в настройки клиента:

{
  "mcpServers": {
    "adv2mcp": {
      "command": "C:/projects/advdupe2-mcp/.venv/Scripts/python.exe",
      "args": ["-m", "adv2mcp"],
      "env": {
        "ADV2MCP_DUPE_DIR": "D:/SteamLibrary/steamapps/common/GarrysMod/garrysmod/data/advdupe2",
        "ADV2MCP_REQUIRE_ALLOWLIST": "1",
        "ADV2MCP_REVISION": "4"
      }
    }
  }
}

Локальный конфиг исключён из Git. run.ps1 использует его настройки; при прямом запуске Python задай переменные окружения самостоятельно.

Разрешённые модели

Перед сохранением постройки MCP проверяет профиль сервера. Импортируй Lua-файл или текст со списками Props, NewProps, Whiteprop:

.\run.ps1 import-props props.lua

Lua-код не выполняется. Профиль сохраняется в advdupe2/adv2mcp/server-props.json и перечитывается без перезапуска MCP. Для ручного списка есть пример JSON.

По умолчанию запись без профиля заблокирована. Наличие модели на диске не гарантирует разрешение её спавна: права и лимиты задаёт игровой сервер.

Использование

Прикрепи фотографию и напиши ассистенту, например:

Построй небольшой ресторан по этому фото. Максимум 150 пропов, только разрешённые модели. Добавь открытый вход, стойку и два столика. Сохрани как mcp/restaurant.txt.

После сохранения открой Advanced Duplicator 2 → mcp → restaurant и поставь постройку.

Доступен и CLI:

.\run.ps1 list
.\run.ps1 inspect mcp/restaurant.txt
.\run.ps1 build examples/wall.json mcp/wall.txt
.\run.ps1 decode mcp/restaurant.txt restaurant.json
.\run.ps1 encode restaurant.json mcp/copy.txt

Инструменты MCP

Инструмент

Назначение

get_status, get_prop_policy

Настройки и разрешённые модели

search_models, model_info

Поиск моделей и их габариты

list_dupes, inspect_dupe

Файлы и состав построек

create_build

Проверка и создание постройки

read_dupe, write_dupe

Чтение и изменение структуры дюпа

transform_dupe

Поворот и перенос постройки

В builds/ находятся другие примеры: казино, ресторан OLIVA, дом и рабочее место с ПК. Для них нужны соответствующие модели и профиль разрешений.

Ограничения

Каталог индексирует базовые VPK и распакованные аддоны; Workshop .gma и внешние игровые монтирования не индексируются. Примеры с водой, подсветкой и автоматами используют декоративные пропы. Спавн и физику нужно проверять в игре.

Разработка

.\.venv\Scripts\python.exe -m pip install -e '.[dev]'
.\.venv\Scripts\python.exe -m pytest -q

Для генерации схем предпросмотра установи pip install -e ".[examples]".

Лицензия

Код проекта — MIT, © 2026 Vodeninja.

Тестовый файл tests/fixtures/upstream_sh_codec.lua взят без изменений из wiremod/advdupe2, автор — emspike, коммит e3ffa3c5d772658a11eacfb8570d543636392f9c. Для него действует отдельная Apache License 2.0. Игровые модели и текстуры в репозиторий не входят.

Available Tools

10 tools
create_buildA
Destructive

Build prop_physics entities with positions, angles, color, material and Weld/NoCollide. Use weld_to_head for a connected contraption. preview_only validates and reports counts without writing. Unknown models are reported, since Workshop GMA/external mounts may supply them.

Inputs: name (required), build (required), revision, overwrite, +1 more. Returns: object

get_prop_policyA
Read-only

Show the server allowed-prop profile, reloaded on each call. Missing profiles block writes. Never infer server permission from local installation or a screenshot.

Inputs: no named parameters. Returns: object

get_statusA
Read-only

Show configured game/dupe paths, format versions and filesystem availability.

Inputs: no named parameters. Returns: object

inspect_dupeB
Read-only

Read metadata, model counts and paginated positions/angles from an existing dupe.

Inputs: name (required), limit, offset. Returns: object

list_dupesA
Read-only

List .txt duplications recursively, filtered by filename, without decoding every file.

Inputs: limit, query, offset. Returns: object

model_infoA
Read-only

Read unrotated MDL hull bounds and dimensions in Source units for accurate prop placement.

Inputs: model (required). Returns: object

read_dupeB
Read-only

Return a lossless adv2mcp-json-v1 document. Tables have typed keys and IDs; vectors/angles are tagged. Large dupes may produce large responses; inspect_dupe is paginated.

Inputs: name (required). Returns: object

search_modelsA
Read-only

Find server-allowed models by default (all query words must match). allowed_only=false searches installed models without implying permission. Captured profiles can include Workshop models absent from the local VPK index.

Inputs: limit, query, offset, refresh, +1 more. Returns: object

transform_dupeB
Destructive

Rotate simple prop builds around the copy origin, then translate their local positions. Supports single-body prop_physics with Weld/NoCollide only. Saves a new file unless explicitly overwriting.

Inputs: source (required), destination (required), yaw, offset, +2 more. Returns: object

write_dupeA
Destructive

Save a lossless document returned by read_dupe, preserving unknown addon data. Revision defaults to the source document or the server default. Overwrites create backups.

Inputs: name (required), document (required), revision, overwrite. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 10 tools

    Disambiguation4/5

    Most tools target distinct actions (list, read, inspect, write, transform, create, search, status, policy, model info). The main overlap is inspect_dupe vs read_dupe, but their descriptions distinguish paginated summary from lossless full document, and create_build vs write_dupe are separated by build-from-parameters vs save-document semantics.

    Naming Consistency4/5

    Nine of ten tools follow a clear verb_noun pattern in snake_case (list_dupes, read_dupe, write_dupe, transform_dupe, create_build, search_models, etc.). model_info is the sole noun-only exception, but its meaning remains clear.

    Tool Count5/5

    Ten tools is well-scoped for a dupe/prop build manipulation server, covering discovery, inspection, read/write, transformation, creation, model search, and environment/policy checks without obvious filler.

    Completeness4/5

    The surface covers core lifecycle operations: list, inspect, read, write/update, transform, create, search models, and policy/status checks. Minor gaps like explicit delete or rename for dupe files are not covered, but common workflows can be handled and write_dupe backups mitigate overwrite risks.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables AI assistants to create complete, Teardown-ready multi-part .vox voxel models with material palette compatibility, previews, manifests, and XML skeletons so they can write coherent mod files.
      22
      1
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables AI assistants in MCP clients to generate and edit images by automatically expanding short requests into detailed prompts with composition, lighting, and camera direction, then saving results to disk. Supports Gemini, OpenAI, and BytePlus Seedream providers with selectable quality presets, aspect ratios, and image sizes.
      1,781 npm
      MIT