# AI ajanları ve MCP

AstroWay’ı **Claude (Anthropic), ChatGPT-4 (OpenAI), Llama 3.3 (Groq), DeepSeek, Google Gemini, Mistral** gibi modellerle entegre ederek gerçek astrolojik hesaplamalar yapan bir AI ajanı mı oluşturmak istiyorsun? AstroWay, üç farklı şekilde entegre olabilir — hangi tip ajanda kullanıyorsan seç:

- **`llms.txt`** — Dokümantasyonu okuyan ajanlar için keşif dosyaları (Cursor IDE, Windsurf, tarayıcıdaki Claude, LangChain/LlamaIndex tabanlı özel RAG pipeline’ları).
- **MCP sunucusu** — Claude Desktop, Cursor IDE, Windsurf, VS Code (llm CLI) ve herhangi bir MCP uyumlu istemci için sıfır kod (OpenAI Realtime API üzerinden GPT ile birlikte).
- **HTTP API** — Kendi ajanın ya da framework’ünün (LangChain, LlamaIndex, AutoGen, CrewAI) doğrudan çağrılması.

## llms.txt — AI ajanları için keşif

Site, [llms.txt](https://llmstxt.org/) formatında iki makine-okunabilir dosya sunar:

- **[`/llms.txt`](https://api.astroway.info/llms.txt)** — Tüm dokümantasyon sayfalarını bölümlerine göre gruplandırılmış olarak indeksler. Küçük boyutlu, herhangi bir context window’a sığar.
- **[`/llms-full.txt`](https://api.astroway.info/llms-full.txt)** — Tüm dokümantasyonu tek bir düz metin dosyası olarak sunar. Vektör veritabanına çevrimdışı indeksleme ya da prompt’a tek seferde yapıştırma için uygundur.

### Ne zaman kullanmalısın

| Senaryo | Dosya |
|---|---|
| Cursor/Windsurf: “astroway doklarını oku ve entegrasyonumuza yardım et” | `/llms.txt` (ajan gerekli bölümleri otomatik olarak çekecek) |
| Kendi RAG pipeline’ın / FAQ botu için vektör veritabanı | `/llms-full.txt` (tek bir fetch — tüm corpus) |
| Tarayıcıdaki Claude/ChatGPT: “işte API’miz, bir istemci oluştur” | `/llms-full.txt` prompt’a yapıştır |
| Üretim ortamındaki ajan (çağrıları gerçekleştiren) | MCP sunucusu ya da HTTP API (aşağıya bak) |

### Örnek: Ajanına çekme

```ts
const docs = await fetch('https://api.astroway.info/llms-full.txt').then(r => r.text());

const systemPrompt = `You are an integration assistant for AstroWay API.
Documentation:
${docs}

When the user asks how to do X, return a working code snippet using their API key.`;
```

<Aside type="note">
Dosyalar site her yayınlandığında otomatik olarak yenilenir. Tazelik garantili: `/llms.txt` sonundaki API versiyonu, mevcut production deploy ile aynıdır.
</Aside>

## MCP sunucusu (Claude Desktop için önerilen)

Model Context Protocol (MCP), AI modellerini araçlara bağlamak için açık bir standarttır. AstroWay MCP sunucusu hesaplama ve yorumlama için 25 araç sunar.

### Claude Desktop için ayarlar

`claude_desktop_config.json` dosyasına ekle:

```json
{
  "mcpServers": {
    "astroway": {
      "command": "npx",
      "args": ["@astroway/mcp"],
      "env": {
        "ASTROWAY_API_KEY": "aw_live_your_key_here"
      }
    }
  }
}
```

Claude Desktop’u yeniden başlattıktan sonra 25 astrolojik aracı göreceksin.

### MCP sunucusu neler yapabilir

| Araç | Ne yapar |
|---|---|
| `natal_chart` | Doğum haritasını hesaplar |
| `synastry` | İki kişinin senkronisini hesaplar |
| `daily_horoscope` | Günlük burç yorumu |
| `interpret_natal` | Doğum haritasını AI ile yorumlar |
| `human_design` | Tam HD haritası |
| `transits` | Mevcut transitler |

Toplamda 25 araç, temel hesaplamaları ve AI yorumlarını kapsar.

### Claude ile örnek diyalog

> **Kullanıcı:** 14 Temmuz 1990, saat 14:30’da Kiev’de doğan biri için doğum haritasını oluştur. 10. evde Yengeç Güneş’i ne anlama geliyor?
>
> **Claude:** *`natal_chart` aracını kullanarak haritayı hesaplar, ardından `interpret_placement` ile yorumlar. Gerçek verilerle gezegen konumlarını ve anlamlı bir yorumu döndürür.*

## HTTP API

MCP desteklemeyen AI ajanları için HTTP API’yi doğrudan kullanabilirsin.

### İçerik üretimi için

<Tabs syncKey="lang">
  <TabItem label="TypeScript">
    ```ts
    // AI ajanı, yorumu oluşturmak için /interpret/natal’u çağırır
    const r = await fetch('https://api.astroway.info/v1/interpret/natal', {
      method: 'POST',
      headers: {
        'X-Api-Key': process.env.ASTROWAY_API_KEY!,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        date: '1990-07-14',
        time: '14:30:00',
        timezoneOffset: 3,
        latitude: 50.4501,
        longitude: 30.5234,
      }),
    });

    const result = await r.json();
    // result.text — hazır AI yorumu
    // result.disclaimer — gösterilmesi gereken feragatname
    ```
  </TabItem>
  <TabItem label="Python">
    ```python

    r = requests.post(
        'https://api.astroway.info/v1/interpret/natal',
        headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY']},
        json={
            'date': '1990-07-14',
            'time': '14:30:00',
            'timezoneOffset': 3,
            'latitude': 50.4501,
            'longitude': 30.5234,
        },
    )
    result = r.json()
    # result['text'] — hazır AI yorumu
    # result['disclaimer'] — gösterilmesi gereken feragatname
    ```
  </TabItem>
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/interpret/natal \
      -H "X-Api-Key: $ASTROWAY_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "date": "1990-07-14",
        "time": "14:30:00",
        "timezoneOffset": 3,
        "latitude": 50.4501,
        "longitude": 30.5234
      }'
    ```
  </TabItem>
  <TabItem label="PHP">
    ```php
    <?php
    use GuzzleHttp\Client;

    $aw = new Client(['base_uri' => 'https://api.astroway.info/v1/']);
    $r = $aw->post('interpret/natal', [
        'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')],
        'json' => [
            'date' => '1990-07-14',
            'time' => '14:30:00',
            'timezoneOffset' => 3,
            'latitude' => 50.4501,
            'longitude' => 30.5234,
        ],
    ]);

    $result = json_decode($r->getBody(), true);
    // $result['text']       — hazır AI yorumu
    // $result['disclaimer'] — gösterilmesi gereken feragatname
    ```
  </TabItem>
</Tabs>

### Hesaplama + kendi LLM’in için

```ts
// 1. /chart üzerinden ham veriyi al (daha ucuz — 20 kredi)
const chart = await fetch('https://api.astroway.info/v1/chart', { ... });
const data = await chart.json();

// 2. Veriyi kendi LLM’ine ilet
const prompt = `Interpret this natal chart: ${JSON.stringify(data.planets)}`;
const llmResponse = await myLLM.generate(prompt);
```

<Aside type="tip">
Sadece yorumlama gerekiyorsa `/interpret/*` kullan (50 kredi, metin hazır). Prompt’unu kontrol etmek istiyorsan `/chart` kullan (20 kredi) ve veriyi kendi LLM’ine ilet.
</Aside>

## Senaryolar

### Kişisel astroloji asistanı

MCP sunucusu + Claude/ChatGPT. Kullanıcı sorar — ajan hesaplar ve yorumlar. Bütçe: Kişisel kullanım için ücretsiz plan.

### Sosyal medya için içerik botu

12 burç için günlük burç yorumlarının `/horoscope/daily` üzerinden üretilmesi. Günde 12 istek = 240 kredi. Ücretsiz plan için büyük bir marj var.

### AI koçluk platformu

Her müşteri için `/interpret/natal` + `/interpret/transits`. Günde 100 müşteri = günde 10.000 kredi. Pro plan.

<CardGrid>
  <LinkCard title="Hızlı başlangıç →" href="/getting-started/" description="İlk isteğini 5 dakikada yap" />
  <LinkCard title="Burç API’si" href="/products/horoscope-api/" description="AI yorumları ve burçlar" />
  <LinkCard title="Fiyatlandırma" href="/pricing/" description="Ücretsizden Enterprise’a" />
</CardGrid>
