Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
TypeScript ile MCP Server: Zod Şemaları, Tool/Resource Kaydı ve Node.js
TypeScript'te MCP server için 2026-07-28'i destekleyen v2 SDK'yı (@modelcontextprotocol/server 2.4.0) seçer, tool'ları Zod 4 schema'larıyla kaydeder, serveStdio ve createMcpHandler ile stdio ve Streamable HTTP'den sunarsın. Aynı Bookstore server'ını C# sürümüyle karşılaştırıp aynı girdiye farklı cevaplar veren schema'ları, Zod 3 uyumsuzluğunu, npx ile dağıtımı ve supply chain riskini gerçek çıktılarla görüyoruz.
ASP.NET Core'da Remote MCP Server: Streamable HTTP, Stateless Mod, State Handle'ları ve Authorization
ASP.NET Core'da remote MCP server'ı WithHttpTransport ve MapMcp ile kurar, stateless modda çalıştırır ve OAuth resource server olarak korursun: token yalnız bu server için verilmiş olmalı, state handle'ları kullanıcıya bağlanmalı. Protected resource metadata'yı, audience hatasını, iki instance ile stateless'ın bedelini, MRTR ile imzalı requestState kullanarak onay istemeyi ve Mcp-Method/Mcp-Name header doğrulamasını curl çıktılarıyla görüyoruz.
C# ile MCP Server: ModelContextProtocol SDK 2.x, [McpServerTool] ve stdio
C# ile MCP server'ı ModelContextProtocol 2.x paketi, Generic Host ve [McpServerTool] attribute'larıyla yazarsın; stdio transport'unda log'ları stderr'e yönlendirmek şarttır. Bookstore tool'larını DI'dan servis alarak, structured output, resource ve prompt tanımlarıyla kuruyor, MCP Inspector ile test ediyor ve stdout'u kirletmenin bir dakikalık timeout'a, culture ayarının bozuk tool çıktısına nasıl dönüştüğünü gerçek çıktılarla görüyoruz.