SH

sycatle/hammer-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

28 stars 4 forks Качество 73 Тренд 31MIT

MCP-сервер для работы с картой исходного двигателя: чтение и линт VMF, редактирование без переформатирования, измерение BSP по ограничениям формата, компиляция под Wine (stock или Hammer++)

Обзор

MCP-сервер для работы с картой исходного двигателя. Он читает файлы .vmf и .bsp, вводит карту против собственного FGD игры, редактирует .vmf без переформатирования, исправляет объекты скомпилированной карты без повторной компиляции, управляет компиляторами под Wine - , запас по требованию или в качестве запасного варианта - и измеряет карту по пределам формата. Он читает и записывает файлы и запускает компиляторы, и ничего больше. Это то, что позволяет ему не держать замок и сидеть рядом с живым сервером, не беспокоя его. Измерено 11/08/2026. Инструмент возвращает JSON; бары - это рендеринг README. Каждое число выше в этом JSON, и docs/measuring.md говорит, что подтверждает каждый из них. Каждый читатель отвечает, сколько. Ни один из этих ответов не является достаточным, поэтому все, что управляет этой цепочкой инструментов, может измерять карту навсегда, не узнав, что она завершена. read map report закрывает это: он управляет читателями и судит их против. Измерено 11/08/2026.

Обзор (машинный перевод)

MCP-сервер для работы с картой исходного двигателя. Он читает .vmf и .bsp файлы, рисует карту против Собственный FGD игры, редактирует .vmf без переформатирования, патчивает скомпилированные объекты карты. без повторной компиляции приводит компиляторы под Wine — Hammer++ по умолчанию, запас по требованию или как запасной вариант — и измеряет карту Против ограничений формата.

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

Измерено 11/08/2026. Инструмент возвращает JSON; бары - это рендеринг README. Каждый Число выше в этом JSON, и docs/measuring.md говорит, что подтверждает. каждого.

Что он делает

[править] [скрыто] [скрыто] | Мера | насколько заполнен каждый комок, мировые масштабы, инвентарь запасов, упакованные активы, линии обзора | Судья | те же измерения по бюджетному профилю, что и вердикт по критерию — так что звонящий знает, когда это делается, а не только где он стоит | Читать и винт | сущности, выходы и подсчеты щеток .vmf; каждое обнаружение, проверенное против FGD, заявляет сама игра |

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

hammer-mcp

An MCP server for Source-engine map work. It reads .vmf and .bsp files, lints a map against the game’s own FGD, edits a .vmf without reformatting it, patches a compiled map’s entities without recompiling, drives the compilers under Wine — Hammer++ by default, stock on demand or as a fallback — and measures a map against the limits of the format.

It never talks to a running engine. It reads and writes files and runs compilers, and nothing else. That is what lets it hold no lock and sit beside a live server without disturbing it.

> read_map_geometry rp_nycity_day.bsp

  a 1.13 GB map — header and lump directory only, 1 ms

  MODELS       1218 /  1024   119%  ████████████▏  over
  TEXINFO     11841 / 12288    96%  █████████▋
  VERTEXES    62270 / 65536    95%  █████████▌
  BRUSHES      6913 /  8192    84%  ████████▍

  4 lumps at or past 80% of their ceiling.

  MODELS is past it outright — and this map loads every day. That is
  not a broken map: it is evidence that the compilers which built it
  raise that ceiling. The tool reports it in those terms, rather than
  an error it cannot substantiate.

Measured on 11/08/2026. The tool returns JSON; the bars are this README’s rendering of it. Every number above is in that JSON, and docs/measuring.md says what corroborates each one.

What it does

flowchart LR
  VMF[".vmf"] --> LINT["read_vmf_lintagainst the game's FGD"]
  LINT --> EDIT["edit_vmfsplice, never reserialise"]
  EDIT --> VMF
  LINT --> C["vbsp · vvis · vradunder Wine"]
  C --> BSP[".bsp"]
  BSP --> M["measure · pack · patch entities"]
  M -. never .-x ENG["a running engine"]
  style ENG stroke-dasharray: 4 4
Measure how full each lump is, world extents, prop inventory, packed assets, sightlines
Judge the same measurements against a budget profile, as a verdict per criterion — so a caller knows when it is done, not just where it stands
Read and lint entities, outputs and brush counts of a .vmf; every finding checked against the FGD the game itself declares
Edit entities, keyvalues and outputs of a .vmf, by splicing byte ranges — untouched bytes stay untouched
Build brushes from a shape description, wound and textured the way vbsp expects, refused unless they close
Optimise func_detail, hint brushes including diagonal ones, per-face lightmap scale — the decisions a compiled map no longer contains
Compile vbsp/vvis/vrad under Wine, findings per stage, and a leak turned into a named entity
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →