{"id":36517,"date":"2025-12-19T06:30:46","date_gmt":"2025-12-19T03:30:46","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/"},"modified":"2025-12-19T06:30:46","modified_gmt":"2025-12-19T03:30:46","slug":"toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/","title":{"rendered":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek"},"content":{"rendered":"<h2>Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek<\/h2>\n<p>Yo\u011fun i\u015f temposu i\u00e7inde, karma\u015f\u0131k teknik konulara dalmak veya yeni teknolojileri \u00f6\u011frenmek \u00e7o\u011fu zaman l\u00fcks gibi gelebilir. Ancak &#8220;vibecoding&#8221; felsefesi, toplant\u0131 aralar\u0131ndaki k\u0131sa bo\u015fluklar\u0131, odaklanm\u0131\u015f ve verimli kodlama seanslar\u0131na d\u00f6n\u00fc\u015ft\u00fcrerek bu alg\u0131y\u0131 de\u011fi\u015ftirmeyi hedefler. Bu makalede, bu yakla\u015f\u0131m\u0131 kullanarak Minecraft Protokol (MCP) sunucular\u0131n\u0131n derinliklerine inecek, temel mimarisini anlayacak ve AWS Kiro&#8217;nun (veya benzeri bir AWS entegrasyon arac\u0131n\u0131n) g\u00fcc\u00fcnden faydalanarak nas\u0131l bir Proof of Concept (PoC) geli\u015ftirebilece\u011fimizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.<\/p>\n<h3>Vibecoding Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>Vibecoding, g\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zl\u0131 tempolu i\u015f ortam\u0131nda geli\u015ftiricilerin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 zaman k\u0131s\u0131tlamalar\u0131na yarat\u0131c\u0131 bir \u00e7\u00f6z\u00fcm sunar. B\u00fcy\u00fck, kesintisiz kodlama bloklar\u0131 bulmak zorla\u015ft\u0131\u011f\u0131nda, k\u0131sa ama yo\u011fun odaklanma s\u00fcrelerini de\u011ferlendirerek anlaml\u0131 ilerlemeler kaydetmeyi ama\u00e7lar.<\/p>\n<h4>Zaman K\u0131s\u0131tlamalar\u0131 ve Yarat\u0131c\u0131l\u0131k<\/h4>\n<p>Modern i\u015f ak\u0131\u015flar\u0131 genellikle toplant\u0131lar, e-postalar ve ani taleplerle doludur. Bu durum, derinlemesine teknik \u00e7al\u0131\u015fmalara ayr\u0131lan zaman\u0131 par\u00e7alar. Vibecoding, bu par\u00e7alanm\u0131\u015f zaman dilimlerini birer f\u0131rsata \u00e7evirerek, geli\u015ftiricilerin yarat\u0131c\u0131l\u0131klar\u0131n\u0131 beslemelerine ve karma\u015f\u0131k problemleri k\u00fc\u00e7\u00fck, y\u00f6netilebilir par\u00e7alara ay\u0131rarak \u00e7\u00f6zmelerine olanak tan\u0131r.<\/p>\n<h4>Mikro \u00d6\u011frenme ve Prototipleme<\/h4>\n<p>B\u00fcy\u00fck bir sistemi ba\u015ftan sona \u00f6\u011frenmek yerine, vibecoding ile mikro \u00f6\u011frenme seanslar\u0131 d\u00fczenlenebilir. \u00d6rne\u011fin, bir MCP sunucusunun yaln\u0131zca &#8220;handshake&#8221; protokol\u00fcn\u00fc anlamak i\u00e7in 30 dakikan\u0131z\u0131 ay\u0131rabilir, ard\u0131ndan bir sonraki bo\u015flukta &#8220;login&#8221; paketlerini inceleyebilirsiniz. Bu yakla\u015f\u0131m, PoC (Proof of Concept) geli\u015ftirmek i\u00e7in de idealdir; fikirlerinizi h\u0131zla test edebilir ve uygulanabilirliklerini k\u0131sa s\u00fcrede de\u011ferlendirebilirsiniz.<\/p>\n<h4>Verimlili\u011fi Art\u0131rma Stratejileri<\/h4>\n<p>Vibecoding&#8217;in ba\u015far\u0131s\u0131, do\u011fru stratejileri benimsemekte yatar. \u00d6ncelikle, net ve k\u00fc\u00e7\u00fck hedefler belirlemek \u00f6nemlidir. \u00d6rne\u011fin, &#8220;Bug\u00fcn sadece bir MCP sunucusunun ilk ba\u011flant\u0131 paketini parse edece\u011fim.&#8221; gibi. \u0130kincisi, dikkat da\u011f\u0131t\u0131c\u0131 unsurlar\u0131 minimuma indirmek (bildirimleri kapatmak, odaklanm\u0131\u015f bir ortam yaratmak). \u00dc\u00e7\u00fcnc\u00fcs\u00fc, k\u0131sa molalar vererek zihni taze tutmak. Bu stratejiler, k\u0131s\u0131tl\u0131 zamanda maksimum verim almay\u0131 sa\u011flar.<\/p>\n<h3>Minecraft Protokol Sunucular\u0131n\u0131 Anlamak<\/h3>\n<p>Minecraft, basit bloklardan olu\u015fan bir d\u00fcnyadan \u00e7ok daha fazlas\u0131d\u0131r; alt\u0131nda olduk\u00e7a sofistike bir a\u011f protokol\u00fc yatar. Kendi sunucunuzu geli\u015ftirmek, bu protokol\u00fcn inceliklerini anlaman\u0131n en iyi yoludur.<\/p>\n<h4>Minecraft Protokol\u00fcn\u00fcn Temelleri<\/h4>\n<p>Minecraft protokol\u00fc, istemci (oyun) ile sunucu aras\u0131ndaki t\u00fcm ileti\u015fimi y\u00f6neten bir TCP\/IP tabanl\u0131 protokold\u00fcr. Veri paketleri (packets) arac\u0131l\u0131\u011f\u0131yla oyuncu hareketleri, envanter de\u011fi\u015fiklikleri, sohbet mesajlar\u0131 ve d\u00fcnya g\u00fcncellemeleri gibi bilgiler aktar\u0131l\u0131r. Her paketin bir ID&#8217;si, uzunlu\u011fu ve belirli bir veri yap\u0131s\u0131 vard\u0131r. Protokol, s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f veri formatlar\u0131n\u0131 ve \u015fifrelemeyi de destekler.<\/p>\n<h4>Protokol\u00fcn Evrimi ve Versiyon Farkl\u0131l\u0131klar\u0131<\/h4>\n<p>Minecraft s\u00fcrekli g\u00fcncellendi\u011fi i\u00e7in protokol de zamanla evrim ge\u00e7irmi\u015ftir. Her yeni oyun s\u00fcr\u00fcm\u00fc (\u00f6rn. 1.16, 1.17, 1.18), protokolde de\u011fi\u015fiklikler getirebilir. Bu durum, kendi sunucunuzu geli\u015ftirirken belirli bir Minecraft s\u00fcr\u00fcm\u00fcn\u00fc hedeflemeniz gerekti\u011fi anlam\u0131na gelir. Geriye d\u00f6n\u00fck uyumluluk sa\u011flamak veya birden fazla s\u00fcr\u00fcm\u00fc desteklemek, protokol farkl\u0131l\u0131klar\u0131n\u0131 y\u00f6netmeyi gerektiren karma\u015f\u0131k bir i\u015ftir.<\/p>\n<h4>Neden Kendi MCP Sunucumuzu Geli\u015ftirmeliyiz?<\/h4>\n<p>Haz\u0131r Minecraft sunucu yaz\u0131l\u0131mlar\u0131 (Spigot, Paper vb.) mevcutken, neden kendi sunucumuzu yazal\u0131m?<\/p>\n<ul>\n<li><strong>Derinlemesine Anlay\u0131\u015f:<\/strong> Protokol\u00fcn nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 s\u0131f\u0131rdan \u00f6\u011frenmek, a\u011f programlama ve oyun geli\u015ftirme konular\u0131nda paha bi\u00e7ilmez bir deneyim sunar.<\/li>\n<li><strong>\u00d6zelle\u015ftirme:<\/strong> Kendi sunucunuz, haz\u0131r \u00e7\u00f6z\u00fcmlerin sunmad\u0131\u011f\u0131 d\u00fczeyde esneklik ve \u00f6zelle\u015ftirme imkan\u0131 sa\u011flar. Tamamen yeni oyun mekanikleri veya benzersiz \u00f6zellikler ekleyebilirsiniz.<\/li>\n<li><strong>Performans Optimizasyonu:<\/strong> Belirli bir amaca y\u00f6nelik olarak geli\u015ftirilen bir sunucu, genel ama\u00e7l\u0131 sunuculardan daha optimize ve verimli olabilir.<\/li>\n<li><strong>E\u011fitim:<\/strong> Bu, karma\u015f\u0131k bir sistemi tersine m\u00fchendislik ve uygulama prati\u011fi i\u00e7in m\u00fckemmel bir \u00f6\u011frenme projesidir.<\/li>\n<\/ul>\n<h3>MCP Sunucusu Mimarisi ve Temel Bile\u015fenleri<\/h3>\n<p>Bir Minecraft sunucusunun kalbinde, a\u011fdan gelen verileri i\u015fleyen ve oyun d\u00fcnyas\u0131n\u0131n durumunu y\u00f6neten karma\u015f\u0131k bir mimari yatar.<\/p>\n<h4>Ba\u011flant\u0131 Y\u00f6netimi ve A\u011f Katman\u0131<\/h4>\n<p>Sunucunun ilk g\u00f6revi, istemcilerden gelen TCP ba\u011flant\u0131lar\u0131n\u0131 kabul etmek ve y\u00f6netmektir. Her yeni ba\u011flant\u0131 i\u00e7in ayr\u0131 bir i\u015f par\u00e7ac\u0131\u011f\u0131 (thread) veya asenkron bir mekanizma kullan\u0131labilir. A\u011f katman\u0131, gelen paketleri okur, s\u0131k\u0131\u015ft\u0131rmay\u0131 a\u00e7ar, \u015fifrelemeyi \u00e7\u00f6zer ve uygun i\u015fleyiciye y\u00f6nlendirir. Giden paketler ise tam tersi bir s\u00fcre\u00e7ten ge\u00e7er.<\/p>\n<h4>Oyun Mant\u0131\u011f\u0131 ve Durum Y\u00f6netimi<\/h4>\n<p>Bu katman, Minecraft d\u00fcnyas\u0131n\u0131n kurallar\u0131n\u0131, oyuncu etkile\u015fimlerini, envanterleri, canavarlar\u0131 ve blok de\u011fi\u015fikliklerini y\u00f6netir. Her oyuncunun kendi durumu (konum, sa\u011fl\u0131k, envanter) vard\u0131r ve sunucu bu durumlar\u0131 s\u00fcrekli olarak g\u00fcnceller ve di\u011fer oyunculara senkronize eder. Bu, genellikle bir &#8220;tick&#8221; d\u00f6ng\u00fcs\u00fc i\u00e7inde ger\u00e7ekle\u015fir; sunucu saniyede belirli say\u0131da (genellikle 20) oyun g\u00fcncellemesi yapar.<\/p>\n<h4>Veri Depolama ve Kal\u0131c\u0131l\u0131k<\/h4>\n<p>Oyun d\u00fcnyas\u0131 verileri (bloklar, b\u00f6lgeler, oyuncu verileri) genellikle sunucu kapat\u0131ld\u0131\u011f\u0131nda kaybolmamas\u0131 i\u00e7in kal\u0131c\u0131 olarak depolan\u0131r. Bu, dosya sisteminde (\u00f6rne\u011fin, NBT format\u0131nda) veya bir veritaban\u0131nda (SQL, NoSQL) yap\u0131labilir. B\u00fcy\u00fck d\u00fcnyalar i\u00e7in verimli depolama ve eri\u015fim mekanizmalar\u0131 kritik \u00f6neme sahiptir.<\/p>\n<h3>Bir MCP Sunucusu PoC&#8217;si Olu\u015fturmak: Ad\u0131m Ad\u0131m Yakla\u015f\u0131m<\/h3>\n<p>Kendi MCP sunucunuzu s\u0131f\u0131rdan yazmak g\u00f6z korkutucu gelebilir, ancak bir PoC ile ba\u015flayarak temel i\u015flevselli\u011fi ad\u0131m ad\u0131m in\u015fa edebilirsiniz.<\/p>\n<h4>Geli\u015ftirme Ortam\u0131n\u0131n Kurulumu<\/h4>\n<p>Bir PoC i\u00e7in Python (asyncio ile), Java veya Go gibi diller idealdir.<\/p>\n<ol>\n<li><strong>Dil Se\u00e7imi:<\/strong> Python (h\u0131zl\u0131 prototipleme i\u00e7in), Java (performans ve olgun ekosistem i\u00e7in) veya Go (e\u015fzamanl\u0131l\u0131k ve performans i\u00e7in).<\/li>\n<li><strong>IDE\/Edit\u00f6r:<\/strong> VS Code, IntelliJ IDEA veya PyCharm.<\/li>\n<li><strong>Gerekli K\u00fct\u00fcphaneler:<\/strong> A\u011f ileti\u015fimi i\u00e7in soket k\u00fct\u00fcphaneleri, belki bir byte i\u015fleme k\u00fct\u00fcphanesi.<\/li>\n<\/ol>\n<h4>Temel Protokol \u0130\u015fleme (Handshake, Login)<\/h4>\n<p>Bir MCP sunucusunun ilk ve en temel ad\u0131m\u0131, istemcinin ba\u011flant\u0131 kurmas\u0131n\u0131 ve oturum a\u00e7mas\u0131n\u0131 sa\u011flamakt\u0131r.<\/p>\n<ol>\n<li><strong>Handshake Paketi:<\/strong> \u0130stemci ilk olarak bir &#8220;Handshake&#8221; paketi g\u00f6nderir. Bu paket, istemcinin hangi protokol versiyonunu kulland\u0131\u011f\u0131n\u0131 ve hangi sunucuya ba\u011flanmak istedi\u011fini belirtir. Sunucu bu bilgiyi al\u0131r ve ba\u011flant\u0131 durumunu (status, login) ayarlar.<\/li>\n<li><strong>Durum (Status) Paketi:<\/strong> \u0130stemci, sunucunun durumunu (oyuncu say\u0131s\u0131, sunucu mesaj\u0131) sorgulamak i\u00e7in bir &#8220;Status Request&#8221; paketi g\u00f6nderebilir. Sunucu da bir &#8220;Status Response&#8221; paketi ile cevap verir.<\/li>\n<li><strong>Oturum A\u00e7ma (Login) Paketi:<\/strong> \u0130stemci, &#8220;Login Start&#8221; paketi ile kullan\u0131c\u0131 ad\u0131n\u0131 g\u00f6nderir. Sunucu, bu ad\u0131 do\u011frulad\u0131ktan sonra (\u00f6rne\u011fin, Mojang API&#8217;si ile), \u015fifreleme anahtarlar\u0131 al\u0131\u015fveri\u015fi yapar ve &#8220;Login Success&#8221; paketi ile oturum a\u00e7may\u0131 onaylar.<\/li>\n<\/ol>\n<h4>Basit Bir Oyun D\u00fcnyas\u0131 Sim\u00fclasyonu<\/h4>\n<p>Oturum a\u00e7ma ba\u015far\u0131l\u0131 olduktan sonra, sunucu oyuncuyu bir d\u00fcnyaya \u0131\u015f\u0131nlamal\u0131d\u0131r. PoC a\u015famas\u0131nda, bu d\u00fcnya \u00e7ok basit olabilir:<\/p>\n<ul>\n<li>Oyuncuyu belirli bir koordinata \u0131\u015f\u0131nlay\u0131n.<\/li>\n<li>\u00c7evresine birka\u00e7 blok g\u00f6nderin (\u00f6rne\u011fin, d\u00fcz bir \u00e7imenlik alan).<\/li>\n<li>Oyuncunun hareket paketlerini i\u015fleyin ve konumunu g\u00fcncelleyin.<\/li>\n<\/ul>\n<h4>Kod \u00d6rne\u011fi: Basit Bir Paket \u0130\u015fleyici (Python Pseudocode)<\/h4>\n<pre><code class=\"language-python\">import socket\nimport struct\n\n# Basit bir paket okuyucu (Variable-length integer - VarInt)\ndef read_varint(sock):\n    value = 0\n    num_read = 0\n    while True:\n        byte = ord(sock.recv(1))\n        value |= (byte & 0x7F) << (7 * num_read)\n        if not (byte &#038; 0x80):\n            break\n        num_read += 1\n        if num_read > 5: # VarInt max 5 bytes\n            raise RuntimeError(\"VarInt is too big\")\n    return value\n\n# Basit bir paket yaz\u0131c\u0131\ndef write_varint(value):\n    out = b''\n    while True:\n        byte = value & 0x7F\n        value >>= 7\n        if value:\n            byte |= 0x80\n        out += struct.pack('B', byte)\n        if not value:\n            break\n    return out\n\ndef handle_client(conn, addr):\n    print(f\"Yeni ba\u011flant\u0131: {addr}\")\n    try:\n        # Handshake paketi i\u015fleme\n        packet_length = read_varint(conn)\n        packet_id = read_varint(conn) # Genellikle Handshake i\u00e7in 0x00\n\n        if packet_id == 0x00: # Handshake\n            protocol_version = read_varint(conn)\n            server_address_len = read_varint(conn)\n            server_address = conn.recv(server_address_len).decode('utf-8')\n            server_port = struct.unpack('>H', conn.recv(2))[0]\n            next_state = read_varint(conn) # 1 for Status, 2 for Login\n\n            print(f\"Handshake: Protokol V{protocol_version}, Hedef: {server_address}:{server_port}, Sonraki Durum: {next_state}\")\n\n            if next_state == 1: # Status Request\n                # \u0130stemci Status Request g\u00f6nderir\n                status_request_len = read_varint(conn)\n                status_request_id = read_varint(conn) # 0x00\n                if status_request_id == 0x00:\n                    # Basit bir Status Response g\u00f6nder\n                    json_response = b'{\"version\": {\"name\": \"1.16.5\", \"protocol\": 754}, \"players\": {\"max\": 20, \"online\": 1}, \"description\": {\"text\": \"Vibecoding PoC Server\"}}'\n                    response_packet_id = write_varint(0x00)\n                    response_data = response_packet_id + write_varint(len(json_response)) + json_response\n                    conn.sendall(write_varint(len(response_data)) + response_data)\n                    print(\"Status Response g\u00f6nderildi.\")\n                # Ping\/Pong i\u015fleme (iste\u011fe ba\u011fl\u0131)\n                ping_len = read_varint(conn)\n                ping_id = read_varint(conn) # 0x01\n                payload = conn.recv(8) # 8 byte long\n                pong_packet_id = write_varint(0x01)\n                pong_data = pong_packet_id + payload\n                conn.sendall(write_varint(len(pong_data)) + pong_data)\n                print(\"Pong g\u00f6nderildi.\")\n            elif next_state == 2: # Login Request\n                # \u0130stemci Login Start g\u00f6nderir\n                login_start_len = read_varint(conn)\n                login_start_id = read_varint(conn) # 0x00\n                name_len = read_varint(conn)\n                username = conn.recv(name_len).decode('utf-8')\n                print(f\"Login Start: Kullan\u0131c\u0131 Ad\u0131: {username}\")\n\n                # Basit bir Login Success g\u00f6nder (ger\u00e7ek bir auth yok)\n                uuid = b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x01' # \u00d6rnek UUID\n                login_success_id = write_varint(0x02)\n                login_success_data = login_success_id + uuid + write_varint(len(username.encode('utf-8'))) + username.encode('utf-8')\n                conn.sendall(write_varint(len(login_success_data)) + login_success_data)\n                print(f\"Login Success g\u00f6nderildi: {username}\")\n\n                # Oyuncuyu d\u00fcnyaya \u0131\u015f\u0131nla (\u00f6rnek paketler)\n                # Play state'e ge\u00e7i\u015f\n                # Join Game paketi (0x26 for 1.16.5)\n                # Pozisyon paketi (0x38 for 1.16.5)\n                # ... (daha fazla oyun paketi)\n                \n        # Di\u011fer paketleri i\u015fleme d\u00f6ng\u00fcs\u00fc burada devam eder\n        while True:\n            # Gelen oyun paketlerini okuyun ve i\u015fleyin\n            pass\n\n    except Exception as e:\n        print(f\"Hata: {e}\")\n    finally:\n        conn.close()\n        print(f\"Ba\u011flant\u0131 kapat\u0131ld\u0131: {addr}\")\n\ndef start_server(host, port):\n    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    server_socket.bind((host, port))\n    server_socket.listen(5)\n    print(f\"Sunucu {host}:{port} \u00fczerinde dinliyor...\")\n\n    while True:\n        conn, addr = server_socket.accept()\n        handle_client(conn, addr) # Her ba\u011flant\u0131 i\u00e7in yeni bir i\u015fleyici \u00e7a\u011f\u0131r\n\n# start_server('0.0.0.0', 25565) # \u00d6rnek kullan\u0131m<\/pre>\n<p><\/code><br \/>\nBu kod, basit bir Minecraft istemcisinin ba\u011flan\u0131p oturum a\u00e7mas\u0131n\u0131 sa\u011flayan temel bir iskelettir. Ger\u00e7ek bir sunucu \u00e7ok daha fazla paket t\u00fcr\u00fcn\u00fc ve karma\u015f\u0131k oyun mant\u0131\u011f\u0131n\u0131 i\u00e7erecektir.<\/p>\n<h3>AWS Entegrasyonu ve \"Kiro\" ile Da\u011f\u0131t\u0131m<\/h3>\n<p>PoC'nizi yerel makinenizde \u00e7al\u0131\u015ft\u0131rmak yeterli olsa da, ba\u015fkalar\u0131yla payla\u015fmak veya daha ger\u00e7ek\u00e7i bir ortamda test etmek i\u00e7in buluta ta\u015f\u0131mak iyi bir fikirdir. Burada AWS ve \"Kiro\" devreye giriyor. \"AWS Kiro\" terimi standart bir AWS servisi de\u011fildir, bu nedenle burada \"Kiro\"yu, AWS kaynaklar\u0131n\u0131n da\u011f\u0131t\u0131m\u0131n\u0131 ve y\u00f6netimini kolayla\u015ft\u0131ran \u00f6zel bir ara\u00e7 veya dahili bir platform olarak ele alaca\u011f\u0131z. E\u011fer \"Kiro\" bir typo ise ve \u00f6rne\u011fin AWS EKS (Elastic Kubernetes Service) kastediliyorsa, EKS'nin faydalar\u0131 da bu b\u00f6l\u00fcmde ele al\u0131nabilir.<\/p>\n<h4>AWS Ortam\u0131n\u0131n Haz\u0131rlanmas\u0131<\/h4>\n<p>PoC'nizi AWS'ye da\u011f\u0131tmadan \u00f6nce temel bir AWS ortam\u0131 haz\u0131rlaman\u0131z gerekir:<\/p>\n<ol>\n<li><strong>AWS Hesab\u0131:<\/strong> Bir AWS hesab\u0131n\u0131z\u0131n oldu\u011fundan emin olun.<\/li>\n<li><strong>IAM Kullan\u0131c\u0131s\u0131\/Rol\u00fc:<\/strong> Da\u011f\u0131t\u0131m i\u00e7in gerekli izinlere sahip bir IAM kullan\u0131c\u0131s\u0131 veya rol\u00fc olu\u015fturun.<\/li>\n<li><strong>VPC ve G\u00fcvenlik Gruplar\u0131:<\/strong> Sunucunuzun \u00e7al\u0131\u015faca\u011f\u0131 bir Sanal \u00d6zel Bulut (VPC) ve gerekli portlar\u0131 (\u00f6rn. Minecraft i\u00e7in 25565\/TCP) a\u00e7an bir g\u00fcvenlik grubu yap\u0131land\u0131r\u0131n.<\/li>\n<\/ol>\n<h4>\"Kiro\" Nedir ve Nas\u0131l Kullan\u0131l\u0131r?<\/h4>\n<p>Varsay\u0131msal olarak, \"Kiro\" \u015fu i\u015flevleri g\u00f6ren bir ara\u00e7 olabilir:<\/p>\n<ul>\n<li><strong>Otomatik Kaynak Sa\u011flama:<\/strong> EC2 instance'lar\u0131, ECS cluster'lar\u0131 veya EKS nodelar\u0131n\u0131 otomatik olarak ba\u015flat\u0131r.<\/li>\n<li><strong>Kod Da\u011f\u0131t\u0131m\u0131:<\/strong> Geli\u015ftirdi\u011finiz MCP sunucusu kodunu belirlenen AWS kaynaklar\u0131na da\u011f\u0131t\u0131r.<\/li>\n<li><strong>Yap\u0131land\u0131rma Y\u00f6netimi:<\/strong> \u00c7evre de\u011fi\u015fkenleri, g\u00fcvenlik gruplar\u0131 ve a\u011f ayarlar\u0131 gibi AWS yap\u0131land\u0131rmalar\u0131n\u0131 y\u00f6netir.<\/li>\n<li><strong>\u0130zleme ve G\u00fcnl\u00fckleme Entegrasyonu:<\/strong> CloudWatch gibi AWS servisleriyle entegre olarak PoC'nizin performans\u0131n\u0131 ve hatalar\u0131n\u0131 izlemeyi kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<p>\"Kiro\"yu kullanmak genellikle basit bir CLI komutu veya bir yap\u0131land\u0131rma dosyas\u0131 arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015fir. \u00d6rne\u011fin: <code>kiro deploy --project mcp-poc --region eu-central-1<\/code>.<\/p>\n<h4>PoC'nin AWS \u00dczerinde Da\u011f\u0131t\u0131m\u0131 (EC2\/ECS\/EKS se\u00e7enekleri)<\/h4>\n<p>\"Kiro\"nun arkas\u0131nda, PoC'nizi bar\u0131nd\u0131rmak i\u00e7in farkl\u0131 AWS servisleri kullan\u0131labilir:<\/p>\n<ol>\n<li><strong>Amazon EC2 (Elastic Compute Cloud):<\/strong> En temel se\u00e7enek. Bir sanal makine (instance) ba\u015flat\u0131r, kodunuzu y\u00fckler ve \u00e7al\u0131\u015ft\u0131r\u0131rs\u0131n\u0131z. PoC i\u00e7in h\u0131zl\u0131 ve basittir.<\/li>\n<li><strong>Amazon ECS (Elastic Container Service):<\/strong> Docker konteynerleri kullanarak uygulaman\u0131z\u0131 y\u00f6netmenizi sa\u011flar. Daha iyi \u00f6l\u00e7eklenebilirlik ve y\u00f6netim kolayl\u0131\u011f\u0131 sunar. \"Kiro\", Docker imaj\u0131n\u0131z\u0131 al\u0131p bir ECS servisi olarak da\u011f\u0131tabilir.<\/li>\n<li><strong>Amazon EKS (Elastic Kubernetes Service):<\/strong> Kubernetes'in y\u00f6netilen bir versiyonu. En karma\u015f\u0131k ancak en esnek ve \u00f6l\u00e7eklenebilir \u00e7\u00f6z\u00fcmd\u00fcr. Gelecekte daha b\u00fcy\u00fck bir projeye d\u00f6n\u00fc\u015febilecek bir PoC i\u00e7in idealdir. \"Kiro\", Kubernetes manifestlerinizi EKS'ye da\u011f\u0131tabilir.<\/li>\n<\/ol>\n<p>PoC a\u015famas\u0131nda, genellikle EC2 veya ECS Fargate (sunucusuz konteynerler) iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<h4>CI\/CD ve Otomasyon<\/h4>\n<p>\"Kiro\" gibi bir ara\u00e7, CI\/CD (S\u00fcrekli Entegrasyon\/S\u00fcrekli Da\u011f\u0131t\u0131m) s\u00fcre\u00e7lerini de kolayla\u015ft\u0131rabilir. Kodunuzu her commit etti\u011finizde, otomatik olarak testler \u00e7al\u0131\u015ft\u0131r\u0131labilir, Docker imaj\u0131 olu\u015fturulabilir ve PoC ortam\u0131na da\u011f\u0131t\u0131labilir. Bu, vibecoding seanslar\u0131n\u0131zdan sonra h\u0131zl\u0131 geri bildirim alman\u0131z\u0131 ve PoC'nizi s\u00fcrekli g\u00fcncel tutman\u0131z\u0131 sa\u011flar.<\/p>\n<h3>Performans, \u00d6l\u00e7eklenebilirlik ve G\u00fcvenlik Hususlar\u0131<\/h3>\n<p>Bir PoC geli\u015ftirirken bile, gelecekteki olas\u0131 b\u00fcy\u00fcme ve g\u00fcvenlik ihtiya\u00e7lar\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmak \u00f6nemlidir.<\/p>\n<h4>D\u00fc\u015f\u00fck Gecikme S\u00fcresi \u0130\u00e7in Optimizasyonlar<\/h4>\n<p>Minecraft gibi ger\u00e7ek zamanl\u0131 oyunlar i\u00e7in d\u00fc\u015f\u00fck gecikme s\u00fcresi (latency) kritik \u00f6neme sahiptir.<\/p>\n<ul>\n<li><strong>Co\u011frafi Yak\u0131nl\u0131k:<\/strong> Sunucunuzu oyuncular\u0131n\u0131za co\u011frafi olarak yak\u0131n bir AWS b\u00f6lgesinde bar\u0131nd\u0131r\u0131n.<\/li>\n<li><strong>A\u011f Optimizasyonu:<\/strong> AWS'nin geli\u015fmi\u015f a\u011f \u00f6zelliklerinden (Enhanced Networking) faydalan\u0131n.<\/li>\n<li><strong>Kod Optimizasyonu:<\/strong> Protokol i\u015fleme ve oyun mant\u0131\u011f\u0131 kodunuzu m\u00fcmk\u00fcn oldu\u011funca verimli yaz\u0131n. Bloklama yapan (blocking) I\/O i\u015flemlerinden ka\u00e7\u0131n\u0131n.<\/li>\n<\/ul>\n<h4>Y\u00fcksek Kullan\u0131c\u0131 Y\u00fck\u00fc \u0130\u00e7in \u00d6l\u00e7eklendirme Stratejileri<\/h4>\n<p>PoC'niz ba\u015far\u0131l\u0131 olursa ve daha fazla oyuncuyu desteklemesi gerekirse, \u00f6l\u00e7eklenebilirlik \u00f6nemlidir.<\/p>\n<ul>\n<li><strong>Yatay \u00d6l\u00e7eklendirme:<\/strong> Birden fazla sunucu instance'\u0131 \u00e7al\u0131\u015ft\u0131rarak y\u00fck\u00fc da\u011f\u0131t\u0131n. Bu, oyuncular\u0131 farkl\u0131 sunuculara y\u00f6nlendiren bir proxy (\u00f6rn. BungeeCord, Velocity) ile yap\u0131labilir.<\/li>\n<li><strong>Dikey \u00d6l\u00e7eklendirme:<\/strong> Daha g\u00fc\u00e7l\u00fc EC2 instance'lar\u0131 kullanarak tek bir sunucunun kapasitesini art\u0131r\u0131n (genellikle bir s\u0131n\u0131ra kadar etkilidir).<\/li>\n<li><strong>Veritaban\u0131 \u00d6l\u00e7eklendirme:<\/strong> Kal\u0131c\u0131 veriler i\u00e7in AWS RDS veya DynamoDB gibi y\u00f6netilen veritaban\u0131 hizmetlerini kullan\u0131n.<\/li>\n<\/ul>\n<h4>G\u00fcvenlik Katmanlar\u0131 ve DDoS Korumas\u0131<\/h4>\n<p>Minecraft sunucular\u0131, DDoS sald\u0131r\u0131lar\u0131na kar\u015f\u0131 pop\u00fcler hedeflerdir.<\/p>\n<ul>\n<li><strong>AWS Shield:<\/strong> DDoS sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar. Standart ve Geli\u015fmi\u015f (Advanced) versiyonlar\u0131 mevcuttur.<\/li>\n<li><strong>G\u00fcvenlik Gruplar\u0131\/ACL'ler:<\/strong> Yaln\u0131zca gerekli portlar\u0131 a\u00e7\u0131n ve yetkisiz eri\u015fimi engelleyin.<\/li>\n<li><strong>WAF (Web Application Firewall):<\/strong> Daha karma\u015f\u0131k a\u011f sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flayabilir.<\/li>\n<li><strong>Kimlik Do\u011frulama:<\/strong> Ger\u00e7ek bir sunucuda, Mojang API'si ile oyuncu kimlik do\u011frulamas\u0131 yapmak zorunludur. PoC'de bu ad\u0131m atlanm\u0131\u015f olsa da, canl\u0131ya ge\u00e7i\u015fte kritik \u00f6neme sahiptir.<\/li>\n<\/ul>\n<h3>Sonu\u00e7 ve Gelecek Ad\u0131mlar<\/h3>\n<p>Bu makalede, vibecoding felsefesini benimseyerek, toplant\u0131 aralar\u0131ndaki k\u0131sa bo\u015fluklarda bile karma\u015f\u0131k bir konu olan Minecraft Protokol sunucular\u0131n\u0131 nas\u0131l ke\u015ffedebilece\u011fimizi ve AWS Kiro gibi bir ara\u00e7la bulutta nas\u0131l bir PoC olu\u015fturabilece\u011fimizi ele ald\u0131k. Vibecoding, mikro \u00f6\u011frenme ve h\u0131zl\u0131 prototipleme i\u00e7in g\u00fc\u00e7l\u00fc bir yakla\u015f\u0131md\u0131r ve geli\u015ftiricilere zaman k\u0131s\u0131tlamalar\u0131na ra\u011fmen s\u00fcrekli \u00f6\u011frenme ve yaratma imkan\u0131 sunar.<\/p>\n<p>MCP sunucusu PoC'nizi geli\u015ftirirken, protokol\u00fcn temelini anlamak, basit bir ba\u011flant\u0131 ve oturum a\u00e7ma mekanizmas\u0131 kurmak ve ard\u0131ndan oyun d\u00fcnyas\u0131 sim\u00fclasyonunu kademeli olarak geni\u015fletmek \u00f6nemlidir. AWS entegrasyonu, PoC'nizi daha geni\u015f bir kitleye ula\u015ft\u0131rman\u0131za ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda test etmenize olanak tan\u0131r. \"Kiro\" gibi ara\u00e7lar, bu da\u011f\u0131t\u0131m s\u00fcrecini otomatize ederek geli\u015ftiricilerin temel i\u015flerine odaklanmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Gelecek ad\u0131mlar olarak, PoC'nizi daha geli\u015fmi\u015f oyun mekanikleriyle zenginle\u015ftirebilir, Mojang API ile ger\u00e7ek oyuncu kimlik do\u011frulamas\u0131n\u0131 entegre edebilir, kal\u0131c\u0131 d\u00fcnya depolama \u00e7\u00f6z\u00fcmleri ekleyebilir ve AWS \u00fczerinde daha geli\u015fmi\u015f \u00f6l\u00e7eklendirme ve g\u00fcvenlik stratejilerini uygulayabilirsiniz. Unutmay\u0131n, en b\u00fcy\u00fck projeler bile k\u00fc\u00e7\u00fck ad\u0131mlarla ba\u015flar ve vibecoding, bu ad\u0131mlar\u0131 s\u00fcrekli ve verimli bir \u015fekilde atman\u0131z\u0131 sa\u011flar.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>Vibecoding her proje i\u00e7in uygun mu?<\/h4>\n<p>Vibecoding, \u00f6zellikle \u00f6\u011frenme, prototipleme, k\u00fc\u00e7\u00fck \u00f6zellik geli\u015ftirmeleri veya hata d\u00fczeltmeleri i\u00e7in m\u00fckemmeldir. Ancak, derinlemesine odaklanma gerektiren b\u00fcy\u00fck mimari tasar\u0131mlar veya karma\u015f\u0131k entegrasyonlar i\u00e7in uzun, kesintisiz bloklar daha uygun olabilir. Her iki yakla\u015f\u0131m\u0131 da dengelemek en iyisidir.<\/p>\n<h4>MCP sunucusu geli\u015ftirmek i\u00e7in hangi dilleri bilmeliyim?<\/h4>\n<p>Minecraft protokol\u00fc dil ba\u011f\u0131ms\u0131zd\u0131r. Python (h\u0131zl\u0131 prototipleme), Java (performans ve Minecraft'\u0131n kendi dili olmas\u0131), Go (e\u015fzamanl\u0131l\u0131k ve performans) veya C# gibi diller pop\u00fcler se\u00e7eneklerdir. \u00d6nemli olan, a\u011f programlama ve byte i\u015fleme yeteneklerine sahip bir dil se\u00e7mektir.<\/p>\n<h4>AWS Kiro ger\u00e7ek bir servis mi?<\/h4>\n<p>\"AWS Kiro\" standart bir AWS servisi de\u011fildir. Bu makalede, AWS kaynaklar\u0131n\u0131n da\u011f\u0131t\u0131m\u0131n\u0131 ve y\u00f6netimini kolayla\u015ft\u0131ran \u00f6zel bir ara\u00e7 veya dahili bir platform olarak ele al\u0131nm\u0131\u015ft\u0131r. Ger\u00e7ek d\u00fcnyada benzer i\u015flevleri g\u00f6ren ara\u00e7lar AWS CDK, Terraform, Pulumi veya AWS'nin kendi CLI ve SDK'lar\u0131d\u0131r. E\u011fer \"Kiro\" bir typo ise ve AWS EKS (Elastic Kubernetes Service) kastediliyorsa, EKS, Kubernetes cluster'lar\u0131n\u0131 AWS \u00fczerinde y\u00f6netmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir servistir.<\/p>\n<h4>PoC'yi canl\u0131ya almak ne kadar s\u00fcrer?<\/h4>\n<p>Bir PoC'yi canl\u0131ya almak, projenin karma\u015f\u0131kl\u0131\u011f\u0131na, geli\u015ftiricinin deneyimine ve hedeflenen i\u015flevselli\u011fe ba\u011fl\u0131d\u0131r. Temel bir MCP sunucusu PoC'si (handshake ve login) birka\u00e7 vibecoding seans\u0131nda tamamlanabilirken, d\u00fcnya sim\u00fclasyonu ve temel oyun mant\u0131\u011f\u0131 eklemek daha fazla zaman alacakt\u0131r. AWS'ye da\u011f\u0131t\u0131m, \"Kiro\" gibi bir ara\u00e7la otomatize edilirse birka\u00e7 saat i\u00e7inde tamamlanabilir. Ancak, tam te\u015fekk\u00fcll\u00fc, g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir canl\u0131 sunucu haftalar veya aylar s\u00fcrebilir.<\/p>\n","protected":false},"excerpt":{"rendered":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek\nYo\u011fun i\u015f temposu i\u00e7inde, karma\u015f\u0131k teknik konulara &#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1406],"tags":[],"class_list":{"0":"post-36517","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-aws","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek\" \/>\n<meta property=\"og:description\" content=\"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek Yo\u011fun i\u015f temposu i\u00e7inde, karma\u015f\u0131k teknik konulara ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-19T03:30:46+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek\",\"datePublished\":\"2025-12-19T03:30:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\"},\"wordCount\":2689,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AWS\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\",\"name\":\"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-19T03:30:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/","og_locale":"tr_TR","og_type":"article","og_title":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek","og_description":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek Yo\u011fun i\u015f temposu i\u00e7inde, karma\u015f\u0131k teknik konulara ...","og_url":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-19T03:30:46+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek","datePublished":"2025-12-19T03:30:46+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/"},"wordCount":2689,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AWS"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/","url":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/","name":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-19T03:30:46+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/toplanti-aralarinda-vibecoding-mcp-sunucularini-kesfetmek-ve-aws-kiro-ile-bir-poc-gelistirmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toplant\u0131 Aralar\u0131nda Vibecoding: MCP Sunucular\u0131n\u0131 Ke\u015ffetmek ve AWS Kiro ile Bir PoC Geli\u015ftirmek"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36517"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36517\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}