Netlify Üzerinde MCP Sunucusu Nasıl Kurulur, Yayınlanır ve Barındırılır

Ashley Goolam

Ashley Goolam

15 July 2025

Netlify Üzerinde MCP Sunucusu Nasıl Kurulur, Yayınlanır ve Barındırılır

Yapay zeka iş akışlarınızı **Netlify üzerindeki MCP Sunucusu** ile süper şarj etmeye hazır mısınız? Claude, Cursor veya VS Code Copilot gibi yapay zeka ajanlarınıza, hepsi Netlify'ın şık sunucusuz altyapısında barındırılan platformunuzun araçlarına ve verilerine doğrudan bir hat verdiğinizi hayal edin. Bu eğlenceli, sohbet tarzı rehberde, **Netlify üzerindeki MCP Sunucusu**'nun ne olduğunu, neden harika olduğunu ve adım adım nasıl inşa edileceğini, dağıtılacağını ve barındırılacağını inceleyeceğiz. Ayrıca, çalıştığından emin olmak için harika bir örnekle test edeceğiz. Hadi dalalım ve yapay zekanızı daha akıllı hale getirelim!

💡
Güzel API Dokümantasyonu oluşturan harika bir API Test aracı mı arıyorsunuz?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılar ve Postman'ı çok daha uygun bir fiyata değiştirir!
Buton

MCP Sunucusu Nedir ve Neden Netlify?

**Model Bağlam Protokolü (MCP)**, yapay zeka ajanları için evrensel bir adaptör gibidir. Yapay zeka istemcilerinin (örneğin, Claude Desktop veya Cursor) araçları, verileri ve istemleri açığa çıkaran sunucularla konuşmasını sağlayan açık, hafif bir standarttır. Bu, yapay zekanızın uygulamanızın özellikleriyle gerçek zamanlı olarak etkileşime girebileceği, onu bağlam duyarlı ve çok daha kullanışlı hale getirebileceği anlamına gelir.

**Netlify üzerinde MCP Sunucunuzu** barındırmak çok kolaydır. Netlify'ın sunucusuz platformu ölçeklenebilir, az bakım gerektirir ve MCP sunucularını dağıtmak için mükemmeldir. Trafik artışları, güncellemeler ve güvenlik gibi ağır işleri halleder, böylece siz harika yapay zeka entegrasyonları oluşturmaya odaklanabilirsiniz. Yapay zekayı bir bloga, e-ticaret sitesine veya özel bir uygulamaya ekliyor olun, **Netlify üzerindeki MCP Sunucusu** bunu sorunsuz hale getirir.

netlify resmi web sitesi

MCP Sunucularını Netlify'da Barındırmayı Neden Seveceksiniz?

İşte **Netlify üzerindeki MCP Sunucusu**'nun neden oyunun kurallarını değiştirdiğini gösteren nedenler:

Yapay zekanızı hayata geçirmeye hazır mısınız? Hadi **Netlify üzerindeki MCP Sunucunuzu** kuralım!

netlify'a dağıt

Netlify'da MCP Sunucuları Oluşturma, Dağıtma ve Barındırma

Ön Koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

Adım 1: Netlify Projenizi Kurun

**Proje Yapısını Kurun**:

Örnek yapı:

/mcp-netlify
  /netlify
    /functions
      mcp.js

**Bir Netlify Sitesi Oluşturun**:

Adım 2: MCP Sunucu Fonksiyonunu Uygulayın

**Netlify üzerindeki MCP Sunucunuzu** tanımlamak için /netlify/functions içinde mcp.js dosyasını oluşturun. Bu, araçları, kaynakları ve istemleri yapay zeka istemcilerine açığa çıkarmak için MCP SDK'sını kullanır.

İşte mcp.js için bir örnek:

import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
import { toFetchResponse, toReqRes } from "fetch-to-node";
import { z } from "zod";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import {
  CallToolResult,
  ReadResourceResult,
  JSONRPCError
} from "@modelcontextprotocol/sdk/types.js";

// Netlify serverless function handler which handles all inbound requests
export default async (req: Request) => {

  try {

    // for stateless MCP, we'll only use the POST requests that are sent
    // with event information for the init phase and resource/tool requests
    if (req.method === "POST") {

      // Convert the Request object into a Node.js Request object
      const { req: nodeReq, res: nodeRes } = toReqRes(req);
      const server = getServer();

      const transport = new StreamableHTTPServerTransport({
        sessionIdGenerator: undefined,
      });

      await server.connect(transport);

      const body = await req.json();
      await transport.handleRequest(nodeReq, nodeRes, body);

      nodeRes.on("close", () => {
        console.log("Request closed");
        transport.close();
        server.close();
      });

      return toFetchResponse(nodeRes);

    }

    return new Response("Method not allowed", { status: 405 });

  } catch (error) {

    console.error("MCP error:", error);
    return new Response(
      JSON.stringify({
        jsonrpc: "2.0",
        error: {
          code: -32603,
          message: "Internal server error",
        },
        id: '',
      } satisfies JSONRPCError),
      {
        status: 500,
        headers: { "Content-Type": "application/json" }
      }
    );
  }
};

function getServer(): McpServer {

  // initialize our MCP Server instance that we will
  // attach all of our functionality and data.
  const server = new McpServer(
    {
      name: "acme-devtool-server",
      version: "1.0.0",
    },
    { capabilities: { logging: {} } }
  );


  server.tool(
    "run-analysis-report",
    "Checks the data available in Acme Devtool and returns all of the important data regarding the latest numbers.",
    {
      days: z.number().describe("Number of days to analyze").default(7),
    },
    async (
      { days },
    ): Promise<CallToolResult> => {

      const random = Math.random() * 100;

      return {
        content: [
          {
            type: "text",
            text: JSON.stringify({
              lastNDays: days,
              data: Array.from({ length: days }, (_, i) => `Day ${i + 1} had ${random * days} growth.`),
            }),
          },
        ],
      };
    }
  );

  // providing a resource for agents that might need to take a given report
  // and parse the information in it
  server.resource(
    "interpreting-reports",
    "acme://interpreting-reports",
    { mimeType: "text/plain" },
    async (): Promise<ReadResourceResult> => {
      return {
        contents: [
          {
            uri: "acme://interpreting-reports",
            text: `Reports from Acme will include an array of text that informs the growth of over that number of days. It's unstructured text but is consistent so parsing the information can be based on looking at a single line to understand where the data is.`,
          },
        ],
      };
    }
  );

  return server;
};

// Ensure this function responds to the <domain>/mcp path
// This can be any path you want but you'll need to ensure the
// mcp server config you use/share matches this path.
export const config = {
  path: "/mcp"
};

Bu, /.netlify/functions/mcp adresinde sunucusuz bir MCP uç noktası oluşturur. Uygulamanızın ihtiyaçlarına göre araçları, kaynakları ve istemleri özelleştirin (örn. API çağrıları, veritabanı sorguları).

Adım 3: Bağımlılıkları Yükleyin

Proje klasörünüzde bir Node.js projesi başlatın ve MCP SDK'sını yükleyin:

npm init -y
npm install @modelcontextprotocol/sdk

Adım 4: Yerel Geliştirme ve Test

  1. **Netlify CLI'ı Kurun**:
npm install -g netlify-cli

2. **Yerel Olarak Çalıştırın**:

netlify dev

Bu, http://localhost:8888 adresinde yerel bir sunucu başlatır. **Netlify üzerindeki MCP Sunucunuz** şu adreste erişilebilir olacaktır:

http://localhost:8888/.netlify/functions/mcp

3. **MCP Inspector ile Test Edin**:

Sunucunuzu doğrulamak için MCP Inspector'ı kullanın:

npx @modelcontextprotocol/inspector npx mcp-remote@next http://localhost:8888/mcp

Sunucunuzun araçlarını ve kaynaklarını etkileşimli olarak keşfetmek için tarayıcınızda http://localhost:6274 adresini açın.

mcp inspector ile test et

Adım 5: MCP Sunucunuzu Netlify'a Dağıtın

İki dağıtım seçeneğiniz var:

**Seçenek 1: Git Tabanlı Dağıtım**

  1. Projenizi bir GitHub, GitLab veya Bitbucket deposuna gönderin.
  2. Netlify'da, **Site yapılandırması > Oluştur ve dağıt** altında depoyu sitenize bağlayın.
  3. Netlify, ana dalınıza yapılan her gönderimde otomatik olarak dağıtım yapar.
netlify'ı github deposuna kur

**Seçenek 2: CLI Dağıtımı**

Doğrudan Netlify CLI ile dağıtın:

netlify deploy

Üretim için:

netlify deploy --prod

Dağıtımdan sonra, **Netlify üzerindeki MCP Sunucunuz** şu adreste canlı olacaktır:

https://your-site-name.netlify.app/.netlify/functions/mcp

Bir sonraki adım için URL'yi not alın.

Adım 6: MCP İstemcilerini Netlify MCP Sunucunuza Bağlayın

Yapay zeka istemcinizi (Claude Desktop, Cursor, Windsurf veya VS Code Copilot) dağıtılan **Netlify üzerindeki MCP Sunucunuza** bağlanacak şekilde yapılandırın. Bu yapılandırmalardan birini kullanın:

**Yerel Test İçin**

{
  "mcpServers": {
    "my-netlify-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote@next",
        "http://localhost:8888/mcp"
      ]
    }
  }
}

**Dağıtılan Sunucu İçin**

{
  "mcpServers": {
    "my-netlify-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote@next",
        "https://your-site-name.netlify.app/mcp"
      ]
    }
  }
}

your-site-name.netlify.app yerine gerçek Netlify site URL'nizi yazın.

İstemci Yapılandırması

**Claude Desktop**:

  1. Ayarlar > Geliştirici > Yapılandırmayı Düzenle'ye gidin.
  2. claude_desktop_config.json dosyasını açın, yapılandırmayı yapıştırın ve kaydedin.
  3. Claude Desktop'ı yeniden başlatın.
claude mcp yapılandırmasını düzenle

**Cursor**:

  1. Ayarlar > Araçlar ve Entegrasyonlar > Özel Bir MCP Sunucusu Ekle'ye gidin.
  2. Yapılandırmayı yapıştırın ve kaydedin.
  3. Sohbet panelinde **Ajan Modu**'na geçin.
cursor mcp yapılandırmasını düzenle

**VS Code Copilot**:

  1. Ayarları açın (Ctrl+, veya Cmd+,).
  2. “MCP” araması yapın ve **Özellikler > Sohbet** altında etkinleştirin.
  3. settings.json'da Düzenle'ye tıklayın, yapılandırmayı yapıştırın ve kaydedin.
vs code mcp yapılandırmasını düzenle

Adım 7: MCP Sunucunuzu Test Edin

MCP istemcinizde örnek bir istemle **Netlify üzerindeki MCP Sunucunuzu** test edelim:

Netlify üzerindeki MCP Sunucusunu kullanarak, son 3 gün için bir rapor çalıştırabilir misiniz?

Yukarıdaki örnek mcp.js'i kullandıysanız, yapay zeka şöyle bir yanıt vermelidir:

uzak mcp sunucusunu test etme

Bu, sunucunuzun çalıştığını doğrular. Daha karmaşık görevler için gerçek araçlar (örn. API entegrasyonları, veritabanı sorguları) eklemek üzere mcp.js dosyanızı özelleştirin.

Adım 8: İncele ve Hata Ayıkla

npx @modelcontextprotocol/inspector npx mcp-remote@next https://your-site-name.netlify.app/mcp

Netlify'da MCP Sunucuları İçin En İyi Uygulamalar

Sorun Giderme İpuçları

MCP Sunucularını Neden Netlify'da Barındırmalısınız?

**Netlify üzerindeki MCP Sunucusu**, yapay zeka odaklı iş akışları için mükemmel bir eştir. Netlify'ın sunucusuz platformu zahmetsizce ölçeklenir, böylece MCP sunucunuz çökmeksizin binlerce yapay zeka isteğini karşılayabilir. Ayrıca, Git tabanlı dağıtımı ve CLI'ı güncellemeleri çocuk oyuncağı haline getirir. İster bir sohbet botu, ister bir içerik yönetim aracı veya bir e-ticaret entegrasyonu oluşturuyor olun, **Netlify üzerindeki MCP Sunucunuzu** barındırmak, yapay zeka ajanlarınızın platformunuzun özelliklerine canlı, dinamik erişime sahip olmasını sağlar.

Örneğin, uygulamanızın API'sinden kullanıcı verilerini almak veya yapay zeka istemlerine dayalı otomatik iş akışlarını tetiklemek için bir MCP aracı oluşturabilirsiniz. Sunucusuz kurulum, sunucuları yönetmenize gerek olmadığı anlamına gelir; sadece kodlayın, dağıtın ve gerisini Netlify'a bırakın.

Sonuç

İşte bu kadar! Yapay zeka ajanlarınızı üretkenlik santrallerine dönüştürerek **Netlify üzerinde bir MCP Sunucusu**nu nasıl inşa edeceğinizi, dağıtacağınızı ve barındıracağınızı öğrendiniz. Basit bir sunucusuz fonksiyon kurmaktan Claude, Cursor veya VS Code ile bağlantı kurmaya kadar, bu rehber yapay zekayı platformunuzla entegre etmeyi kolaylaştırıyor. Test istemimiz—"sorguyu işle: Merhaba, Netlify!"—başlamanın ne kadar basit olduğunu gösteriyor.

Daha ileri gitmeye hazır mısınız? mcp.js dosyanıza API çağrıları veya veritabanı sorguları gibi özel araçlar ekleyin ve yapay zekanızın harika şeyler yapmasını izleyin.

💡
Güzel API Dokümantasyonu oluşturan harika bir API Test aracı mı arıyorsunuz?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılar ve Postman'ı çok daha uygun bir fiyata değiştirir!
Buton

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin