
sycatle/hammer-mcp
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
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 |
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →