# AIエージェントとMCP

AIエージェントで本物のアストロロジカル計算を行わせたい？**AstroWay**は**Claude (Anthropic)、ChatGPT-4 (OpenAI)、Llama 3.3 (Groq)、DeepSeek、Google Gemini、Mistral**と接続できます。MCP、llms.txt、または直接HTTPリクエストで統合可能。3つの方法からエージェントのタイプに合わせて選択しよう：

- **`llms.txt`** — エージェントがドキュメントを読み取るためのdiscoveryファイル（Cursor IDE、Windsurf、ブラウザ版Claude、LangChain/LlamaIndexを使用したカスタムRAGパイプライン向け）。
- **MCPサーバー** — Claude Desktop、Cursor IDE、Windsurf、VS Code (llm CLI)、およびOpenAI Realtime API経由のGPTを含む、あらゆるMCP対応クライアント向けのゼロコードソリューション。
- **HTTP API** — 自身のエージェントやフレームワーク（LangChain、LlamaIndex、AutoGen、CrewAI）から直接呼び出し。

## llms.txt — AIエージェント向けdiscovery

AstroWayは、[llms.txt](https://llmstxt.org/)形式の2つの機械可読ファイルを公開しています：

- **[`/llms.txt`](https://api.astroway.info/llms.txt)** — APIリファレンス、ユースケース、例、製品などのセクションに分類されたすべてのドキュメントのインデックス。小さなサイズで、あらゆるcontext windowに収まります。
- **[`/llms-full.txt`](https://api.astroway.info/llms-full.txt)** — ドキュメント全体を1つのプレーンテキストファイルにまとめたもの。ベクトルDBへのオフラインインデックス作成や、一度のcontext投入に最適です。

### 使用シナリオ

| シナリオ | ファイル |
|---|---|
| Cursor/Windsurfで「astrowayのドキュメントを読んで統合を手伝って」 | `/llms.txt`（エージェントが必要なセクションを自動で取得） |
| FAQボット用の独自RAGパイプライン/ベクトルDB | `/llms-full.txt`（1回のfetchで全文書を取得） |
| ブラウザ版Claude/ChatGPTで「こちらがAPIです。クライアントを構築して」 | `/llms-full.txt`をプロンプトに貼り付け |
| 本番環境の実行エージェント | MCPサーバーまたはHTTP API（後述） |

### 例：独自エージェントへの取り込み

```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` | 2人のシナストリー |
| `daily_horoscope` | 1日のホロスコープ |
| `interpret_natal` | 出生図のAI解釈 |
| `human_design` | Human Design完全図 |
| `transits` | 現在のトランジット |

完全なリストは25のツールで、主要な計算とAI解釈をカバーしています。

### Claudeとの対話例

> **ユーザー：** 1990年7月14日14:30にキエフで生まれた人の出生図を作成して。10ハウスにある蟹座の太陽は何を意味する？
>
> **Claude：** *`natal_chart`で計算し、`interpret_placement`で解釈します。実データに基づく惑星の位置と、わかりやすい解釈を返します。*

## HTTP API

MCPに対応していないAIエージェント向けに、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 — 表示用の免責事項
    ```
  </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'] — 表示用の免責事項
    ```
  </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'] — 表示用の免責事項
    ```
  </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。ユーザーが質問すると、エージェントが計算と解釈を行います。予算：個人利用向けの無料プラン。

### SNS向けコンテンツボット

12星座のデイリーホロスコープを`/horoscope/daily`で毎日生成。1日12回のリクエストで240クレジット。無料プランで十分な余裕あり。

### AIコーチングプラットフォーム

各クライアントに対し`/interpret/natal` + `/interpret/transits`を使用。1日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>
