# AI-agenten en MCP

Bouw je een AI-agent die echte astrologische berekeningen moet doen in plaats van hallucinaties? AstroWay sluit aan op **Claude (Anthropic), ChatGPT-4 (OpenAI), Llama 3.3 (Groq), DeepSeek, Google Gemini, Mistral** — via MCP, llms.txt of directe HTTP-aanroepen. Drie integratiemethoden — kies op basis van het type agent:

- **`llms.txt`** — discovery-bestanden voor agents die documentatie lezen (Cursor IDE, Windsurf, Claude in de browser, aangepaste RAG-pijplijnen op LangChain/LlamaIndex).
- **MCP-server** — zero-code voor Claude Desktop, Cursor IDE, Windsurf, VS Code (llm CLI) en elke MCP-compatibele client (inclusief GPT met MCP via OpenAI Realtime API).
- **HTTP API** — directe aanroep vanuit je eigen agent of framework (LangChain, LlamaIndex, AutoGen, CrewAI).

## llms.txt — discovery voor AI-agents

De site exposeert twee machinaal leesbare bestanden in [llms.txt](https://llmstxt.org/)-formaat:

- **[`/llms.txt`](https://api.astroway.info/llms.txt)** — index van alle documentatiepagina's, gegroepeerd per sectie (API Reference, Use Cases, Examples, Products). Klein, past in elke context window.
- **[`/llms-full.txt`](https://api.astroway.info/llms-full.txt)** — de volledige documentatie als één plain-text bestand. Geschikt voor offline-indexering in een vectordatabase of eenmalige injectie in de context.

### Wanneer te gebruiken

| Scenario | Bestand |
|---|---|
| Cursor/Windsurf "lees de docs van astroway en help met integratie" | `/llms.txt` (de agent haalt zelf de benodigde secties op) |
| Eigen RAG-pijplijn / vectordatabase voor een FAQ-bot | `/llms-full.txt` (één fetch — de hele corpus) |
| Claude/ChatGPT in de browser: "hier is onze API, bouw een client" | `/llms-full.txt` plakken in de prompt |
| Productieagent met uitvoering van calls | MCP-server of HTTP API (zie hieronder) |

### Voorbeeld: pull in je eigen agent

```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">
De bestanden worden automatisch gegenereerd bij elke release van de site. Versheid gegarandeerd: de API-versie aan het einde van `/llms.txt` komt overeen met de huidige productie-deploy.
</Aside>

## MCP-server (aanbevolen voor Claude Desktop)

Model Context Protocol (MCP) is een open standaard voor het aansluiten van tools op AI-modellen. De AstroWay MCP-server biedt 25 tools voor berekeningen en interpretaties.

### Instellen voor Claude Desktop

Voeg toe aan `claude_desktop_config.json`:

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

Na herstarten van Claude Desktop zie je 25 astrologische tools.

### Wat de MCP-server kan

| Tool | Wat het doet |
|---|---|
| `natal_chart` | Berekening van de natale kaart |
| `synastry` | Synastrie van twee mensen |
| `daily_horoscope` | Dagelijkse horoscoop |
| `interpret_natal` | AI-interpretatie van de natale kaart |
| `human_design` | Volledige HD-kaart |
| `transits` | Huidige transits |

Volledige lijst — 25 tools die de belangrijkste berekeningen en AI-interpretaties dekken.

### Voorbeeldgesprek met Claude

> **Gebruiker:** Bouw een natale kaart voor iemand geboren op 14 juli 1990 om 14:30 in Kiev. Wat betekent de Zon in Kreeft in het 10e huis?
>
> **Claude:** *Gebruikt `natal_chart` voor de berekening, daarna `interpret_placement` voor de interpretatie. Geeft posities van planeten met echte data en een betekenisvolle interpretatie.*

## HTTP API

Voor AI-agents zonder MCP-ondersteuning — gebruik de HTTP API direct.

### Voor contentgeneratie

<Tabs syncKey="lang">
  <TabItem label="TypeScript">
    ```ts
    // AI-agent roept /interpret/natal aan voor interpretatie
    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 — kant-en-klare AI-interpretatie
    // result.disclaimer — disclaimer voor weergave
    ```
  </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'] — kant-en-klare AI-interpretatie
    # result['disclaimer'] — disclaimer voor weergave
    ```
  </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']       — kant-en-klare AI-interpretatie
    // $result['disclaimer'] — disclaimer voor weergave
    ```
  </TabItem>
</Tabs>

### Voor berekeningen + je eigen LLM

```ts
// 1. Haal ruwe data op via /chart (goedkoper — 20 credits)
const chart = await fetch('https://api.astroway.info/v1/chart', { ... });
const data = await chart.json();

// 2. Stuur de data naar je eigen LLM
const prompt = `Interpret this natal chart: ${JSON.stringify(data.planets)}`;
const llmResponse = await myLLM.generate(prompt);
```

<Aside type="tip">
Als je alleen interpretatie nodig hebt — gebruik dan `/interpret/*` (50 credits, tekst kant-en-klaar). Wil je de prompt zelf controleren? Gebruik dan `/chart` (20 credits) en stuur de data naar je eigen LLM.
</Aside>

## Scenario's

### Persoonlijke astrologische assistent

MCP-server + Claude/ChatGPT. De gebruiker vraagt — de agent berekent en interpreteert. Budget: gratis tarief voor persoonlijk gebruik.

### Contentbot voor sociale media

Dagelijkse generatie van horoscopen voor 12 tekens via `/horoscope/daily`. 12 aanvragen per dag = 240 credits. Gratis tarief met grote marge.

### AI-coachingplatform

`/interpret/natal` + `/interpret/transits` voor elke klant. 100 klanten/dag = 10.000 credits/dag. Pro-tarief.

<CardGrid>
  <LinkCard title="Snel starten →" href="/getting-started/" description="Eerste aanvraag in 5 minuten" />
  <LinkCard title="Horoscope API" href="/products/horoscope-api/" description="AI-interpretaties en horoscopen" />
  <LinkCard title="Tarieven" href="/pricing/" description="Van gratis tot Enterprise" />
</CardGrid>
