# AI-агенти та MCP

Будуєш AI-агента, що має робити справжні астрологічні розрахунки замість галюцинацій? AstroWay підключається до **Claude (Anthropic), ChatGPT-4 (OpenAI), Llama 3.3 (Groq), DeepSeek, Google Gemini, Mistral** — через MCP, llms.txt або прямі HTTP-виклики. Три способи інтеграції — обирай за типом агента:

- **`llms.txt`** — discovery-файли для агентів, що читають документацію (Cursor IDE, Windsurf, Claude у браузері, кастомні RAG-пайплайни на LangChain/LlamaIndex).
- **MCP сервер** — zero-code для Claude Desktop, Cursor IDE, Windsurf, VS Code (llm CLI) і будь-якого MCP-сумісного клієнта (включаючи GPT з MCP через OpenAI Realtime API).
- **HTTP API** — пряме звернення з власного агента або фреймворка (LangChain, LlamaIndex, AutoGen, CrewAI).

## llms.txt — discovery для AI-агентів

Сайт експонує два машиночитані файли у форматі [llms.txt](https://llmstxt.org/):

- **[`/llms.txt`](https://api.astroway.info/llms.txt)** — індекс усіх сторінок документації згрупований за секціями (API Reference, Use Cases, Examples, Products). Невеликий, влазить у будь-який context window.
- **[`/llms-full.txt`](https://api.astroway.info/llms-full.txt)** — увесь зміст документації одним plain-text файлом. Підходить для офлайн-індексування у векторну БД або одноразового вливання в context.

### Коли використовувати

| Сценарій | Файл |
|---|---|
| Cursor/Windsurf «прочитай docs astroway й допоможи з інтеграцією» | `/llms.txt` (агент сам підтягне потрібні розділи) |
| Власний RAG-пайплайн / векторна БД для FAQ-бота | `/llms-full.txt` (один fetch — увесь корпус) |
| Claude/ChatGPT у браузері: «ось наш API, побудуй клієнт» | `/llms-full.txt` приклеїти у промпт |
| Production-агент із виконанням викликів | MCP сервер або HTTP API (див. нижче) |

### Приклад: pull у власний агент

```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">
Файли регенеруються автоматично при кожному релізі сайту. Свіжість гарантовано: версія API в кінці `/llms.txt` збігається з поточним production deploy.
</Aside>

## MCP сервер (рекомендований для Claude Desktop)

Model Context Protocol (MCP) — відкритий стандарт для підключення інструментів до AI-моделей. AstroWay MCP сервер надає 25 інструментів для розрахунків і інтерпретацій.

### Налаштування для Claude Desktop

Додай у `claude_desktop_config.json`:

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

Після перезапуску Claude Desktop побачить 25 астрологічних інструментів.

### Що може MCP сервер

| Інструмент | Що робить |
|---|---|
| `natal_chart` | Розрахунок натальної карти |
| `synastry` | Синастрія двох людей |
| `daily_horoscope` | Денний гороскоп |
| `interpret_natal` | AI-інтерпретація натальної карти |
| `human_design` | Повна HD-карта |
| `transits` | Поточні транзити |

Повний список — 25 інструментів, що покривають основні розрахунки та AI-інтерпретації.

### Приклад діалогу з Claude

> **Користувач:** Побудуй натальну карту для людини, народженої 14 липня 1990 о 14:30 у Києві. Що означає Сонце в Раку в 10 будинку?
>
> **Claude:** *Використовує `natal_chart` для розрахунку, потім `interpret_placement` для інтерпретації. Повертає позиції планет з реальними даними та осмислену інтерпретацію.*

## HTTP API

Для AI-агентів без MCP-підтримки — використовуй HTTP API напряму.

### Для генерації контенту

<Tabs syncKey="lang">
  <TabItem label="TypeScript">
    ```ts
    // AI-агент викликає /interpret/natal для інтерпретації
    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 — готова AI-інтерпретація
    // result.disclaimer — disclaimer для відображення
    ```
  </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'] — готова AI-інтерпретація
    # result['disclaimer'] — disclaimer для відображення
    ```
  </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']       — готова AI-інтерпретація
    // $result['disclaimer'] — disclaimer для відображення
    ```
  </TabItem>
</Tabs>

### Для розрахунків + власний LLM

```ts
// 1. Отримай сирі дані через /chart (дешевше — 20 кредитів)
const chart = await fetch('https://api.astroway.info/v1/chart', { ... });
const data = await chart.json();

// 2. Передай дані у свій LLM
const prompt = `Interpret this natal chart: ${JSON.stringify(data.planets)}`;
const llmResponse = await myLLM.generate(prompt);
```

<Aside type="tip">
Якщо тобі потрібна лише інтерпретація — використовуй `/interpret/*` (50 кредитів, текст готовий). Якщо хочеш контролювати промпт — бери `/chart` (20 кредитів) і передавай дані у свій LLM.
</Aside>

## Сценарії

### Персональний астрологічний асистент

MCP сервер + Claude/ChatGPT. Користувач запитує — агент рахує і інтерпретує. Бюджет: Free тариф для персонального використання.

### Контент-бот для соцмереж

Щоденна генерація гороскопів для 12 знаків через `/horoscope/daily`. 12 запитів на день = 240 кредитів. Free тариф з великим запасом.

### AI-коучинг платформа

`/interpret/natal` + `/interpret/transits` для кожного клієнта. 100 клієнтів/день = 10 000 кредитів/день. Тариф Pro.

<CardGrid>
  <LinkCard title="Швидкий старт →" href="/getting-started/" description="Перший запит за 5 хвилин" />
  <LinkCard title="Horoscope API" href="/products/horoscope-api/" description="AI-інтерпретації та гороскопи" />
  <LinkCard title="Тарифи" href="/pricing/" description="Від безкоштовного до Enterprise" />
</CardGrid>
