# AI-Agenten und MCP

Baust du einen AI-Agenten, der echte astrologische Berechnungen durchführt – statt Halluzinationen? AstroWay verbindet sich mit **Claude (Anthropic), ChatGPT-4 (OpenAI), Llama 3.3 (Groq), DeepSeek, Google Gemini, Mistral** – über MCP, `llms.txt` oder direkte HTTP-Aufrufe. Drei Integrationsmöglichkeiten – wähle je nach Agententyp:

- **`llms.txt`** – Discovery-Dateien für Agenten, die Dokumentation lesen (Cursor IDE, Windsurf, Claude im Browser, benutzerdefinierte RAG-Pipelines mit LangChain/LlamaIndex).
- **MCP-Server** – Zero-Code für Claude Desktop, Cursor IDE, Windsurf, VS Code (llm CLI) und jeden MCP-kompatiblen Client (inklusive GPT mit MCP über OpenAI Realtime API).
- **HTTP-API** – Direkter Zugriff aus deinem eigenen Agenten oder Framework (LangChain, LlamaIndex, AutoGen, CrewAI).

## llms.txt – Discovery für AI-Agenten

Die Website stellt zwei maschinenlesbare Dateien im [llms.txt](https://llmstxt.org/)-Format bereit:

- **[`/llms.txt`](https://api.astroway.info/llms.txt)** – Index aller Dokumentationsseiten, gruppiert nach Abschnitten (API Reference, Use Cases, Examples, Products). Klein und passt in jeden Context Window.
- **[`/llms-full.txt`](https://api.astroway.info/llms-full.txt)** – Der gesamte Dokumentationsinhalt als eine Plain-Text-Datei. Ideal für Offline-Indizierung in einer Vektordatenbank oder einmaliges Einfügen in den Context.

### Wann du sie verwenden solltest

| Szenario | Datei |
|---|---|
| Cursor/Windsurf: „Lies die AstroWay-Docs und helfe bei der Integration“ | `/llms.txt` (der Agent lädt die benötigten Abschnitte selbst) |
| Eigene RAG-Pipeline / Vektordatenbank für einen FAQ-Bot | `/llms-full.txt` (ein Fetch – der gesamte Korpus) |
| Claude/ChatGPT im Browser: „Hier ist unsere API, baue einen Client“ | `/llms-full.txt` in den Prompt einfügen |
| Produktionsagent mit Ausführung von Aufrufen | MCP-Server oder HTTP-API (siehe unten) |

### Beispiel: Pull in deinen eigenen Agenten

```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">
Die Dateien werden bei jedem Seiten-Release automatisch neu generiert. Frische garantiert: Die API-Version am Ende von `/llms.txt` entspricht dem aktuellen Production-Deploy.
</Aside>

## MCP-Server (empfohlen für Claude Desktop)

Das Model Context Protocol (MCP) ist ein offener Standard zur Verbindung von Tools mit AI-Modellen. Der AstroWay-MCP-Server bietet 25 Tools für Berechnungen und Interpretationen.

### Einrichtung für Claude Desktop

Füge in `claude_desktop_config.json` ein:

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

Nach einem Neustart von Claude Desktop stehen dir 25 astrologische Tools zur Verfügung.

### Was der MCP-Server kann

| Tool | Funktion |
|---|---|
| `natal_chart` | Berechnung des Geburtshoroskops |
| `synastry` | Synastrie zweier Personen |
| `daily_horoscope` | Tageshoroskop |
| `interpret_natal` | AI-Interpretation des Geburtshoroskops |
| `human_design` | Komplette HD-Karte |
| `transits` | Aktuelle Transite |

Vollständige Liste: 25 Tools, die grundlegende Berechnungen und AI-Interpretationen abdecken.

### Beispiel-Dialog mit Claude

> **Benutzer:** Erstelle ein Geburtshoroskop für eine Person, die am 14. Juli 1990 um 14:30 Uhr in Kiew geboren wurde. Was bedeutet die Sonne im Krebs im 10. Haus?
>
> **Claude:** *Verwendet `natal_chart` für die Berechnung, dann `interpret_placement` für die Interpretation. Liefert Planetenpositionen mit echten Daten und eine sinnvolle Interpretation.*

## HTTP-API

Für AI-Agenten ohne MCP-Unterstützung nutze die HTTP-API direkt.

### Für die Inhaltsgenerierung

<Tabs syncKey="lang">
  <TabItem label="TypeScript">
    ```ts
    // AI-Agent ruft /interpret/natal für die Interpretation auf
    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 — fertige AI-Interpretation
    // result.disclaimer — Disclaimer zur Anzeige
    ```
  </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'] — fertige AI-Interpretation
    # result['disclaimer'] — Disclaimer zur Anzeige
    ```
  </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']       — fertige AI-Interpretation
    // $result['disclaimer'] — Disclaimer zur Anzeige
    ```
  </TabItem>
</Tabs>

### Für Berechnungen + eigenes LLM

```ts
// 1. Hole Rohdaten über /chart (günstiger – 20 Credits)
const chart = await fetch('https://api.astroway.info/v1/chart', { ... });
const data = await chart.json();

// 2. Übergebe die Daten an dein eigenes LLM
const prompt = `Interpret this natal chart: ${JSON.stringify(data.planets)}`;
const llmResponse = await myLLM.generate(prompt);
```

<Aside type="tip">
Brauchst du nur die Interpretation? Nutze `/interpret/*` (50 Credits, Text ist fertig). Möchtest du den Prompt selbst steuern? Nimm `/chart` (20 Credits) und übergebe die Daten an dein eigenes LLM.
</Aside>

## Anwendungsfälle

### Persönlicher astrologischer Assistent

MCP-Server + Claude/ChatGPT. Der Benutzer fragt – der Agent berechnet und interpretiert. Budget: Free-Tarif für die private Nutzung.

### Content-Bot für soziale Medien

Tägliche Generierung von Horoskopen für 12 Sternzeichen über `/horoscope/daily`. 12 Anfragen pro Tag = 240 Credits. Der Free-Tarif bietet reichlich Puffer.

### AI-Coaching-Plattform

`/interpret/natal` + `/interpret/transits` für jeden Kunden. 100 Kunden/Tag = 10.000 Credits/Tag. Pro-Tarif.

<CardGrid>
  <LinkCard title="Schnellstart →" href="/getting-started/" description="Erster Aufruf in 5 Minuten" />
  <LinkCard title="Horoscope API" href="/products/horoscope-api/" description="AI-Interpretationen und Horoskope" />
  <LinkCard title="Tarife" href="/pricing/" description="Von kostenlos bis Enterprise" />
</CardGrid>
