Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Yapı ruhsatı IFC modelini Türkiye dijital proje yönetmeliğine (RG 33331) göre denetler; EK-9 formu
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"ifc-ruhsat": {
"command": "uvx",
"args": [
"ifc-ruhsat",
"mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add ifc-ruhsat -- uvx ifc-ruhsat mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"ifc-ruhsat": {
"command": "uvx",
"args": [
"ifc-ruhsat",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"ifc-ruhsat": {
"type": "stdio",
"command": "uvx",
"args": [
"ifc-ruhsat",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 BerkantACUN 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.0)은 2개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Commonly
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Read Commonly pods and post as a Commonly agent you create, with a token from your Commonly account.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Yapı ruhsatı IFC modelini yönetmeliğe göre kontrol eder. Türkiye'de 1 Eylül 2027'de yürürlüğe giren *Mimarlık ve Mühendislik Projelerinin Dijital Olarak Hazırlanması Hakkında Yönetmelik* (Resmî Gazete 5.8.2026, sayı 33331) her ruhsat projesinin IFC modelini 241 sayfalık eklere uydurmayı ve her teslimde EK-9 Model Kalite Kontrol Formu düzenlemeyi zorunlu kılıyor. Bu araç o ekleri makine kuralına çevirir: modeli okur, eksikleri madde numarasıyla söyler, EK-9 formunu doldurur. Komut satırından ya da Claude / Cursor gibi istemcilerden (MCP) kullanılır; yazılımdan bağımsızdır — Revit, Archicad, Allplan, Bonsai, hepsi IFC verir.
Otomatik ön kontroldür. Yönetmeliğin bazı satırları (LOD, mahal geometrisi, PDF–IFC uyumu) makinece denetlenemez; araç bunları "elle" diye açıkça bırakır, uygun saymaz. Nihai değerlendirme proje müellifi ile ilgili idareye aittir; bu araç hukuki görüş değildir.
uvx ifc-ruhsat kontrol 123456_00_MM_GNEL_MD_BIM_000_01_000.ifc
ornekler\hatali_ornek.ifc — IFC4X3
10 hata, 3 uyarı, 8 elle kontrol, 7 bilgi
X [m.11, EK-5 5.5 ve Tablo 5.3 · EK-9 m.5] 1 varlığın adı şablona uymuyor. Beklenen: iki harf disiplin, üç harf kategori kodu ve açıklama, orta tire ile (örn. MM-DVR-dis_20cm) … 3U9N2MO4vDDA4Hfy2J54b4 X [EK-7 Tablo 7.6 · EK-9 m.6] IfcProjectedCRS.Name 'EPSG:3857'; TUREF 3° dilimlerinden biri olmalı: EPSG:5253 … EPSG:5259. X [EK-6 Tablo 6.66 · EK-9 m.9] IfcWall: Pset_WallCommon.FireRating (Yangın Dayanım Sınıfı) 1 varlıkta yok ya da boş. 3U9N2MO4vDDA4Hfy2J54b4 X [EK-6 6.1.3 · EK-9 m.17] 1 varlık IfcProxy/IfcBuildingElementProxy ile modellenmiş; yönetmelik vekil sınıfa izin vermez … ? [EK-9 madde 7] Gelişim seviyesi (LOD 300) geometrinin ayrıntısına bakılarak elle değerlendirilir.
Tam örnek: ornekler/hatali_ornek.EK-9.md — 21 satırlık EK-9 formu, her satırda Evet / Hayır / Kısmen / Elle ve dayanağı.
Python 3.10+ yeterli. uv varsa kurulum gerekmez, uvx ifc-ruhsat … yeter. Kalıcı kurulum:
pip install ifc-ruhsat
| Komut | Ne yapar |
|---|---|
ifc-ruhsat kontrol model.ifc | Bütün kuralları çalıştırır; hata varsa çıkış kodu 1 (CI'da kullanılabilir). --json makine çıktısı, --ek9 form.md EK-9 formunu dosyaya yazar, --disiplin ST EK-2 disiplin kodu |
ifc-ruhsat ek9 model.ifc | EK-9 Model Kalite Kontrol Formu (Tablo 9.1), Markdown |
ifc-ruhsat ozet model.ifc | Şema, üreten yazılım, proje/saha/bina/katlar, sınıf sayıları |
ifc-ruhsat ids | EK-6 ve EK-7'yi buildingSMART IDS dosyası olarak yazar (ids/) — Solibri, BIMcollab Zoom, usBIM.IDS, ifctester okur |
ifc-ruhsat mcp [--http] [--host H] [--port P] | MCP sunucusu (stdio; --http ile streamable HTTP) |
Claude Desktop, Claude Code, Cursor ve MCP konuşan her istemci:
{
"mcpServers": { "ifc-ruhsat": { "command": "uvx", "args": ["ifc-ruhsat", "mcp"] } } }
Sonra asistanınıza sorun: *"C:\proje\A_blok.ifc yönetmeliğe uyuyor mu, EK-9 formunu çıkar"*, *"IfcSlab için hangi özellikler zorunlu?"*, *"Kolonlarda neden hata var, hangi maddeye göre?"*
| Araç | Ne yapar |
|---|---|
yonetmelik_kontrolu | Modeli denetler; her bulgu seviye, madde, EK-9 satırı ve GlobalId listesiyle |
ek9_formu | EK-9 formunu Markdown üretir |
model_ozeti | Şema, yazılım, iskelet, sınıf sayıları |
ek5_siniflar | Zorunlu / isteğe bağlı IFC sınıfları, Türkçe adları ve kategori kodları |
ek6_gerekenler | Bir sınıf için zorunlu öznitelik ve özellik setleri (EK-6 / EK-7) |
yonetmelik_bilgisi | Dayanak, kademeli takvim, veri kaynakları |
Model araçları (model_ozeti, yonetmelik_kontrolu, ek9_formu) dosyayı dosya (yol) ya da ifc_metni (IFC metni, + dosya_adi) ile alır. Bütün araçlar salt okurdur ve MCP ek açıklamalarını (readOnlyHint, destructiveHint: false, idempotentHint, openWorldHint: false) taşır; her aracın açıklamasında ne zaman kullanılacağı, girdi örnekleri ve dönüş biçimi yazar.
Sunucu yalnızca verilen dosyayı okur; ağa hiçbir şey göndermez, kalıcı bir şey yazmaz. Cline gibi ajanlar kurulumu llms-install.md ile kendi başına yapabilir.
ifc-ruhsat mcp --http sunucuyu streamable HTTP ile http:// :8080/mcp adresinde açar (durumsuz; birden çok kopya yük dengeleyici arkasında çalışır). Hazır imaj her v* sürümünde yayımlanır:
docker run --rm -p 8080:8080 -e IFC_RUHSAT_API_KEY=gizli ghcr.io/berkantacun/ifc-ruhsat
| Ortam değişkeni | Varsayılan | Anlamı |
|---|---|---|
IFC_RUHSAT_HOST | 0.0.0.0 | Dinlenecek adres (Azure Container Apps IPv6 desteklemediği için IPv4) |
IFC_RUHSAT_PORT | 8080 | Port |
IFC_RUHSAT_API_KEY | — | Verilirse her istekte X-API-Key başlığı bu değere eşit olmalı, yoksa 401 |
İstemci tarafı:
{
"mcpServers": { "ifc-ruhsat": { "type": "http", "url": "https://sunucu.example.com/mcp", "headers": { "X-API-Key": "gizli" } } } }
Uzak modda dosya parametresi güvenlik gereği kapalıdır: sunucu kendi diskinden hiçbir yol okumaz, verilirse araç uzak-dosya-kapali hatası döner. Modeli ifc_metni ile gönderin (sunucu onu geçici bir klasörde açar, iş bitince siler). İmaj Python 3.12 slim üzerinde, root olmayan kullanıcıyla (uid 10001) çalışır. Anahtar yalnız basit bir paylaşımlı sırdır; sunucuyu internete açarken TLS sonlandıran bir ters vekil (Container Apps ingress gibi) arkasında çalıştırın.
| EK-9 satırı | Kontrol | Durum |
|---|---|---|
| 2 Proje bilgileri | IfcProject, IfcPerson, IfcOrganization, IfcPersonAndOrganization öznitelikleri (EK-7 Tablo 7.1–7.5) | otomatik |
| 3 Dosya/proje adı | EK-2 Tablo 2.1 dokuz alan; IfcProject.Name | otomatik (alt disiplin/dosya türü kodları listeyle karşılaştırılmıyor) |
| 4 Mahal no/ismi | IfcSpace.Name Kat_Bölüm_SıraNo (EK-3 Tablo 3.1, kat kodları EK-2 Tablo 2.14), LongName dolu | otomatik |
| 5 Varlık adları | Disiplin-Kategori-Açıklama; disiplin EK-2, kategori kodu EK-5 ve sınıfla uyumu | otomatik |
| 6 Koordinat | IfcProjectedCRS (EPSG:5253–5259, datum, zon, birim) + IfcMapConversion (EK-7 Tablo 7.6–7.7) | otomatik |
| 7 LOD 300 | — | elle |
| 8 / 17 Sınıflar | EK-5 zorunlu + isteğe bağlı liste; IfcProxy / IfcBuildingElementProxy yasak; üst sınıf yerine alt sınıf | otomatik + elle (anlam) |
| 9 / 20 Öznitelik ve özellikler | EK-6'nın 68 zorunlu sınıf tablosunun tamamı: Name, Tag, malzeme (Ad_Dayanım), IfcSystem bağı, katman, Pset_/Qto_/TREpys_ özellikleri, veri tipi, izinli değerler; yanlış sette bulunan özellik ayrıca | otomatik |
| 10 Emsal | IfcSpatialZone alanları EmsalDurumu'na (DAHIL/HARIC/DIGER) göre toplanır, KAKS × parsel alanıyla karşılaştırılır | kısmen (pafta tablosuyla karşılaştırma elle) |
| 11 İskelet | Proje, Saha, Bina, ≥1 Kat; tek IfcProject | otomatik |
| 12 Mahal var mı | mimari disiplinde IfcSpace | otomatik |
| 13–14 Mahal geometrisi | her mahalin hacimli 3B gövdesi var; aynı kattaki mahallerin sınır kutuları %10'dan fazla örtüşmüyor | otomatik (kutu tabanlı, kaba) |
| 15 Kata bağlılık ve kot | her eleman bir kata bağlı; gövdesi katın kotu ile üst katın kotu arasında (±1,5 m) | otomatik |
| 16 Yinelenen | tekrar eden GlobalId; aynı sınıf+ad+yerleşim | otomatik |
| 18 IFC sürümü | IFC4X3, .ifc uzantısı | otomatik |
| 19 Ön Tanımlı Tip | boş / NOTDEFINED; USERDEFINED ise ObjectType | otomatik |
| 1, 21 | dosya boyutu sınırı yayımlanmadı; PDF–IFC uyumu | elle |
EK-6'nın 68 zorunlu sınıf tablosunun tamamı nihai Resmî Gazete ekinden sayfa sayfa okunup kodlandı; her öznitelik IFC 4.3 şemasına, her özellik buildingSMART'ın resmî Pset şablonlarına karşı testle doğrulanır. Hangi tablonun hangi sayfadan geldiği: KAYNAKLAR.md. Geometri kontrolleri (mahal gövdesi, örtüşme, kot) sınır kutusu tabanlıdır — hızlı ve kaba; L biçimli mahallerde yanlış alarm verebilir, bunu bulgu metni de söyler.
Halka açık üç modelde, hiçbir şey değiştirmeden (bu modeller yönetmelik yokken yapıldı; sonuç "hazırlık ne kadar" sorusunun cevabıdır):
| Model | Şema | Süre | Hata / uyarı | Öne çıkanlar |
|---|---|---|---|---|
| buildingSMART resmî IFC 4.3 örneği, Building-Architecture.ifc/Simple-Scene) (SketchUp, 21 varlık) | IFC4X3 | < 1 s | 32 / 5 | Koordinat sistemi EPSG:32760 (Türkiye dilimi değil); 2 vekil sınıf; mahal numaraları ve TREpys_ setleri yok; Pset_BuildingCommon boş |
| Revit 2021 konut, Ifc4_Revit_ARC.ifc (13 MB, 522 varlık) | IFC4 | 1,7 s | 47 / 12 | IFC 4.3 değil; 66 IfcBuildingElementProxy; 511 varlık adı şablon dışı; 47 duvarda FireRating yok; IfcPlate (44 giydirme cephe paneli) yönetmelik listesinde yok; hiç IfcSpace yok; koordinat sistemi yok |
| IfcOpenShell örnek evi, Ifc4_SampleHouse.ifc (2 MB) | IFC4 | < 1 s | 40 / 9 | IFC4; IfcWallStandardCase (4.3'te kaldırıldı); malzeme adları Ad_Dayanım biçiminde değil; 28 elemanda Ön Tanımlı Tip yok |
Ders: bugünkü tipik bir Revit çıktısı ile yönetmeliğin istediği dosya arasındaki fark büyük ama sayılabilir — IFC 4.3'e geçiş, vekil sınıfların sınıflandırılması, isimlendirme şablonu, yangın/kullanım özellikleri ve Türkiye'ye özel parsel/emsal setleri. Araç bu listeyi GlobalId'leriyle veriyor. Bir de yönetmeliğin kendi boşluğu görünüyor: Revit'in giydirme cephe panellerini attığı IfcPlate EK-5'in iki listesinde de yok (KAYNAKLAR.md).
Disiplin-KategoriKodu-Açıklama adıyla modellenir (m.11, EK-5); vekil sınıf yasak (EK-6 6.1.3).TREpys_ setleri dahil) doldurulur (m.12–13).Metin: Resmî Gazete 20260805-2 · Ekler (241 s.): 20260805-2-1.pdf
Yönetmelik verisi src/ifc_ruhsat/ekler/*.json içinde, her dosya kaynağını kendi kaynak alanında söyler. Bir EK-6 tablosu eklemek: ilgili Resmî Gazete sayfasını okuyup ek6_ozellikler.json'a satırı ve sayfa numarasını yazın, testleri çalıştırın. Kural eklemek: src/ifc_ruhsat/kurallar/ altına kontrol(baglam) -> list[Bulgu] imzasıyla bir modül, kontrol.py'daki MODULLER'e bir satır. Her bulgu bir maddeye ve bir EK-9 satırına bağlanmak zorundadır; dayanağı olmayan kural eklenmez.
uv sync && uv run pytest && uv run ruff check .
ifc-ruhsat checks an IFC model against Türkiye's building-permit BIM regulation (Official Gazette 5 Aug 2026, no. 33331; in force 1 Sep 2027; IFC delivery phased in from Sep 2029). It encodes the regulation's annexes — mandatory IFC 4.3 classes and 3-letter category codes (Annex 5), per-class attribute and property-set requirements including the Turkish TREpys_ sets (Annex 6), project/person/organisation and TUREF coordinate requirements (Annex 7) — and fills in the 21-row model quality-control form (Annex 9). Findings cite the article and annex table and list GlobalIds. Vendor-neutral (IfcOpenShell), usable as a CLI, as an MCP server for Claude/Cursor, and as buildingSMART IDS files for Solibri/BIMcollab/usBIM. It is an automated pre-check, not legal advice; rows that cannot be verified by machine are reported as manual, never as passed.
MIT. Yö
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요