SH

sycatle/hammer-mcp

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

28 stars 4 forks 품질 73 트렌드 31MIT

Source-engine map work용 MCP 서버: reformatting 없이 읽기 및 lint VMF, 편집, 형식 제한에 대한 BSP를 측정, 와인 아래에 컴파일 (스톡 또는 Hammer++)

개요

소스 엔진 맵 작업을위한 MCP 서버. 그것은 .vmf 및 .bsp 파일을 읽고, 게임의 자신의 FGD에 대한지도를 lints, 포맷없이 .vmf을 편집, recompiling없이 컴파일 된지도의 엔티티티를 패치, 와인 아래에 컴파일러를 구동 -, 수요에 재고 또는 가을백으로 - 및 형식의 한계에 대한지도를 측정. 그것은 파일을 읽고 컴파일러를 실행, 다른 아무것도. 그것은 잠금을 유지하고 그것을 방해하지 않고 라이브 서버 옆에 앉아있는 것. 11/08/2026에 측정하는. 도구는 JSON을 반환합니다. 바는이 README의 렌더링입니다. 위의 모든 수는 JSON이고, docs/measuring.md는 각 것을 손상시키는 것을 말한다. 위의 모든 독자는 얼마나 많은 응답합니다. 아무도 답변은 충분하다 — 그래서이 도구 체인을 운전하는 것은 완료되지 않고 영원히지도를 측정 할 수 있습니다. read map report가 닫습니다. 독자를 실행하고 .. 11/08/2026에 측정하는.

개요(AI 번역)

소스 엔진 맵 작업을위한 MCP 서버. 그것은 .vmf과 .bsp] 파일, 에 대한지도를 lints 게임 자체 FGD, 수정 .vmf] 를 다시 포맷하지 않고 컴파일 된 맵의 엔티티티를 패치 recompiling없이, 와인 아래에 컴파일러를 구동한다 —Hammer++ 기본적으로, 수요 또는 재고 fallback로 - 지도를 측정 형식의 한계에 대하여.

** 달리는 엔진에 결코 이야기하지 않습니다. ** 그것은 파일을 읽고 컴파일러를 실행, 아무것도 기타. 그것은 잠금을 유지하고 그것을 방해하지 않고 라이브 서버 옆에 앉아있는 것.

11/08/2026에 측정하는. 도구는 JSON을 반환합니다. 바는이 README의 렌더링입니다. 모든 것 위 번호는 JSON이고, docs/measuring.md는 corroborates를 말합니다 각 것.

무엇 그것

인포메이션 |—||| |Measure | 각 덩어리가 가득 차 있는 방법, 세계 넓이, 버팀대, 포장재, 광경 | |Judge | 예산 프로파일에 대한 동일한 측정, 선명한 비율로 - 그래서 콜러는 그것이 행해질 때 알고 있습니다. | |Read and lint | entities, outputs and brush counts of .vmf; 게임 자체 선언 FGD에 대해 확인한 모든 결과 |

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

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
GitHub에서 전체 README 보기

설치

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

Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →