> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Portal'in Yapay Zeka Araçları ile Web Tarayıcı Üzerinden MCP Bağlantısıyla Kullanımı

> MCP desteği olmayan yapay zeka araçları ile Apinizer API Portal'ı kullanmak için Chrome tarayıcısı üzerinden üçüncü taraf bir eklenti kurarak MCP bağlantısı kurabilir. Bu yöntem, web tabanlı yapay zeka araçları (ChatGPT, Gemini vb.) ile API Portal'ın MCP araçlarını kullanarak API keşfi, test etme ve yönetim işlemlerini gerçekleştirmeye olanak sağlar.

<Warning>
  Bu yöntem; tamamen üçüncü taraf uygulama, eklenti veya betiklerin çalıştırılmasını gerektirmektedir. Söz konusu üçüncü taraf yazılımlar **APINIZER** tarafından geliştirilmemekte, doğrulanmamakta veya desteklenmemektedir. Bu nedenle:

  * Üçüncü taraf yazılımların kurulumu ve kullanımı **kullanıcının kendi inisiyatifinde** olup, doğabilecek tüm risk, zarar ve hukuki sorumluluk kullanıcıya aittir.
  * **APINIZER**, bu tür uygulamaların veya betiklerin çalıştırılması sonucu ortaya çıkabilecek **veri kaybı, güvenlik ihlali, uyumsuzluk, erişim engeli** veya herhangi bir doğrudan/dolaylı zarardan sorumlu tutulamaz.
  * Kurulum öncesinde ve kullanım süresince, çalıştırılacak uygulama veya kodların **tamamının kaynağı, güvenilirliği ve içeriği** kullanıcı tarafından dikkatle incelenmeli ve onaylanmalıdır.

  **Önemli:** Herhangi bir güvenlik riski veya uyumsuzluk yaşamamak adına, yalnızca kaynağını ve güvenilirliğini tamamen doğruladığınız eklenti ve kodları kullanmanız şiddetle tavsiye edilir.
</Warning>

MCP (Model Context Protocol), yapay zeka araçlarının harici sistemlerle güvenli ve kontrollü şekilde iletişim kurmasına olanak tanır. Apinizer API Portal'ı MCP desteği olmayan bir yapay zeka aracı ile kullanmak için Chrome tarayıcısı üzerinden üçüncü taraf bir eklenti kurulabilir ve MCP bağlantısının bu eklenti aracılığıyla yönetilmesi sağlanabilir.

## 1. Gerekli Eklentiyi Kurun

<Steps>
  <Step title="Chrome Eklentilerine Git">
    Chrome tarayıcısında **Eklentiler** menüsüne gidin
  </Step>

  <Step title="MCP SuperAssistant'ı Yükle">
    "MCP SuperAssistant" eklentisini yükleyin. Bu eklenti, tarayıcı ile MCP sunucusu arasında köprü görevini görecektir.
  </Step>
</Steps>

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel1.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=9b69cdeefed93762643de696e2a3b9f9" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel1.png" />

## 2. MCP Sunucu Tanım Dosyasını Oluşturun

Eklenti veya istemci, Apinizer API Portal'a nasıl bağlanacağını bu dosyadan okuyacaktır.

### HTTP Proxy Dosyası Oluşturma

Bilgisayarınızda uygun bir konuma `http_proxy.js` isimli aşağıdaki formatta bir **javascript** dosyası oluşturun (örnek **C:\mcp\http\_proxy.js**):

```javascript theme={null}
const connection = require('https');
const readline = require('readline');

// Token'ı environment variable'dan al
const APINIZER_TOKEN = process.env.APINIZER_TOKEN;
const APINIZER_HOST = process.env.APINIZER_HOST;
const APINIZER_PORT = process.env.APINIZER_PORT;
const timeout = 10000; // 10 saniye

async function sendHttpRequest(data) {
    return new Promise((resolve, reject) => {
        const postData = JSON.stringify(data);
        const options = {
            hostname: APINIZER_HOST,
            port: APINIZER_PORT,
            path: '/apiportal/management/mcp/api',
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json',
                'APINIZER-TOKEN': APINIZER_TOKEN
            }
        };

        const req = connection.request(options, (res) => {
            let responseData = '';
            res.on('data', (chunk) => {
                responseData += chunk;
            });
            res.on('end', () => {
                console.error(`Status: ${res.statusCode}`);
                console.error(`Raw Response: ${responseData}`);
                
                // 401 Unauthorized kontrolü
                if (res.statusCode === 401) {
                    reject(new Error('Unauthorized: Invalid MCP token'));
                    return;
                }
                
                // 403 Forbidden kontrolü
                if (res.statusCode === 403) {
                    reject(new Error('Forbidden: Access denied'));
                    return;
                }
                
                try {
                    const response = JSON.parse(responseData);
                    
                    // Claude Desktop için ultra güvenli temizlik
                    const cleanResponse = {
                        jsonrpc: response.jsonrpc || "2.0"
                    };
                    
                    // ID kontrolü - null, undefined veya notification durumu
                    if (response.id !== null && response.id !== undefined) {
                        cleanResponse.id = response.id;
                    } else if (data.method && data.method.startsWith('notifications/')) {
                        console.error('Notification detected - skipping ID');
                    } else {
                        cleanResponse.id = data.id || "unknown";
                    }
                    
                    // Result varsa ekle
                    if (response.result !== null && response.result !== undefined) {
                        cleanResponse.result = response.result;
                    }
                    
                    // Error varsa ekle
                    if (response.error !== null && response.error !== undefined) {
                        cleanResponse.error = response.error;
                    }
                    
                    // Notification'lar için özel handling
                    if (data.method && data.method.startsWith('notifications/')) {
                        console.error('Notification acknowledged - no response sent');
                        return;
                    }
                    
                    console.error(`Cleaned Response: ${JSON.stringify(cleanResponse)}`);
                    resolve(cleanResponse);
                } catch (error) {
                    console.error(`Parse Error: ${error.message}`);
                    reject(new Error(`Invalid JSON: ${responseData.substring(0, 100)}`));
                }
            });
        });

        req.setTimeout(timeout, () => {
            console.error(`Request timeout after ${timeout}ms`);
            req.destroy();
            reject(new Error(`Request timeout after ${timeout}ms`));
        });

        req.on('error', (error) => {
            console.error(`Request Error: ${error.message}`);
            reject(error);
        });

        req.write(postData);
        req.end();
    });
}

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    terminal: false
});

rl.on('line', async (line) => {
    try {
        console.error(`Input: ${line}`);
        const request = JSON.parse(line);
        
        // Notification'lar için özel handling
        if (request.method && request.method.startsWith('notifications/')) {
            console.error('Processing notification...');
            await sendHttpRequest(request);
            return;
        }
        
        const response = await sendHttpRequest(request);
        if (response) {
            console.log(JSON.stringify(response));
        }
    } catch (error) {
        console.error('Error:', error.message);
        const errorResponse = {
            jsonrpc: "2.0",
            id: "error",
            error: {
                code: -32603,
                message: error.message
            }
        };
        console.log(JSON.stringify(errorResponse));
    }
});

console.error(`Secure MCP HTTP/HTTPS proxy started with token: ${APINIZER_TOKEN.substring(0, 8)}...`);
```

### MCP Konfigürasyon Dosyası Oluşturma

Bilgisayarınızda uygun bir konuma aşağıdaki formatta bir **JSON** dosyası oluşturun (örnek **C:\mcp\mcp\_config.json**):

<CodeGroup>
  ```json theme={null}
  {
    "mcpServers": {
      "apinizer-portal-mcp-http": {
        "command": "node",
        "args": [
          "C:\\mcp\\http_proxy.js"
        ],
        "env": {
          "APINIZER_TOKEN": "mcp_xxx",
          "APINIZER_HOST": "apiportal.apinizer.com",
          "APINIZER_PORT": "443"
        }
      }
    }
  }
  ```
</CodeGroup>

<CardGroup cols={3}>
  <Card title="command" icon="terminal">
    MCP sunucusunun çalıştırılacağı komut (burada Node.js kullanılıyor)
  </Card>

  <Card title="args" icon="file-code">
    MCP proxy script'inin dosya yolu
  </Card>

  <Card title="env" icon="gear">
    Bağlantı için gerekli ortam değişkenleri:

    * `APINIZER_TOKEN`: Apinizer MCP erişim token'ınız
    * `APINIZER_HOST`: Apinizer API Portal ana host adresi
    * `APINIZER_PORT`: HTTPS portu (varsayılan: 443)
  </Card>
</CardGroup>

## 3. Node.js Kurulumu

MCP sunucuları Node.js üzerinde çalıştığı için hedef sistemde olduğu gibi erişim sağlayacağınız sisteminizde de Node.js kurulu olmalıdır.

<Card title="Node.js İndirme" icon="download">
  **İndirme Linki:** [https://nodejs.org/tr/download](https://nodejs.org/tr/download)
</Card>

Kurulumdan sonra terminal/komut istemcisinde aşağıdaki komutla versiyonu kontrol edebilirsiniz:

<CodeGroup>
  ```bash theme={null}
  node --version
  npm --version
  ```
</CodeGroup>

## 4. MCP Bağlantısını Ayarlamak

<Steps>
  <Step title="Yapay Zeka Aracını Aç">
    Kullandığınız yapay zeka aracının web arayüzünü açın ve yeni bir sohbet oluşturun
  </Step>

  <Step title="MCP Konfigürasyonu">
    Yönergeleri girdiğiniz kutucuğun sonuna eklenmiş olan "MCP" ifadesine tıklayın ve "Configure" butonuna basın, açılan alanda MCP alanını ve altındaki alanları aktifleştirin

    <img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel2.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=4da788f4cfa4d00399327a79c4f33fea" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel2.png" />
  </Step>

  <Step title="Proxy'yi Başlat">
    Windows'ta komut satırını açın (Win+R → cmd → enter) ve aşağıdaki ifadeyi sondaki adresi kendinize göre düzelterek çalıştırın:

    <CodeGroup>
      ```bash theme={null}
      npx @srbhptl39/mcp-superassistant-proxy@latest --config C:\\mcp\\mcp_config.json
      ```
    </CodeGroup>
  </Step>

  <Step title="Bağlantıyı Doğrula">
    Bu işlem sonunda tarayıcıda yan tarafa açılan yeni ekranda "Server Connected" ifadesini ve "Available Tools" sekmesinde ilgili bağlantı tanımınızı görmeniz gerekiyor

    <img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel3.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=05d6bc54f4654b8122707ff4bc399865" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel3.png" />
  </Step>

  <Step title="Instructions'ı Ekle">
    Yönergeleri girdiğiniz kutucuğunun sonundaki "MCP" ifadesine basın ve size çıkardığı "Instructions"'ı yönerge olarak girmek için insert'e basın. Yönergeleri gönderin

    <img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel4.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=1a75a77920f90b80e517ebee6c171c24" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel4.png" />
  </Step>
</Steps>

<Info>
  Bu noktadan itibaren Apinizer API Portaline MCP ile bağlanabilir, size sunulan araçları kullanabilirsiniz.
</Info>

## 5. Örnekler

Bu bölümde farklı yapay zeka araçları ile kullanım örnekleri eklenebilir.

ChatGPT ekran görüntüleri:

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel5.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=5ea7694482ee68db9f3a811437049bea" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel5.png" />

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel6.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=ac5f3a13156c3984b6aa672b59a2a94a" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel6.png" />

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel7.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=68215a041915d77edb8c6788fc15392f" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel7.png" />

Gemini ekran görüntüleri

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel8.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=1f32fd99067c7e0e5a7ea414e1fa3182" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel8.png" />

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel9.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=129942cbc22917c78b1e5c6c20dada67" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel9.png" />

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel10.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=e04f41af697641d1831ec63124d41b04" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel10.png" />

<img src="https://mintcdn.com/apinizer/BdDygHGHJYw7CKxt/images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel11.png?fit=max&auto=format&n=BdDygHGHJYw7CKxt&q=85&s=66eea53e7758b3a7f0c1d33d232b49ef" alt="Image 2024 9 9 15 35 35 Pn" width="800" className="mr-auto" data-path="images/tutorials/nasil-yapilir-kilavuzlari/gelistirici-kilavuzlari/api-portal-mcp-kullanimi/gorsel11.png" />
