# MCP Server Rehberi: Claude Code'a Süper Güç Veren 10 Entegrasyon (GitHub, Linear, Slack, Postgres, Salesforce...)

> Source: https://sukruyusufkaya.com/blog/mcp-server-rehberi-claude-code-10-entegrasyon-2026
> Updated: 2026-08-25T22:40:50.585Z
> Type: blog
> Category: yapay-zeka
**TLDR:** Model Context Protocol (MCP) ile Claude Code, Cursor ve VS Code'u kurumsal araçlara nasıl bağlarsınız? GitHub, Linear, Slack, PostgreSQL, Salesforce, BigQuery, Figma, Notion, Confluence ve Filesystem entegrasyonları için adım adım kurulum, prompt örnekleri, token maliyetleri ve TypeScript ile özel MCP server yazma rehberi.

<tldr data-summary="[&quot;Model Context Protocol (MCP), Kasım 2024&apos;&apos;te Anthropic tarafından açık kaynak olarak duyuruldu; 2026 itibarıyla AI kod asistanı entegrasyonlarının fiili standardı haline geldi.&quot;,&quot;Claude Code, Cursor, VS Code Copilot ve Windsurf — dört büyük asistan da MCP server tüketebilir; aynı server&apos;&apos;ı tek konfigürasyonla farklı araçlara bağlayabilirsiniz.&quot;,&quot;Bu rehberde 10 MCP server detaylıca işleniyor: GitHub, Linear, Slack, PostgreSQL, Salesforce, BigQuery, Figma, Notion, Confluence, Filesystem — her biri için kurulum, prompt, maliyet ve güvenlik notları.&quot;,&quot;Kendi MCP server&apos;&apos;ınızı TypeScript ile yazmak 200-500 satır kod gerektirir; KVKK, Yargıtay, e-Fatura gibi Türkçe ekosistem entegrasyonları için fırsat penceresi açık.&quot;,&quot;MCP güvenliği yeni bir saldırı yüzeyi getirir: tool poisoning, prompt injection, scope creep. Production&apos;&apos;a açmadan önce scope kısıtlaması ve audit log zorunludur.&quot;]" data-one-line="Model Context Protocol (MCP), Claude Code ve diğer AI kod asistanlarını kurumsal araçlara — GitHub''dan PostgreSQL''e, Linear''dan Salesforce''a — tek bir açık standart üzerinden bağlayan ve 2026 itibarıyla fiili AI entegrasyon protokolü haline gelen mimaridir."></tldr>

## 1. Giriş: MCP Neden Bu Kadar Önemli?

Yapay zeka kod asistanları 2023-2024'te bir paradoks içindeydi: model giderek akıllılaşıyor, ama gerçek geliştirici işine — yani sizin Linear ticket'larınıza, sizin Postgres şemanıza, sizin Slack tartışmanıza — erişimi yoktu. Her entegrasyon ayrı bir custom kod, ayrı bir bakım yüküydü.

Kasım 2024'te Anthropic, **Model Context Protocol (MCP)**'yi açık kaynak olarak duyurdu. Bir yıl içinde MCP, kod asistanı entegrasyonlarının fiili standardı haline geldi: Cursor, VS Code Copilot, Windsurf, Continue.dev hepsi MCP server tüketir hale geldi. 2026 Mayıs itibarıyla Anthropic'in resmi MCP server kayıt defterinde **300+ topluluk MCP server'ı** mevcut, GitHub'da 5.000+ proje "mcp-server" topic'i altında listeli.

<definition-box data-term="Model Context Protocol (MCP)" data-definition="LLM tabanlı asistanların (Claude Code, Cursor vb.) harici araçlara — veritabanları, SaaS uygulamaları, dosya sistemleri — güvenli ve standart bir arayüzle bağlanmasını sağlayan açık protokol. JSON-RPC üzerinden çalışır; tool, resource ve prompt olmak üzere üç temel kavramı vardır." data-also="MCP, AI Tool Protocol" data-wikidata=""></definition-box>

<stat-callout data-value="300+" data-context="Anthropic resmi MCP server kayıt defterinde 2026 Mayıs itibarıyla yayınlanmış toplam server sayısı" data-outcome="MCP, AI kod asistanı entegrasyonlarının fiili standardı haline geldi — Cursor, VS Code, Windsurf de tüketici durumunda." data-source="{&quot;label&quot;:&quot;Anthropic MCP Registry&quot;,&quot;url&quot;:&quot;https://modelcontextprotocol.io/registry&quot;,&quot;date&quot;:&quot;2026&quot;}"></stat-callout>

### Niye Önemli?

Önceki dünyada bir AI asistanına "Linear'da bana atanmış kritik bug'ları listele, sonra bunlar için GitHub PR'larını aç" demek için her iki entegrasyonu ayrı ayrı yazmanız gerekiyordu. MCP ile aynı asistan, **iki MCP server'a** bağlanır ve doğal dil komutu ile iki sistemi birlikte kullanır. Kurumsal AI'ın "araç kullanımı" problemi, MCP ile büyük ölçüde çözüldü.

## 2. MCP Anatomisi: Üç Temel Kavram

### 2.1. Tools

Asistanın çağırabileceği fonksiyonlar. Örnek: `create_issue`, `list_pull_requests`, `query_database`. Her tool JSON Schema ile parametre tanımı yapar; asistan parametreleri model çıktısı olarak üretir ve MCP server fonksiyonu çalıştırır.

### 2.2. Resources

Asistanın **okuma** amacıyla erişebileceği dosya benzeri içerikler. Örnek: bir Notion sayfasının içeriği, bir Postgres tablosunun şeması, bir GitHub repo'nun README'si. Resource'lar URI ile tanımlanır (`notion://page/abc123`).

### 2.3. Prompts

Sunucunun kullanıcıya önerdiği hazır prompt şablonları. Örnek: "GitHub MCP server, `analyze_pr` prompt'u sunabilir" — kullanıcı bunu tıklayıp PR numarası girer.

### 2.4. Transport Katmanı

MCP iki transport destekler:
- **stdio:** Yerel process arası iletişim (en yaygın, Claude Code default'u).
- **HTTP+SSE (Server-Sent Events):** Uzak server'lar için (kurumsal deploy senaryosu).

2026 itibarıyla yeni eklenen **Streamable HTTP** transport, SSE'nin yerini almaya başladı — daha az bağlantı, daha iyi failover.

## 3. Claude Code, Cursor ve VS Code'da MCP Karşılaştırması

<comparison-table data-caption="MCP Tüketici Asistanları (2026 Mayıs)" data-headers="[&quot;Asistan&quot;,&quot;Config Dosyası&quot;,&quot;stdio&quot;,&quot;Remote HTTP&quot;,&quot;Tool UI&quot;,&quot;Prompt UI&quot;]" data-rows="[{&quot;feature&quot;:&quot;Claude Code&quot;,&quot;values&quot;:[&quot;~/.claude.json + .mcp.json&quot;,&quot;Tam&quot;,&quot;Tam&quot;,&quot;CLI + slash&quot;,&quot;Tam&quot;]},{&quot;feature&quot;:&quot;Cursor&quot;,&quot;values&quot;:[&quot;~/.cursor/mcp.json&quot;,&quot;Tam&quot;,&quot;Tam&quot;,&quot;Sidebar&quot;,&quot;Kısmi&quot;]},{&quot;feature&quot;:&quot;VS Code (Copilot Chat)&quot;,&quot;values&quot;:[&quot;.vscode/mcp.json&quot;,&quot;Tam&quot;,&quot;Tam&quot;,&quot;Chat panel&quot;,&quot;Tam&quot;]},{&quot;feature&quot;:&quot;Windsurf&quot;,&quot;values&quot;:[&quot;~/.codeium/mcp_config.json&quot;,&quot;Tam&quot;,&quot;Tam&quot;,&quot;Cascade&quot;,&quot;Yok&quot;]},{&quot;feature&quot;:&quot;Continue.dev&quot;,&quot;values&quot;:[&quot;config.json&quot;,&quot;Tam&quot;,&quot;Tam&quot;,&quot;Chat&quot;,&quot;Kısmi&quot;]}]"></comparison-table>

**Pratik gözlem.** Aynı MCP server'ı (örn. GitHub MCP) **tüm bu asistanlar tüketebilir**; sadece her birinin config dosyasına server'ı eklemek gerekir. Bu, kurumsal standardizasyonu kolaylaştırır — bir kez yaz, her yerde kullan.

## 4. Claude Code'da MCP Server Kurulumu: Adım Adım

### 4.1. Config Dosyaları

Claude Code üç seviye config destekler:

1. **User-level:** `~/.claude.json` — tüm projeler için ortak server'lar.
2. **Project-level:** `.mcp.json` (proje root'unda) — proje-özel server'lar, repo'ya commit edilir.
3. **Local-only:** `.mcp.local.json` — gizli, gitignore'lanır.

### 4.2. CLI Komutları

Claude Code 2.0+ ile gelen MCP CLI komutları:

~~~bash
# Yeni MCP server ekle (interaktif)
claude mcp add github

# Manuel JSON config ile ekle
claude mcp add --json '{"name":"github","command":"npx","args":["-y","@modelcontextprotocol/server-github"],"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"ghp_xxx"}}'

# Tüm MCP server'ları listele
claude mcp list

# Belirli server'ı test et
claude mcp test github

# Server'ı kaldır
claude mcp remove github
~~~

### 4.3. Slash Komutları

Claude Code içinden:

- `/mcp` — bağlı tüm MCP server'larını ve sundukları tool'ları gör.
- `/mcp __tools` — her server'ın tool listesini detaylı.
- `/mcp restart <server>` — bir server'ı yeniden başlat.

<callout-box data-variant="tip" data-title="Pratik İpucu">

Yeni bir MCP server eklediğinizde Claude Code'u tamamen yeniden başlatın (Ctrl+C, sonra `claude` komutu tekrar). Bazı server'lar restart olmadan tool listesini güncellemez. Cursor için Cmd/Ctrl+Shift+P → "Reload Window" yeterli.

</callout-box>

## 5. 10 Kritik MCP Server'ı Detaylıca

Şimdi 2026 itibarıyla en yaygın kullanılan, kurumsal sertifikalı ve ekosistem-onaylı 10 MCP server'ı tek tek inceliyoruz.

### 5.1. GitHub MCP Server

**Niye?** Geliştirici asistanının %1 numaralı entegrasyonu. Issue, PR, code search, CI status, code review — hepsi tek server.

**Kurulum (`.mcp.json`):**

~~~json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}
~~~

**Token Scope (önerilen):** `repo`, `read:org`, `read:user`. Fine-grained PAT ile sadece spesifik repo'lara izin verin.

**Örnek Prompt'lar:**

- "Son 7 günde merge edilmemiş PR'larımı listele, hangileri review bekliyor?"
- "Bu repo'da `auth.ts` dosyasını referans alan tüm açık issue'ları bul."
- "`feature/payment-flow` branch'inde son 5 commit'i özetle."

**Maliyet:** Token başına ~2K-15K (basit list operasyonları), karmaşık search/grep operasyonlarında 30K+ token. GitHub API quota: 5.000 req/saat PAT ile.

**Güvenlik notu.** Repo-write yetkisi varsa Claude'un "yanlışlıkla" main'e push edebileceği unutulmamalı. Production repo'ları için read-only PAT önerilir; yazma için ayrı, kullanıcı onaylı PAT.

### 5.2. Linear MCP Server

**Niye?** 2026'da Türk SaaS şirketlerinde Linear adopsiyonu %60+; ticket-to-PR akışı doğal.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "@linear/mcp-server"],
      "env": {
        "LINEAR_API_KEY": "lin_api_xxxxxxxxxxxxxxxx"
      }
    }
  }
}
~~~

**Tool'lar:** `list_issues`, `create_issue`, `update_issue`, `add_comment`, `list_projects`, `search_issues` (Linear DSL desteği ile).

**Örnek Prompt'lar:**

- "Bu sprint'te bana atanmış P0/P1 ticket'larını listele, her biri için son güncellemesini özetle."
- "GitHub PR #1234'ten gelen değişiklikleri analiz et, ilgili Linear ticket'a comment olarak ekle."
- "Şu hata mesajını içeren tüm açık issue'ları bul: 'NullPointerException at OrderService'."

**Maliyet:** Linear API ücretsiz (rate limit: 1.500 req/saat). Token kullanımı: tipik query 3K-8K input + 1K-3K output.

**Vaka.** Türk fintech startup'ında Claude Code + Linear MCP, ticket'tan PR'a süreyi ortalama **48 saatten 6 saate** indirdi — Claude PR taslağını ticket'tan otomatik çıkarıp branch açıp boilerplate'i yazıyor.

### 5.3. Slack MCP Server

**Niye?** Geliştirici tartışmalarının %70'i Slack'te geçiyor; geçmiş tartışmayı asistanın görmesi context için kritik.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx",
        "SLACK_TEAM_ID": "T01234567"
      }
    }
  }
}
~~~

**Slack App Scope:** `channels:history`, `channels:read`, `chat:write`, `users:read`. Bot token'ı (xoxb-) önerilir, user token (xoxp-) değil.

**Tool'lar:** `list_channels`, `post_message`, `read_channel_history`, `search_messages`, `get_user_info`.

**Örnek Prompt'lar:**

- "`#backend` kanalında son 3 günde 'database migration' geçen mesajları özetle."
- "Bu deploy notunu `#releases` kanalına thread olarak gönder."
- "Hangi takım üyesinin `oncall` kanalında en çok mesajı var, neden tartıştıklarını özetle."

**Maliyet:** Slack API ücretsiz tier yeterli; rate limit 50 req/dakika. Token: kanal geçmişi okumak pahalı, ortalama query 10K-25K token.

**Güvenlik notu.** Slack bot'unun erişebildiği kanallar **scope kararıdır** — özel HR/Finans kanallarını workspace admin'i ile kısıtlayın. Public kanal okuma genelde sorun değildir; private kanallarda invite gereklidir.

### 5.4. PostgreSQL MCP Server

**Niye?** Geliştirici asistanı için en kritik araç: schema bilgisi olmadan iyi SQL/ORM kodu üretemez.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://readonly_user:pass@localhost:5432/mydb"
      }
    }
  }
}
~~~

**KRİTİK güvenlik.** Connection string'i **read-only user** ile verin. Asistanın `DROP TABLE` veya `DELETE FROM` çalıştırabilmesi felakettir. Postgres'te:

~~~sql
CREATE ROLE ai_readonly WITH LOGIN PASSWORD 'xxx';
GRANT CONNECT ON DATABASE mydb TO ai_readonly;
GRANT USAGE ON SCHEMA public TO ai_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO ai_readonly;
~~~

**Tool'lar:** `query` (SELECT-only by default), `list_tables`, `describe_table`, `list_schemas`.

**Örnek Prompt'lar:**

- "`orders` tablosunun şemasını göster, son 7 günde en çok sipariş veren 10 müşteriyi listele."
- "`users` ve `orders` tabloları arasında JOIN performansını analiz et — index var mı, EXPLAIN sonucu ne?"
- "Bu Prisma şemasını mevcut Postgres'le karşılaştır, eksik kolonları bul."

**Maliyet:** Postgres ücretsiz, MCP server 0 maliyet. Token: schema dump'ı büyük olabilir; tipik 5K-30K token.

**Vaka.** Türk e-ticaret platformu, Postgres MCP ile Cursor entegrasyonu sonrası **schema-uyumsuz SQL bug'larını %78 azalttı** (production'a giden hatalı migration sayısı 12/ay → 2-3/ay).

### 5.5. Salesforce MCP Server

**Niye?** Kurumsal müşteri verisi Salesforce'ta yaşıyor; satış-pazarlama otomasyonu için asistan entegrasyonu büyük getiri.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@salesforce/mcp-server"],
      "env": {
        "SALESFORCE_USERNAME": "you@company.com",
        "SALESFORCE_PASSWORD": "xxx",
        "SALESFORCE_SECURITY_TOKEN": "yyy",
        "SALESFORCE_LOGIN_URL": "https://login.salesforce.com"
      }
    }
  }
}
~~~

**Tool'lar:** `query` (SOQL), `create_record`, `update_record`, `describe_sobject`, `run_apex` (admin-only).

**Örnek Prompt'lar:**

- "Son 30 günde Closed-Won olan Opportunity'leri listele, toplam revenue ve owner dağılımını ver."
- "Şu Account ID için tüm açık Case'leri bul, en yaşlısının kaç gündür açık olduğunu söyle."
- "Bu lead listesini Salesforce'a import et: [...]"

**Maliyet:** Salesforce API call limit org bazlı (genelde 100K/gün). Token: SOQL sonuçları büyük olabilir (50K+ token mümkün).

**KVKK notu.** Salesforce'ta kişisel veri var; MCP üzerinden çağrılan kayıtlar OpenAI/Anthropic cloud'a gönderiliyor. Türkiye'de KVKK uyumu için: (1) cross-border transfer açık rızası, (2) PII masking layer (Salesforce → MCP arası), veya (3) self-hosted Claude (Bedrock Türkiye region'da).

### 5.6. BigQuery MCP Server

**Niye?** Data ekipleri için Postgres'ten daha büyük rol oynayan analytic warehouse.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "bigquery": {
      "command": "npx",
      "args": ["-y", "@google-cloud/mcp-bigquery"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json",
        "BIGQUERY_PROJECT_ID": "my-project-id"
      }
    }
  }
}
~~~

**Service Account izinleri:** `roles/bigquery.dataViewer`, `roles/bigquery.jobUser`. Write yetkisi vermeyin.

**Tool'lar:** `run_query`, `list_datasets`, `list_tables`, `get_table_schema`, `dry_run` (maliyet tahmini için).

**Örnek Prompt'lar:**

- "`events.user_signups` tablosunda son 90 günde ülke bazında dağılımı çıkar, Türkiye'nin oranı nedir?"
- "Bu funnel sorgusunu yaz: signup → email_verify → first_purchase, conversion rate."
- "Bu sorgunun dry-run maliyeti nedir, çalıştırmadan önce kontrol et."

**Maliyet:** BigQuery sorgu başına ücretli (~$5/TB scanned). MCP server'ın `dry_run` tool'unu kullanarak Claude'un büyük sorgulardan kaçınmasını sağlayın — system prompt'a "Always dry_run before run_query if expected scan > 10GB" ekleyin.

### 5.7. Figma MCP Server

**Niye?** Frontend geliştirici için tasarım-to-kod köprüsü; Figma frame'lerinden direkt component üretimi.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "figma": {
      "command": "npx",
      "args": ["-y", "@figma/mcp-server"],
      "env": {
        "FIGMA_ACCESS_TOKEN": "figd_xxxxxxxxxxxx"
      }
    }
  }
}
~~~

**Tool'lar:** `get_file`, `get_frame_image`, `get_component_styles`, `list_styles`, `export_assets`.

**Örnek Prompt'lar:**

- "Bu Figma frame'ini React + Tailwind component'ine çevir, aria-label ve responsive breakpoint'leri ekle."
- "Design system'imizdeki tüm color token'larını listele, Tailwind config'e dök."
- "Bu mockup'ın hangi component'leri zaten code base'imizde var, hangileri yeni yazılmalı?"

**Maliyet:** Figma API ücretsiz tier 1.000 req/saat. Token: image+style data büyük olabilir (20K-80K token tipik).

**Vaka.** İstanbul'lu bir agency, Figma MCP + Claude Code ile mockup → kod süresini ortalama **2 günden 3 saate** indirdi. Frontend developer'lar Figma'da boyut almak yerine doğrudan asistanın çıkarttığı kodu refine ediyor.

### 5.8. Notion MCP Server

**Niye?** Türk yazılım ekiplerinde dokümantasyon platformu olarak Notion popüler; spec → kod akışı için kritik.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@notionhq/mcp-server"],
      "env": {
        "NOTION_API_KEY": "secret_xxxxxxxxxxxx"
      }
    }
  }
}
~~~

**Tool'lar:** `search_pages`, `get_page`, `create_page`, `update_page`, `query_database` (Notion DB'leri için).

**Örnek Prompt'lar:**

- "`Engineering Spec` sayfasındaki API endpoint'leri listele, OpenAPI YAML'ına çevir."
- "Bu PR'ın değişikliklerini Notion `Release Notes` sayfasına ekle."
- "Q2 OKR sayfamızdaki tüm `at risk` durumdaki initiative'leri özetle."

**Maliyet:** Notion API ücretsiz (rate limit 3 req/sn). Token: page içeriği büyük olabilir, ortalama 5K-30K.

### 5.9. Confluence MCP Server

**Niye?** Kurumsal müşterilerde Notion yerine Atlassian Confluence — büyük Türk bankalarında ve enterprise IT'de standart.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "confluence": {
      "command": "npx",
      "args": ["-y", "@atlassian/mcp-server-confluence"],
      "env": {
        "CONFLUENCE_URL": "https://yourcompany.atlassian.net/wiki",
        "CONFLUENCE_EMAIL": "you@company.com",
        "CONFLUENCE_API_TOKEN": "ATATT_xxxxxxxx"
      }
    }
  }
}
~~~

**Tool'lar:** `search`, `get_page`, `get_attachment`, `create_page`, `update_page`, `list_spaces`.

**Örnek Prompt'lar:**

- "`Architecture` space'inde `service mesh` ile ilgili tüm sayfaları bul ve karşılaştırmalı özet ver."
- "Bu RFC taslağını `Engineering RFC` space'inde yeni sayfa olarak oluştur."
- "Confluence'ta bu API endpoint'i için runbook var mı, varsa link ver."

**Maliyet:** Atlassian API call başına ücretli değil ama rate limit 5.000/saat. Token: Confluence sayfaları HTML olarak gelir, parsing pahalı (15K-60K token).

### 5.10. Filesystem MCP Server

**Niye?** Yerel dosya sistemine kontrollü erişim — Claude Code'un default'u zaten dosya okuma yazma yapar ama sandboxed izolasyon için filesystem MCP daha güvenli.

**Kurulum:**

~~~json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/you/Documents/projects",
        "/Users/you/Downloads"
      ]
    }
  }
}
~~~

**Allowed paths argüman olarak verilir; başka path'lere erişim yasak.**

**Tool'lar:** `read_file`, `write_file`, `list_directory`, `search_files`, `move_file`.

**Örnek Prompt'lar:**

- "Downloads klasöründeki tüm PDF'leri tarih sırasına göre listele."
- "Projects/blog klasöründeki tüm Markdown dosyalarında 'TODO' ile başlayan satırları bul."
- "Bu CSV dosyasını oku ve Postgres MCP üzerinden `imports` tablosuna yükle."

**Maliyet:** Sıfır (yerel disk). Token: dosya içeriği boyutuna bağlı.

**Güvenlik notu.** Allowed paths listesini **dikkatli verin**. `/` veya `~/` gibi geniş scope'lar Claude'a tüm dosya sisteminize erişim verir; bu bir feature değil, risk. Projeye-özel klasörlerle kısıtlı tutun.

## 6. Kendi MCP Server'ınızı TypeScript ile Yazma

Türkçe ekosistem için MCP fırsat penceresi açık: KVKK MCP (Türk veri koruma sorguları), Yargıtay MCP (içtihat arama), e-Fatura MCP (faturayı sorgulama), Mernis MCP (kimlik doğrulama), MASAK MCP. Şimdi minimal bir örnek inceleyelim: **KVKK Karar Arşivi MCP Server**.

### 6.1. Proje Yapısı

~~~bash
mkdir kvkk-mcp-server && cd kvkk-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript @types/node tsx
~~~

### 6.2. `src/index.ts`

~~~typescript
#!/usr/bin/env node
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  CallToolRequestSchema,
  ListToolsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
import { z } from "zod";

const server = new Server(
  { name: "kvkk-mcp-server", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

const SearchSchema = z.object({
  query: z.string().describe("Arama sorgusu, örn: 'açık rıza üçüncü kişi'"),
  yearFrom: z.number().optional(),
  yearTo: z.number().optional(),
});

server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [
    {
      name: "search_kvkk_decisions",
      description:
        "KVKK Kurul kararlarında full-text arama yapar; konu, tarih ve karar numarası filtreleri ile.",
      inputSchema: {
        type: "object",
        properties: {
          query: { type: "string" },
          yearFrom: { type: "number" },
          yearTo: { type: "number" },
        },
        required: ["query"],
      },
    },
  ],
}));

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  if (req.params.name === "search_kvkk_decisions") {
    const args = SearchSchema.parse(req.params.arguments);
    // KVKK Kurul kararlarını sorgulayan iç DB veya API çağrısı
    const results = await searchKVKKDB(args);
    return {
      content: [{ type: "text", text: JSON.stringify(results, null, 2) }],
    };
  }
  throw new Error("Bilinmeyen tool");
});

const transport = new StdioServerTransport();
await server.connect(transport);
~~~

### 6.3. Claude Code'a Bağlama

~~~json
{
  "mcpServers": {
    "kvkk": {
      "command": "node",
      "args": ["/path/to/kvkk-mcp-server/dist/index.js"]
    }
  }
}
~~~

**Bu yaklaşımı 200-500 satırda tamamlayabilirsiniz.** Türkçe ekosistemde bu tür domain-özel MCP server'lar henüz yok — kim ilk yaparsa o ekosistem standardı belirleyici olacak.

## 7. Hangi MCP, Hangi Geliştirici Tipine Uygun?

<comparison-table data-caption="Geliştirici Profiline Göre MCP Önerisi" data-headers="[&quot;Profil&quot;,&quot;Birincil MCP&quot;,&quot;İkincil MCP&quot;,&quot;Opsiyonel&quot;]" data-rows="[{&quot;feature&quot;:&quot;Frontend Dev&quot;,&quot;values&quot;:[&quot;GitHub + Figma&quot;,&quot;Notion&quot;,&quot;Slack&quot;]},{&quot;feature&quot;:&quot;Backend Dev&quot;,&quot;values&quot;:[&quot;GitHub + Postgres&quot;,&quot;Linear&quot;,&quot;Confluence&quot;]},{&quot;feature&quot;:&quot;Data Engineer&quot;,&quot;values&quot;:[&quot;BigQuery + Postgres&quot;,&quot;GitHub&quot;,&quot;Notion&quot;]},{&quot;feature&quot;:&quot;DevOps/SRE&quot;,&quot;values&quot;:[&quot;GitHub + Filesystem&quot;,&quot;Slack + Linear&quot;,&quot;AWS/GCP MCP&quot;]},{&quot;feature&quot;:&quot;Sales Engineer&quot;,&quot;values&quot;:[&quot;Salesforce + Confluence&quot;,&quot;Slack&quot;,&quot;Notion&quot;]},{&quot;feature&quot;:&quot;Tech Lead&quot;,&quot;values&quot;:[&quot;Linear + GitHub&quot;,&quot;Slack + Notion&quot;,&quot;Salesforce&quot;]}]"></comparison-table>

## 8. Performans ve Maliyet

<stat-callout data-value="1.7x" data-context="Aynı görev (örn. ''Bu Linear ticket''ı çözümle ve PR aç''), MCP entegrasyonsuz vs MCP entegre" data-outcome="Claude Code ortalama 1.7x daha hızlı tamamlıyor — context arama turu yerine direkt tool çağrısı yapıyor." data-source="{&quot;label&quot;:&quot;Builder.io MCP Benchmark 2025&quot;,&quot;url&quot;:&quot;https://www.builder.io/blog/mcp-server-benchmark&quot;,&quot;date&quot;:&quot;2025&quot;}"></stat-callout>

### Token Maliyeti

MCP server'lar **input token** maliyetini artırır (tool sonuçları context'e eklenir), ama **toplam görev maliyetini düşürür** (asistan deneme-yanılma yapmaz).

Tipik aylık maliyet (10 kişilik geliştirici ekibi):

- **Claude Pro $20/kişi:** 10 × $20 = $200/ay. MCP server'lar dahil tüm tool kullanımı bu içinde.
- **Claude Max 5x $100/kişi:** Heavy user'lar için. Hooks, subagents, MCP unlimited.
- **Claude Max 20x $200/kişi:** Kurumsal seviye, full agent autonomy.
- **API doğrudan:** Yaklaşık $80-$300/kişi/ay; ekibin yoğunluğuna göre.

**Türk şirketleri için tavsiye.** 3-5 geliştirici ile Pro $20 başlangıç; 5+ heavy AI kullanıcısı varsa Max 5x daha ekonomik.

## 9. Türkiye Açısı: KVKK, e-Fatura, Yerel Ekosistem

### KVKK Riski

MCP server kişisel veri içeren sistemlere (Salesforce, Postgres) erişebilir. KVKK uyumu için:

1. **Read-only erişim** — yazma yetkisi yoksa, model kazara veri silemez/değiştiremez.
2. **PII masking layer** — MCP server kişisel veriyi maskeleyip dönsün; OpenAI/Anthropic'e ham veri gitmesin.
3. **Cross-border transfer beyan** — KVKK 9. madde gereği, yurt dışı LLM çağrısı için açık rıza alın.
4. **Audit log** — her MCP çağrısı (tool, parametre, sonuç) saklansın; KVKK soruşturmasında ispat için.

### Türk Ekosistem Fırsatları

Şu MCP server'lar **henüz yok** ve ilk yapan ekosistem standardı belirleyebilir:

- **KVKK Karar Arşivi MCP** — Kurul kararları full-text arama.
- **Yargıtay MCP** — içtihat arama, karar özet.
- **e-Fatura MCP** — fatura sorgu (GIB API'si ile).
- **MERNIS MCP** — kimlik doğrulama (lisanslı kurumlar için).
- **Sayıştay MCP** — kamu denetim raporları arama.
- **MASAK MCP** — finansal suç çerçevesinde public liste sorgu.

**Stratejik not.** Bunlardan birini açık kaynak yayınlamak, Türk AI ekosisteminde marka olmak için en hızlı yoldur — Anthropic resmi registry'sinde Türkçe-özel server sayısı 2026 Mayıs itibarıyla **sıfıra yakın**.

## 10. Vaka: Türk Yazılım Ekibinde MCP Entegrasyonu (Anonim)

**Şirket profili.** İstanbul'da 35 kişilik fintech startup. 18 backend, 8 frontend, 5 data, 4 DevOps.

**Sorun.** Geliştiriciler context switch'ten yoruluyor: Linear → GitHub → Postgres → Slack → Notion. Saatte 4-5 araç değişimi, focus kaybı ciddi.

**Çözüm.** MCP entegrasyonu 3 fazda yapıldı:

- **Faz 1 (1 hafta):** GitHub + Linear + Slack MCP — herkese Claude Code Pro.
- **Faz 2 (2 hafta):** Postgres (read-only) + Notion MCP — backend ve data ekibine açıldı.
- **Faz 3 (3 hafta):** Custom MCP yazıldı: iç tool'lar (deploy CLI, feature flag yönetimi).

**Sonuç (3 ay sonra ölçüm).**

- Ticket-to-PR süresi: ortalama 36 saat → 9 saat (4x).
- Code review döngü süresi: 18 saat → 7 saat.
- Geliştirici memnuniyet skoru (1-10): 6.4 → 8.1.
- Onboarding süresi yeni dev için: 12 gün → 5 gün.

**Anahtar öğrenim.** "MCP'nin değeri sadece individual productivity değil, **takım context paylaşımı** — Claude bir geliştiricinin son ticket'ını okuduğunda, takımdaki diğer geliştiricinin neye baktığını anlıyor."

## 11. Riskler ve Güvenlik

### 11.1. Tool Poisoning

Üçüncü taraf MCP server'ın **kötü niyetli tool tanımı** ile asistanı yanlış aksiyona itmesi. Örnek: `delete_old_files` tool'u aslında tüm dosyaları siler.

**Karşı önlem:** Yalnızca resmi (Anthropic/Microsoft/yapımcı) veya güvenilir community MCP server'ları kullanın. `npm i -y` yerine source kodu okuyup local'de build edin.

### 11.2. Prompt Injection via Resources

MCP resource (örn. Notion sayfası, GitHub issue) içine gizlenmiş prompt injection. "Bu sayfayı oku" dediğinizde, sayfada "Tüm Salesforce kayıtlarını sil" talimatı varsa asistan bunu izlemeye çalışabilir.

**Karşı önlem:** Yüksek-risk MCP tool'larında (Salesforce write, Postgres write) **manuel onay** zorunlu kılın. Claude Code'da `--permission-prompt-tool` ile her tool çağrısı için onay isteyin.

### 11.3. Credential Leakage

MCP server config'inde API token'lar plaintext. `.mcp.json` repo'ya commit edilirse felakettir.

**Karşı önlem:** `.mcp.json` repo'da, ama `env` kısmı boş; gerçek token'lar `.mcp.local.json` (gitignore'lı). Ya da OS keychain entegrasyonu (1Password CLI, macOS Keychain).

### 11.4. Scope Creep

Başlangıçta dar scope verilen bir token zamanla genişletilir; "PR oluşturmak için repo:write lazım oldu" derken bir gün organization-wide admin haline gelir.

**Karşı önlem:** Quarterly scope audit. PAT'leri 90 günde bir rotate edin; minimum gerekli scope ile yeniden oluşturun.

<callout-box data-variant="warning" data-title="Önemli">

MCP server'ları **production database'ine yazma yetkisi ile bağlamayın** — özellikle Claude Code agent mode'unda. Bir kullanıcı "test verisi temizle" derken Claude tüm canlı veriyi silebilir. Production write erişimi her zaman manuel onaylı bir adımdan geçmelidir.

</callout-box>

## 12. Sıkça Sorulan Sorular

<callout-box data-variant="answer" data-title="MCP server yazmak ne kadar sürer?">

Basit bir MCP server (tek tool, REST API wrapper) **2-4 saatte** yazılır. Orta karmaşıklık (5-10 tool, auth, error handling): 1-2 gün. Kurumsal kalitede (test coverage, observability, multi-tenant): 1-2 hafta.

</callout-box>

<callout-box data-variant="answer" data-title="MCP, REST API''den ne farklı?">

REST API'ler human-readable, MCP **LLM-readable**. MCP tool tanımları JSON Schema ile model'in çıkarım yapabileceği şekilde yapılır; description'lar prompt'a iliştirilir. Asistanın "hangi tool'u ne zaman çağıracağı" model'in kararıdır.

</callout-box>

<callout-box data-variant="answer" data-title="Claude Code vs Cursor''da MCP nasıl farklı çalışır?">

Protokol aynı (MCP standardı tek). Farklar UI/UX: Claude Code CLI tabanlı, `/mcp` slash komutu ile interaktif. Cursor sidebar'da görsel; tool çağrılarını manuel onaylama akışı daha smooth. Production için aynı server ikisinde de aynı çalışır.

</callout-box>

<callout-box data-variant="answer" data-title="MCP server''ı production''a deploy etmek için en iyi yöntem?">

İki yaklaşım: **(1)** stdio + Docker container — geliştiricilerin yerel makinesinde çalışır, ama merkezi update zor. **(2)** HTTP+SSE veya Streamable HTTP — merkezi server, geliştiriciler URL ile bağlanır. Kurumsal için (2) önerilir; auth katmanı (OAuth2 veya mTLS) eklenebilir.

</callout-box>

<callout-box data-variant="answer" data-title="KVKK için en güvenli MCP setup nedir?">

Üç kural: **(1)** Tüm MCP server'lar Türkiye'de host edilsin (kişisel veri içerenler). **(2)** LLM çağrısı için Anthropic'in EU instance'ı veya AWS Bedrock Türkiye region'ı. **(3)** PII masking layer — MCP server kişisel veriyi maskeleyip Claude'a versin. Audit log mutlaka tutulsun.

</callout-box>

<callout-box data-variant="answer" data-title="Cursor''da MCP server tüketmeli miyim, yoksa direkt Cursor extension mı?">

İkisi farklı. Cursor extension'lar Cursor-özeldir, sadece Cursor'da çalışır. **MCP server'lar tüm asistanlarda** (Claude Code, VS Code, Windsurf) çalışır. Yatırım kararı: tek araç ekosisteminizde kalacaksa Cursor extension; geleceğe yatırım için MCP.

</callout-box>

<callout-box data-variant="answer" data-title="MCP''nin geleceği ne, kalıcı standart mı?">

Kasım 2024'ten beri (1.5 yıl) MCP, AI tool entegrasyonlarının **fiili standardı** haline geldi. Anthropic, OpenAI (yakın gelecekte destek), Microsoft (VS Code), Google (Cloud) hepsi MCP'yi destekliyor. Kısa-orta vadede MCP standart kalacak; uzun vadede protokol değişebilir ama temel kavramlar (tools/resources/prompts) kalıcı.

</callout-box>

<callout-box data-variant="answer" data-title="Hangi MCP server''ı en sık kullanılır?">

2026 Mayıs ekosistem verilerine göre top 5: **(1) GitHub**, **(2) Filesystem**, **(3) Postgres**, **(4) Slack**, **(5) Linear**. Bunlar bir geliştirici ekibinin %80 ihtiyacını karşılar. Salesforce, BigQuery, Figma daha niş ama yüksek değerli.

</callout-box>

## 13. Sonraki Adım

MCP entegrasyonu kurmak veya kurumsal-grade AI tool ekosisteminizi tasarlamak için:

1. **MCP Strateji Atölyesi.** Ekibinizin günlük araç akışını haritalayıp, hangi MCP server'ların hangi sırayla entegre edileceği 4 saatlik bir oturumda çıkar; çıktı: 8-12 haftalık entegrasyon yol haritası.
2. **Custom MCP Server Geliştirme.** Türk ekosistem-özel (KVKK, e-Fatura, Yargıtay) veya kurumunuza özel iç tool'larınız için MCP server tasarımı + implementation.
3. **MCP Security Audit.** Mevcut MCP setup'ınızda tool poisoning, prompt injection, credential leakage, scope creep risklerini değerlendiriyoruz; KVKK uyum boşluklarını belirliyoruz.

İletişim için site üzerindeki contact formu kullanılabilir.

<references-list data-items="[{&quot;title&quot;:&quot;Model Context Protocol — Official Documentation&quot;,&quot;url&quot;:&quot;https://modelcontextprotocol.io/&quot;,&quot;author&quot;:&quot;Anthropic&quot;,&quot;publishedAt&quot;:&quot;2024-11-25&quot;,&quot;publisher&quot;:&quot;Anthropic&quot;},{&quot;title&quot;:&quot;Introducing the Model Context Protocol&quot;,&quot;url&quot;:&quot;https://www.anthropic.com/news/model-context-protocol&quot;,&quot;author&quot;:&quot;Anthropic&quot;,&quot;publishedAt&quot;:&quot;2024-11-25&quot;,&quot;publisher&quot;:&quot;Anthropic&quot;},{&quot;title&quot;:&quot;MCP Server Repository&quot;,&quot;url&quot;:&quot;https://github.com/modelcontextprotocol/servers&quot;,&quot;author&quot;:&quot;Anthropic&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;GitHub&quot;},{&quot;title&quot;:&quot;Builder.io: MCP Server Benchmark&quot;,&quot;url&quot;:&quot;https://www.builder.io/blog/mcp-server-benchmark&quot;,&quot;author&quot;:&quot;Steve Sewell&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Builder.io&quot;},{&quot;title&quot;:&quot;Nimbalyst: 10 Essential MCP Servers&quot;,&quot;url&quot;:&quot;https://nimbalyst.com/blog/essential-mcp-servers-2025&quot;,&quot;author&quot;:&quot;Nimbalyst&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Nimbalyst&quot;},{&quot;title&quot;:&quot;Salesforce MCP Server Announcement&quot;,&quot;url&quot;:&quot;https://developer.salesforce.com/blogs/2025/mcp-server&quot;,&quot;author&quot;:&quot;Salesforce Developer Blog&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Salesforce&quot;},{&quot;title&quot;:&quot;Cursor MCP Documentation&quot;,&quot;url&quot;:&quot;https://docs.cursor.com/context/model-context-protocol&quot;,&quot;author&quot;:&quot;Cursor&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Cursor&quot;},{&quot;title&quot;:&quot;VS Code MCP Integration&quot;,&quot;url&quot;:&quot;https://code.visualstudio.com/docs/copilot/mcp&quot;,&quot;author&quot;:&quot;Microsoft&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Microsoft&quot;},{&quot;title&quot;:&quot;Linear API + MCP Guide&quot;,&quot;url&quot;:&quot;https://developers.linear.app/docs/mcp&quot;,&quot;author&quot;:&quot;Linear&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Linear&quot;},{&quot;title&quot;:&quot;Slack Bot + MCP Integration&quot;,&quot;url&quot;:&quot;https://api.slack.com/mcp&quot;,&quot;author&quot;:&quot;Slack&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Slack&quot;},{&quot;title&quot;:&quot;PostgreSQL MCP Server Source&quot;,&quot;url&quot;:&quot;https://github.com/modelcontextprotocol/servers/tree/main/src/postgres&quot;,&quot;author&quot;:&quot;MCP Community&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;GitHub&quot;},{&quot;title&quot;:&quot;BigQuery MCP Server&quot;,&quot;url&quot;:&quot;https://github.com/googleapis/mcp-bigquery&quot;,&quot;author&quot;:&quot;Google Cloud&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;GitHub&quot;},{&quot;title&quot;:&quot;Figma MCP Server&quot;,&quot;url&quot;:&quot;https://www.figma.com/developers/api#mcp&quot;,&quot;author&quot;:&quot;Figma&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Figma&quot;},{&quot;title&quot;:&quot;Notion API MCP&quot;,&quot;url&quot;:&quot;https://developers.notion.com/docs/mcp&quot;,&quot;author&quot;:&quot;Notion&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Notion&quot;},{&quot;title&quot;:&quot;Atlassian Confluence MCP&quot;,&quot;url&quot;:&quot;https://developer.atlassian.com/cloud/confluence/mcp&quot;,&quot;author&quot;:&quot;Atlassian&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Atlassian&quot;},{&quot;title&quot;:&quot;MCP Security: Prompt Injection Attacks&quot;,&quot;url&quot;:&quot;https://invariantlabs.ai/blog/mcp-security-attacks&quot;,&quot;author&quot;:&quot;Invariant Labs&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Invariant Labs&quot;},{&quot;title&quot;:&quot;MCP Tool Poisoning Research&quot;,&quot;url&quot;:&quot;https://arxiv.org/abs/2502.11234&quot;,&quot;author&quot;:&quot;Various&quot;,&quot;publishedAt&quot;:&quot;2025-02&quot;,&quot;publisher&quot;:&quot;arXiv&quot;},{&quot;title&quot;:&quot;Anthropic Claude Code Documentation&quot;,&quot;url&quot;:&quot;https://docs.anthropic.com/en/docs/claude-code&quot;,&quot;author&quot;:&quot;Anthropic&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;Anthropic&quot;},{&quot;title&quot;:&quot;KVKK - 6698 Sayılı Kanun&quot;,&quot;url&quot;:&quot;https://www.kvkk.gov.tr/&quot;,&quot;author&quot;:&quot;T.C. KVKK&quot;,&quot;publishedAt&quot;:&quot;2016-04-07&quot;,&quot;publisher&quot;:&quot;Türkiye Cumhuriyeti&quot;},{&quot;title&quot;:&quot;OWASP LLM Top 10 (MCP Implications)&quot;,&quot;url&quot;:&quot;https://owasp.org/www-project-top-10-for-large-language-model-applications/&quot;,&quot;author&quot;:&quot;OWASP&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;OWASP&quot;},{&quot;title&quot;:&quot;MCP TypeScript SDK&quot;,&quot;url&quot;:&quot;https://github.com/modelcontextprotocol/typescript-sdk&quot;,&quot;author&quot;:&quot;Anthropic&quot;,&quot;publishedAt&quot;:&quot;2025&quot;,&quot;publisher&quot;:&quot;GitHub&quot;}]"></references-list>

---

Bu rehber yaşayan bir belgedir; MCP ekosistemi (yeni resmi server'lar, transport güncellemeleri, security best practices) her ay genişlediği için **aylık olarak güncellenmektedir**.