Yapay zeka asistanınıza hava durumu verilerini getirme, hisse senedi fiyatlarını analiz etme veya görevleri otomatikleştirme yeteneği verdiğinizi hayal edin; hepsi tek bir protokol aracılığıyla. Model Context Protocol (MCP) bunu mümkün kılar ve yeni MCP Framework ile kendi sunucunuzu oluşturmak hiç bu kadar kolay olmamıştı.
Bu kılavuzda, MCP Framework'ün CLI araçlarını kullanarak bir MCP sunucusu oluşturma konusunda size yol göstereceğim. Daha önce MCP deneyimi gerekmiyor; sadece temel JavaScript/TypeScript bilgisi ve biraz merak yeterli!

MCP'yi Anlamak
Kuruluma geçmeden önce, MCP'nin ne olduğunu ve neden önemli olduğunu kısaca ele alalım:
MCP'ye Genel Bakış: The Model Context Protocol, yapay zeka modellerinin harici veri kaynaklarıyla nasıl etkileşim kurduğunu standartlaştırmak için Anthropic tarafından oluşturulmuş açık bir spesifikasyondur. Geliştiricilerin Claude Desktop gibi yapay zeka platformlarıyla kolayca entegre edilebilen araçlar oluşturmasını sağlar.

MCP'nin Faydaları: MCP, araç geliştirme için standartlaştırılmış bir protokol sağlayarak entegrasyon sürecini basitleştirir. Bu, farklı platformlarda uyumluluk sorunları hakkında endişelenmeden araç oluşturmaya odaklanabileceğiniz anlamına gelir.
İlk MCP Sunucunuzu Oluşturma
Adım 1: İhtiyacınız Olanlar
Başlamadan önce, aşağıdakilerin yüklü olduğundan emin olun:
- Node.js (20 veya üzeri): Sunucu Node.js üzerine kurulmuştur, bu nedenle yüklü olması gerekir. Buradan indirin
- TypeScript (5.0 veya üzeri): Sunucunuzu oluşturmak için kullanılır.
- npm: Bağımlılıkları yönetmek için bir paket yöneticisi.
- MCP Framework: Bu, npm aracılığıyla global olarak yüklenebilir veya mevcut bir projeye eklenebilir.
- 10 dakika sabır: Cidden, bu kadar hızlı
Adım 2: MCP Framework'ü Yükleyin
MCP Framework'e başlamanın iki yolu vardır:
Seçenek 1: MCP CLI'yi Kullanma (Önerilen)
Bir MCP sunucusu kurmanın en kolay yolu CLI'yi kullanmaktır. İşte nasıl yapılacağı:
# CLI'yi global olarak yükleyin
npm install -g mcp-framework
# Yeni bir proje oluşturun
mcp create my-mcp-server
# Projenize gidin
cd my-mcp-server
# Bağımlılıkları yükleyin
npm install
Bu, kullanıma hazır bir MCP sunucusunu şu özelliklerle hazırlar: Önceden yapılandırılmış TypeScript, Örnek araçlar ve Yerleşik hata işleme. Şuna benzer görünmelidir:

Artık yeni MCP projeniz kullanıma hazır.
Seçenek 2: Manuel Kurulum (Mevcut Projeler İçin)
MCP Framework'ü mevcut bir projeye eklemek istiyorsanız, şu adımları izleyin:
MCP Framework'ü Yükleyin:
npm install mcp-framewor
src/index.ts
dosyası içinde temel bir sunucu oluşturun:
import { MCPServer } from "mcp-framework";
const server = new MCPServer();
server.start().catch((error) => {
console.error("Server error:", error);
process.exit(1);
});
Adım 3: İlk Aracınızı Oluşturma (Hava Durumu Örneği)
Artık sunucunuz kurulduğuna göre, belirli bir şehir için hava durumu bilgilerini getiren bir hava durumu aracı oluşturalım.
Yeni bir araç oluşturun:
MCP CLI'yi kullanarak, hava durumu bilgileri için yeni bir araç oluşturabilirsiniz:
mcp add tool weather
Bu, src/tools/WeatherTool.ts
adlı bir dosya oluşturacaktır. Alternatif olarak, bu dosyayı kendiniz manuel olarak da oluşturabilirsiniz. Şimdi, bu dosyayı düzenleyelim.
Hava Durumu Aracını Düzenleyin:
WeatherTool.ts
dosyasını açın ve aşağıdaki gibi güncelleyin:
import { MCPTool } from "mcp-framework";
import { z } from "zod";
interface WeatherInput {
city: string;
}
class WeatherTool extends MCPTool<WeatherInput> {
name = "weather";
description = "Get weather information for a city";
// Schema validation using Zod
schema = {
city: {
type: z.string(),
description: "City name (e.g., London)",
},
};
async execute({ city }: WeatherInput) {
// Replace this with a real API call
return {
city,
temperature: 22,
condition: "Sunny",
humidity: 45,
};
}
}
export default WeatherTool;
Bu kodda, bir şehir için hava durumunu getiren bir WeatherTool
sınıfı tanımlıyoruz. Bu örnek uygulama statik veriler döndürürken, bunu gerçek bir API çağrısıyla değiştirebilirsiniz.
Adım 4: MCP Sunucunuzu Oluşturun ve Test Edin
Hava durumu aracını değiştirdikten sonra, MCP sunucunuzun beklendiği gibi çalışıp çalışmadığını görmek için oluşturma ve test etme zamanı geldi ve bunun için MCP inspector'ı kullanacağız.
Projeyi oluşturun:
npm run build
Bir taşıma yöntemi seçin: MCP Framework iki taşıma yöntemini destekler:
- STDIO Taşıma: CLI ve yerel entegrasyonlar için en iyisi.
- SSE Taşıma: Web uygulamaları ve dağıtılmış sistemler için ideal.
Bu eğitim için, yerel test için mükemmel olan STDIO Taşıma'yı kullanacağız.
MCP Inspector'ı Başlatın: şu komutu kullanın:
npx @modelcontextprotocol/inspector dist/index.js
Hava Durumu Aracını Test Edin:
Hava durumu aracınızı test etmek için, weather
aracını seçin ve "Paris"
gibi bir şehir girin.

Ardından, sahte hava durumu verilerini görün.

Adım 5: MCP'yi Gerçek Hava Durumu Verilerine Bağlayın
Hava durumu aracımızı Open-Meteo'nun ücretsiz API'sini kullanacak şekilde yükseltelim - API anahtarları olmadan yerel tahminler sağlayan güçlü bir alternatif. Başlamak için, yeni bir araç oluşturabilir ve ona yeni bir ad verebilir veya eski araç kodunu aşağıdaki yeni kodla değiştirebilirsiniz:
import { MCPTool } from "mcp-framework";
import { z } from "zod";
import axios, { AxiosError } from "axios";
interface WeatherApiInput {
city: string;
}
interface WeatherApiResponse {
city: string;
temperature: number;
condition: string;
humidity: number;
windSpeed: number;
feelsLike: number;
precipitation: number;
}
class WeatherApiTool extends MCPTool<WeatherApiInput> {
name = "weather_api";
description = "Get real weather information for a city using Open-Meteo API";
private readonly GEOCODING_URL = "https://geocoding-api.open-meteo.com/v1/search";
private readonly WEATHER_URL = "https://api.open-meteo.com/v1/forecast";
schema = {
city: {
type: z.string(),
description: "City name to get weather for",
},
};
async execute({ city }: WeatherApiInput): Promise<WeatherApiResponse> {
try {
// First, get coordinates for the city
const geoResponse = await axios.get(this.GEOCODING_URL, {
params: {
name: city,
count: 1,
language: "en",
format: "json"
}
});
if (!geoResponse.data.results?.length) {
throw new Error(`City '${city}' not found`);
}
const location = geoResponse.data.results[0];
// Then get weather data using coordinates
const weatherResponse = await axios.get(this.WEATHER_URL, {
params: {
latitude: location.latitude,
longitude: location.longitude,
current: ["temperature_2m", "relative_humidity_2m", "apparent_temperature", "precipitation", "weather_code", "wind_speed_10m"],
timezone: "auto"
}
});
const current = weatherResponse.data.current;
// Map weather code to condition
const condition = this.getWeatherCondition(current.weather_code);
return {
city: location.name,
temperature: Math.round(current.temperature_2m),
condition,
humidity: Math.round(current.relative_humidity_2m),
windSpeed: Math.round(current.wind_speed_10m),
feelsLike: Math.round(current.apparent_temperature),
precipitation: current.precipitation
};
} catch (error: unknown) {
if (error instanceof Error) {
throw new Error(`Failed to fetch weather data: ${error.message}`);
}
throw new Error('Failed to fetch weather data: Unknown error occurred');
}
}
private getWeatherCondition(code: number): string {
// WMO Weather interpretation codes (https://open-meteo.com/en/docs)
const conditions: Record<number, string> = {
0: "Clear sky",
1: "Mainly clear",
2: "Partly cloudy",
3: "Overcast",
45: "Foggy",
48: "Depositing rime fog",
51: "Light drizzle",
53: "Moderate drizzle",
55: "Dense drizzle",
61: "Slight rain",
63: "Moderate rain",
65: "Heavy rain",
71: "Slight snow",
73: "Moderate snow",
75: "Heavy snow",
77: "Snow grains",
80: "Slight rain showers",
81: "Moderate rain showers",
82: "Violent rain showers",
85: "Slight snow showers",
86: "Heavy snow showers",
95: "Thunderstorm",
96: "Thunderstorm with slight hail",
99: "Thunderstorm with heavy hail"
};
return conditions[code] || "Unknown";
}
}
export default WeatherApiTool;
Kod biraz uzun ama şimdilik kodun çalışmasına ve MCP'ye başlamanın hissini almaya odaklanın. Zaman ayırın ve bunu, daha da karmaşık MCP'ler oluşturmaya geçmenize yardımcı olacak bir örnek rehber olarak kullanın.
Aracı test etmek için, onu seçmeniz yeterlidir:

Örneğin "Lusaka"
gibi bir şehir girin ve sonuçları görüntüleyin:

Umarım bu aşamada, yapılandırma ve projeyi çalıştırmanın çoğu aksaklığını aşmışsınızdır, bu nedenle yeni MCP Aracını test etmek hiç de zor olmamalıdır!
Apidog ile Çalışmak
Unutmayın, API testini, sahtesini ve dokümantasyonunu basitleştiren çok yönlü bir araç olan Apidog ile MCP sunucu geliştirmenizi artırın. Ücretsiz katmanına kaydolarak başlayın, ardından API iş akışlarınızı merkezileştirmek için bir proje oluşturun. İstekleri izlemek, akıllı sahte sunucularla yanıtları simüle etmek ve gizli hataları erken yakalamak için testleri otomatikleştirmek için uç noktalarınızı içe aktarın. Apidog, hata ayıklamayı kolaylaştırır ve araçlarınızın kusursuz çalışmasını sağlar, bu da onu sağlam yapay zeka entegrasyonları oluşturmak için mükemmel bir arkadaştır.

Sonuç
Bir MCP Sunucusu oluşturmak, yapay zeka iş akışlarınızı önemli ölçüde artırabilen basit bir işlemdir. Apidog gibi araçları entegre ederek, geliştirme sürecinizi kolaylaştırabilir, sağlam ve iyi belgelenmiş API'ler sağlayabilirsiniz. İster web hizmetleriyle ister yerel dosyalarla çalışıyor olun, MCP, yapay zeka modellerini harici veri kaynaklarına bağlamanın standartlaştırılmış bir yolunu sağlar.
API geliştirme iş akışınızı bir sonraki seviyeye taşımaya hazır mısınız? Bugün ücretsiz olarak Apidog indirin ve bunun iş akışınızı nasıl dönüştürebileceğini keşfedin!