# Agen AI dan MCP

Membangun AI-agent yang melakukan perhitungan astrologi nyata alih-alih halusinasi? AstroWay terhubung ke **Claude (Anthropic), ChatGPT-4 (OpenAI), Llama 3.3 (Groq), DeepSeek, Google Gemini, Mistral** — melalui MCP, llms.txt, atau panggilan HTTP langsung. Tiga cara integrasi — pilih sesuai jenis agen:

- **`llms.txt`** — file discovery untuk agen yang membaca dokumentasi (Cursor IDE, Windsurf, Claude di browser, pipeline RAG kustom di LangChain/LlamaIndex).
- **MCP Server** — zero-code untuk Claude Desktop, Cursor IDE, Windsurf, VS Code (llm CLI) dan klien MCP apa pun (termasuk GPT dengan MCP melalui OpenAI Realtime API).
- **HTTP API** — panggilan langsung dari agen atau framework buatanmu (LangChain, LlamaIndex, AutoGen, CrewAI).

## llms.txt — discovery untuk AI-agent

Situs ini mengekspos dua file yang dapat dibaca mesin dalam format [llms.txt](https://llmstxt.org/):

- **[`/llms.txt`](https://api.astroway.info/llms.txt)** — indeks semua halaman dokumentasi yang dikelompokkan berdasarkan bagian (API Reference, Use Cases, Examples, Products). Ukurannya kecil, muat di mana pun.
- **[`/llms-full.txt`](https://api.astroway.info/llms-full.txt)** — seluruh konten dokumentasi dalam satu file teks polos. Cocok untuk pengindeksan offline ke dalam database vektor atau sekali pengisian ke dalam context.

### Kapan harus menggunakan

| Skenario | File |
|---|---|
| Cursor/Windsurf "baca docs astroway dan bantu integrasi" | `/llms.txt` (agen akan mengambil bagian yang diperlukan sendiri) |
| Pipeline RAG/kustom atau database vektor untuk bot FAQ | `/llms-full.txt` (satu fetch — seluruh korpus) |
| Claude/ChatGPT di browser: "ini API kami, bangun klien" | Tempelkan `/llms-full.txt` ke dalam prompt |
| Agen produksi dengan eksekusi panggilan | MCP Server atau HTTP API (lihat di bawah) |

### Contoh: pull ke agen buatanmu

```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">
File-file ini diregenerasi secara otomatis setiap rilis situs. Kesegaran terjamin: versi API di akhir `/llms.txt` sama dengan production deploy saat ini.
</Aside>

## MCP Server (direkomendasikan untuk Claude Desktop)

Model Context Protocol (MCP) adalah standar terbuka untuk menghubungkan alat ke model AI. MCP Server AstroWay menyediakan 25 alat untuk perhitungan dan interpretasi.

### Pengaturan untuk Claude Desktop

Tambahkan ke `claude_desktop_config.json`:

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

Setelah restart Claude Desktop, kamu akan melihat 25 alat astrologi.

### Apa yang bisa dilakukan MCP Server

| Alat | Fungsi |
|---|---|
| `natal_chart` | Perhitungan peta natal |
| `synastry` | Sinastri dua orang |
| `daily_horoscope` | Horoskop harian |
| `interpret_natal` | Interpretasi AI peta natal |
| `human_design` | Peta HD lengkap |
| `transits` | Transit saat ini |

Tersedia 25 alat yang mencakup perhitungan utama dan interpretasi AI.

### Contoh percakapan dengan Claude

> **Pengguna:** Buat peta natal untuk seseorang yang lahir 14 Juli 1990 pukul 14:30 di Kyiv. Apa arti Matahari di Cancer di rumah ke-10?
>
> **Claude:** *Menggunakan `natal_chart` untuk perhitungan, lalu `interpret_placement` untuk interpretasi. Mengembalikan posisi planet dengan data nyata dan interpretasi yang bermakna.*

## HTTP API

Untuk agen AI tanpa dukungan MCP — gunakan HTTP API secara langsung.

### Untuk pembuatan konten

<Tabs syncKey="lang">
  <TabItem label="TypeScript">
    ```ts
    // Agen AI memanggil /interpret/natal untuk interpretasi
    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 — interpretasi AI siap pakai
    // result.disclaimer — disclaimer untuk ditampilkan
    ```
  </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'] — interpretasi AI siap pakai
    # result['disclaimer'] — disclaimer untuk ditampilkan
    ```
  </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']       — interpretasi AI siap pakai
    // $result['disclaimer'] — disclaimer untuk ditampilkan
    ```
  </TabItem>
</Tabs>

### Untuk perhitungan + LLM buatanmu

```ts
// 1. Dapatkan data mentah melalui /chart (lebih murah — 20 kredit)
const chart = await fetch('https://api.astroway.info/v1/chart', { ... });
const data = await chart.json();

// 2. Kirim data ke LLM-mu
const prompt = `Interpret this natal chart: ${JSON.stringify(data.planets)}`;
const llmResponse = await myLLM.generate(prompt);
```

<Aside type="tip">
Jika kamu hanya butuh interpretasi — gunakan `/interpret/*` (50 kredit, teks siap pakai). Jika ingin mengontrol prompt — ambil `/chart` (20 kredit) dan kirim datanya ke LLM-mu.
</Aside>

## Skenario

### Asisten astrologi pribadi

MCP Server + Claude/ChatGPT. Pengguna bertanya — agen menghitung dan menginterpretasi. Anggaran: Paket Free untuk penggunaan pribadi.

### Bot konten untuk media sosial

Pembuatan horoskop harian untuk 12 zodiak melalui `/horoscope/daily`. 12 permintaan per hari = 240 kredit. Paket Free dengan cadangan besar.

### Platform AI coaching

`/interpret/natal` + `/interpret/transits` untuk setiap klien. 100 klien/hari = 10.000 kredit/hari. Paket Pro.

<CardGrid>
  <LinkCard title="Mulai Cepat →" href="/getting-started/" description="Permintaan pertama dalam 5 menit" />
  <LinkCard title="Horoscope API" href="/products/horoscope-api/" description="AI-interpretasi dan horoskop" />
  <LinkCard title="Paket Harga" href="/pricing/" description="Dari gratis hingga Enterprise" />
</CardGrid>
