Unity3d Game Engine'i oyun geliştirme için entegre eden MCP Server
Claude Desktop config.json'a ekle
{
"mcpServers": {
"codergamester-mcp-unity": {
"command": "node",
"args": [
"~/.mcp/mcp-unity/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/CoderGamester/mcp-unity.git ~/.mcp/mcp-unity
cd ~/.mcp/mcp-unity | 🇺🇸English | 🇨🇳简体中文 | 🇯🇵日本語 |
|---|
,/(/. *(/,
*/(((((/. *((((((*.
.*((((((((((/. *((((((((((/.
./((((((((((((((/ *((((((((((((((/,
,/(((((((((((((/*. */(((((((((((((/*.
,%%#((/((((((* ,/(((((/(#&@@(
,%%##%%##((((((/*. ,/((((/(#&@@@@@@(
,%%######%%##((/(((/*. .*/(((//(%@@@@@@@@@@@(
,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(
,%%####%( /#%#%%%##(//(#@@@@@@@%, #@@@@@@@(
,%%####%( *#%###%@@@@@@( #@@@@@@@(
,%%####%( #%#%@@@@, #@@@@@@@(
,%%##%%%( #%#%@@@@, #@@@@@@@(
,%%%#* #%#%@@@@, *%@@@(
., ,/##*. #%#%@@@@, ./&@#* *`
,/#%#####%%#/, #%#%@@@@, ,/&@@@@@@@@@&\.
`*#########%%%%###%@@@@@@@@@@@@@@@@@@&*´
`*%%###########%@@@@@@@@@@@@@@&*´
`*%%%######%@@@@@@@@@@&*´
`*#%%##%@@@@@&*´
`*%#%@&*´
███╗ ███╗ ██████╗██████╗ ██╗ ██╗███╗ ██╗██╗████████╗██╗ ██╗
████╗ ████║██╔════╝██╔══██╗ ██║ ██║████╗ ██║██║╚══██╔══╝╚██╗ ██╔╝
██╔████╔██║██║ ██████╔╝ ██║ ██║██╔██╗ ██║██║ ██║ ╚████╔╝
██║╚██╔╝██║██║ ██╔═══╝ ██║ ██║██║╚██╗██║██║ ██║ ╚██╔╝
██║ ╚═╝ ██║╚██████╗██║ ╚██████╔╝██║ ╚████║██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝
MCP Unity, Unity Editörü için Model Context Protocol uygulamasıdır ve AI asistanlarının Unity projelerinizle etkileşim kurmasını sağlar. Bu paket, Unity ile MCP protokolünü uygulayan bir Node.js sunucusu arasında bir köprü sağlar ve Cursor, Windsurf, Claude Code, Codex CLI, GitHub Copilot, Google Antigravity ve OpenCode gibi AI ajanlarının Unity Editörü içinde işlem yürütmesini sağlar.
MCP Unity, VSCode benzeri IDEler (Visual Studio Code, Cursor, Windsurf, Google Antigravity) ile otomatik entegrasyon sağlar ve Unity Library/PackedCache klasörünü çalışma alanınıza ekler. Bu özellik:
Aşağıdaki araçlar MCP aracılığıyla Unity sahneleri ve GameObjects'i manipüle etme ve sorgulama için kullanılabilir:
execute_menu_item: Unity menü öğelerini çalıştırır (MenuItem özniteliği ile etiketlenmiş fonksiyonlar)
Örnek istem: "Yeni boş bir GameObject oluşturmak için 'GameObject/Create Empty' menü öğesini çalıştır"
select_gameobject: GameObject'leri hiyerarşide yol veya örnek kimliğine göre seçer
Örnek istem: "Sahnemizdeki Main Camera nesnesini seç"
update_gameobject: GameObject'in temel özelliklerini günceller (ad, etiket, katman, aktif/statik durumu) veya yoksa GameObject oluşturur
Örnek istem: "Player nesnesinin etiketini 'Enemy' olarak ayarla ve onu deaktif yap"
update_component: GameObject'teki bileşen alanlarını günceller veya GameObject'te yoksa bileşeni ekler
Örnek istem: "Player nesnesine Rigidbody bileşeni ekle ve kütlesini 5 olarak ayarla"
add_package: Unity Package Manager'da yeni paketler yükler
Örnek istem: "TextMeshPro paketini projeme ekle"
run_tests: Unity Test Runner kullanarak testleri çalıştırır
Örnek istem: "Projemizdeki tüm EditMode testlerini çalıştır"
send_console_log: Unity'ye konsol günlüğü gönderir
Örnek istem: "Unity Editörüne bir konsol günlüğü gönder"
add_asset_to_scene: AssetDatabase'deki bir varlığı Unity sahnesine ekler
Örnek istem: "Player prefab'ini projemden mevcut sahneye ekle"
create_prefab: İsteğe bağlı MonoBehaviour script ve serialized alan değerleri ile bir prefab oluşturur
Örnek istem: "'PlayerController' script'inden 'Player' adlı bir prefab oluştur"
create_scene: Yeni bir sahne oluşturur ve belirtilen yola kaydeder
Örnek istem: "Scenes klasöründe 'Level1' adlı yeni bir sahne oluştur"
load_scene: Bir sahneyi yol veya ada göre yükler, isteğe bağlı olarak eklemeli yükleme ile
Örnek istem: "MainMenu sahnesi yükle"
delete_scene: Bir sahneyi yol veya ada göre siler ve Build Settings'ten kaldırır
Örnek istem: "Eski TestScene'i projemden sil"
get_gameobject: Tüm bileşenleri içeren belirli bir GameObject hakkında ayrıntılı bilgi alır
Örnek istem: "Player GameObject'inin ayrıntılarını al"
get_console_logs: Sayfalandırma desteği ile Unity konsolundan günlükleri alır
Örnek istem: "Unity konsolundan son 20 hata günlüğünü göster"
recompile_scripts: Unity projesindeki tüm script'leri yeniden derler
Örnek istem: "Unity projemizdeki script'leri yeniden derle"
save_scene: Mevcut etkin sahneyi kaydeder, isteğe bağlı olarak yeni yola Farklı Kaydet ile
Örnek istem: "Mevcut sahneyi kaydet" veya "Sahneyi 'Assets/Scenes/Level2.unity' olarak kaydet"
get_scene_info: Etkin sahne hakkında bilgi alır: ad, yol, dirty durumu ve yüklü tüm sahneler
Örnek istem: "Projemde şu anda hangi sahneler yüklü?"
unload_scene: Bir sahneyi hiyerarşiden boşaltır (sahne varlığını silmez)
Örnek istem: "UI sahnesi hiyerarşiden boşalt"
duplicate_gameobject: Sahnede isteğe bağlı yeniden adlandırma ve yeniden ebeveynleştirme ile bir GameObject'i kopyalar
Örnek istem: "Enemy prefab'ini 5 kez kopyala ve Enemy_1 ile Enemy_5 arasında adlandır"
delete_gameobject: Sahnesinden bir GameObject'i siler
Örnek istem: "Eski Player nesnesini sahnesinden sil"
reparent_gameobject: Hiyerarşideki GameObject'in ebeveynini değiştirir
Örnek istem: "HealthBar nesnesini UI Canvas'ının alt öğesi olacak şekilde taşı"
move_gameobject: Bir GameObject'i yeni bir konuma taşır (yerel veya dünya alanı)
Örnek istem: "Player nesnesini dünya alanında (10, 0, 5) konumuna taşı"
rotate_gameobject: Bir GameObject'i yeni bir rotasyona döndürür (yerel veya dünya alanı, Euler açıları veya quaternion)
Örnek istem: "Kamerayı Y ekseni üzerinde 45 derece döndür"
scale_gameobject: Bir GameObject'i yeni bir yerel ölçeğe ölçeklendir
Örnek istem: "Enemy nesnesini boyutunun iki katına ölçeklendir"
set_transform: Bir GameObject'in konumunu, rotasyonunu ve ölçeğini tek bir işlemde ayarlar
Örnek istem: "Cube'ün konumunu (0, 5, 0), rotasyonunu (0, 90, 0) ve ölçeğini (2, 2, 2) olarak ayarla"
create_material: Belirtilen shader ile yeni bir materyal oluşturur ve projeye kaydeder
Örnek istem: "URP Lit shader kullanarak 'EnemyMaterial' adlı kırmızı bir materyal oluştur"
assign_material: Bir GameObject'in Renderer bileşenine bir materyal atar
Örnek istem: "'EnemyMaterial'ı Enemy GameObject'ine ata"
modify_material: Mevcut bir materyalin özelliklerini değiştirir (renkler, float'lar, dokular)
Örnek istem: "'EnemyMaterial'ın rengini mavi olarak değiştir ve metalik'i 0.8 olarak ayarla"
get_material_info: Shader ve tüm özellikleri içeren materyal hakkında ayrıntılı bilgi alır
Örnek istem: "'PlayerMaterial'ın tüm özelliklerini göster"
batch_execute: Birden fazla araç işlemini tek bir batch istekte çalıştırır, tur sayısını azaltır ve başarısızlık durumunda isteğe bağlı geri alma ile atomic işlemleri sağlar
Örnek istem: "Enemy_1 ile Enemy_10 arasında adlandırılmış 10 boş GameObject'i tek bir batch işleminde oluştur"
unity://menu-items: execute_menu_item aracını kolaylaştırmak için Unity Editörü'ndeki tüm kullanılabilir menü öğelerinin bir listesini alır
Örnek istem: "GameObject oluşturma ile ilgili tüm kullanılabilir menü öğelerini göster"
unity://scenes-hierarchy: Mevcut Unity sahne hiyerarşisindeki tüm game objects'in bir listesini alır
Örnek istem: "Geçerli sahneler hiyerarşi yapısını göster"
unity://gameobject/{id}: Örnek kimliğine veya sahne hiyerarşisindeki nesne yoluna göre belirli bir GameObject hakkında ayrıntılı bilgi alır; tüm GameObject bileşenleri ile serialized özellikler ve alanları içerir
Örnek istem: "Player GameObject hakkında ayrıntılı bilgi al"
unity://logs: Unity konsolundaki tüm günlüklerin bir listesini alır
Örnek istem: "Unity konsolundan son hata mesajlarını göster"
unity://packages: Unity Package Manager'dan yüklü ve kullanılabilir paketler hakkında bilgi alır
Örnek istem: "Unity projemde şu anda yüklü olan tüm paketleri listele"
unity://assets: Unity Asset Database'deki varlıklar hakkında bilgi alır
Örnek istem: "Projemde tüm doku varlıklarını bul"
unity://tests/{testMode}: Unity Test Runner'daki testler hakkında bilgi alır
Örnek istem: "Unity projemizdeki tüm kullanılabilir testleri listele"
[!NOTE] Boşluk İçeren Proje Yolları
MCP Unity boşluk içeren proje yollarını destekler. Ancak bağlantı sorunları yaşıyorsanız, sorun giderme adımı olarak projenizi boşluk olmayan bir yola taşımayı deneyin.
Örnekler:
- ✅ Önerilen:
C:\Users\YourUser\Documents\UnityProjects\MyAwesomeGame- ✅ Desteklenen:
C:\Users\Your User\Documents\Unity Projects\My Awesome Game
MCP Unity Server'ı yüklemek çok adımlı bir işlemdir:
MCP Unity sunucusunu çalıştırmak için, bilgisayarınızda Node.js 18 veya daha yeni bir sürüm yüklü olmalıdır:

node --version
brew install node@18
node --version
https://github.com/CoderGamester/mcp-unity.git
AI istemcinizin MCP yapılandırma dosyasını açın ve MCP Unity sunucu yapılandırmasını ekleyin:
ABSOLUTE/PATH/TOdeğerini MCP Unity kurulumunuzun mutlak yolunun yerine geçirin veya Unity Editörü MCP Server penceresinden metni kopyalayın (Tools > MCP Unity > Server Window).Git'e yürütülen ve Unity proje ağacı içinde yaşayan konfigürasyonlar için (ör.
<project>/.vscode/mcp.json,<project>/opencode.json,<project>/.cursor/mcp.json,<project>/.mcp.json,<project>/.codex/config.toml), projeyle ilgili yolu tercih edin ve aynı dosya makineler arasında çalışsın. Server Window'da "Use relative path" seçeneğini açıp/kapatarak kopyalama-yapıştırma snippet'i mutlak ve proje-göreceli formları arasında değiştirin. Configure GitHub Copilot, Configure OpenCode, Configure Cursor (Project), Configure Claude Code (Project) ve Configure Codex CLI (Project) düğmeleri zaten otomatik olarak nispi yolları yayarlar.Proje-yerel düğmeler (Cursor / Claude Code / Codex CLI), MCP sunucu girişini global kullanıcı yapılandırması yerine Unity proje dizinine yazarlar, böylece diğer (Unity olmayan) projeler MCP bağlantı hatası uyarıları görmezler. Codex CLI (Project) özelinde, proje kökünden ilk kez
codexçalıştırdığınızda, Codex<project>/.codex/config.tomldosyasını yok sayar aksi takdirde proje güven istemini onaylamalısınız.
JSON tabanlı istemciler için (Cursor, Windsurf, Claude Code, GitHub Copilot, vb.):
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"
]
}
}
}
Çalışma alanı kapsamlı VS Code / GitHub Copilot (.vscode/mcp.json) için, yolun makineler arasında taşınabilir olması için ${workspaceFolder} kullanın:
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"${workspaceFolder}/Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"
]
}
}
}
Codex CLI için (~/.codex/config.toml):
[mcp_servers.mcp-unity]
command = "node"
args = ["ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"]
Cursor — proje-yerel (Unity proje kökündeki .cursor/mcp.json, proje-göreceli yol):
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"
]
}
}
}
Claude Code — proje-yerel (Unity proje kökündeki .mcp.json, proje-göreceli yol — Claude Code'un takım paylaşımı MCP yapılandırması):
{
"mcpServers": {
"mcp-unity": {
"command": "node",
"args": [
"Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"
]
}
}
}
Codex CLI — proje-yerel (Unity proje kökündeki .codex/config.toml, proje-göreceli yol):
[mcp_servers.mcp-unity]
command = "node"
args = ["Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"]
Codex, bu dosyayı global
~/.codex/config.tomlüzerine katmanlar, ancak yalnızca proje güvenilir olarak işaretlenmişse. Proje içine ilk kezcdyaptığınızda vecodexçalıştırdığınızda, güven istemini onaylayın — aksi takdirde Codex.codex/config.tomldosyasını yok sayar.
OpenCode için (Unity proje kökündeki opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp-unity": {
"type": "local",
"enabled": true,
"command": ["node", "Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"],
"environment": {}
}
}
}
Not: UPM paket önbelleği yolundaki
@<hash>segmenti, paket güncellendiğinde değişir. MCP Unity'yi güncellerseniz, Configure düğmesini yeniden çalıştırın (veya yolu manuel olarak güncelleyin) böylece snippet yeni önbellek dizinini göstersin.
AI istemcisi WebSocket sunucusuna bağlanırken, penceredeki yeşil kutuda otomatik olarak gösterilir
Varsayılan olarak, WebSocket sunucusu '8090' bağlantı noktasında çalışır. Bu bağlantı noktasını iki şekilde değiştirebilirsiniz:
Varsayılan olarak, MCP sunucusu ile WebSocket arasındaki zaman aşımı 10 saniyedir. Kullandığınız işletim sistemine bağlı olarak değiştirebilirsiniz:
[!TIP]
AI Kodlama IDE'niz (ör. Claude Desktop, Cursor IDE, Windsurf IDE) ile MCP Sunucusu arasındaki zaman aşımı IDE'ye bağlıdır.
Varsayılan olarak, WebSocket sunucusu 'localhost' üzerine bağlanır. Diğer makinelerden MCP köprüsü bağlantılarına izin vermek için:
UNITY_HOST=192.168.1.100 node server.jsGodot oyun motoru ile etkileşim kurmak için bir MCP sunucusu; Godot projelerinde sahneleri düzenlemek, çalıştırmak, debug etmek ve yönetmek için araçlar sunuyor.
Unity Editor ve Unity ile yapılan oyunlar için MCP Server
Unreal Engine 5.7 editor plugin'i olup AI asistanlarına Blueprint, Material, Animation, Niagara, Config, Editor, Project Index ve Engine Source'a MCP üzerinden tam okuma/yazma erişimi sağlar. 9 alanda 119 action, saf C++ ve gömülü Streamable HTTP server ile Python köprüsü yoktur.
Popüler oyunlar olan League of Legends, TFT ve Valorant'ın gerçek zamanlı oyun verilerine erişin; şampiyon analitiği, esports takvimi, meta komposizyonları ve karakter istatistiklerini keşfedin.
Chess.com oyuncu verilerini, oyun kayıtlarını ve diğer halka açık bilgileri standartlaştırılmış MCP arayüzleri aracılığıyla erişin; AI asistanlarının satranç bilgilerini araştırması ve analiz etmesine olanak tanıyın.
Fantasy Premier League verilerini gerçek zamanlı olarak sorgulayabileceğiniz ve analiz yapabileceğiniz bir MCP sunucusu.