# MCP — Claude / Cursor接続

AstroWayのMCPサーバーは、**すべての{siteMeta.endpoints}エンドポイント**をAIエージェント向けのツールとして公開しています。2つのモードをサポートしており、いずれもMCP互換クライアントでネイティブに動作します。

| モード | URL / コマンド | 選択するタイミング |
|---|---|---|
| **Hosted HTTP** | `https://mcp.astroway.info/mcp` | ブラウザ版Claude（claude.ai）、Claude Desktop / Cursor / Code newcomers（npm不要）、ゼロインストールで使いたい場合 |
| **Stdio (npm)** | `npx @astroway/mcp` | Cursorのパワーユーザー、ローカル開発、プライバシー重視（APIキーが自分のマシンから出ない）、オフライン環境 |

Hostedエンドポイントとnpmパッケージは**同じツールセット**を使用します（いずれも`/v1/openapi.json`から生成）。認証方法は同じ`aw_test_*` / `aw_live_*` APIキーです。Hostedの場合は`Authorization: Bearer …`ヘッダーで、stdioの場合は`ASTROWAY_API_KEY`環境変数で送信されます。

Source: [github.com/astroway/astroway-mcp](https://github.com/astroway/astroway-mcp) · npm: [npmjs.com/package/@astroway/mcp](https://www.npmjs.com/package/@astroway/mcp) · hosted: [mcp.astroway.info/health](https://mcp.astroway.info/health)

## Hosted (`mcp.astroway.info`) — ゼロインストール

npm不要で手軽に始められる。まずは[api.astroway.info/dashboard/sign-up](https://api.astroway.info/dashboard/sign-up)でAPIキーを取得しよう（月間{siteMeta.freeCredits.toLocaleString('en-US').replace(/,/g, ' ')}クレジットまで無料）。

<Tabs syncKey="mcp-client">
<TabItem label="Cursor (ワンクリック)">

ボタンをクリックすると、Cursorが起動して確認を求められ、自動的に設定が追加されます。

<a href="cursor://anysphere.cursor-deeplink/mcp/install?name=astroway-hosted&config=eyJ1cmwiOiJodHRwczovL21jcC5hc3Ryb3dheS5pbmZvL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciBZT1VSX0FQSV9LRVkifX0" style="display:inline-block;padding:0.5rem 1rem;background:#d4a84c;color:#0a0b1e;border-radius:0.375rem;font-weight:600;text-decoration:none;">Cursorでインストール →</a>

:::caution[必須の2ステップ目 — これをやらないと動作しません]
Cursorはdeeplinkでシークレットを埋め込めないため、`~/.cursor/mcp.json`に`Bearer YOUR_API_KEY`というリテラルが書き込まれ、サーバーから`403 invalid_format`が返されます。

**ボタンをクリックした後:**
1. **Cursor Settings**（⚙️右上） → **Tools & MCP** → リストから`astroway-hosted`を見つける。
2. サーバー横の三点リーダー（`⋯`） → **Edit configuration**をクリック。
3. `Authorization`フィールドの`Bearer YOUR_API_KEY`を`Bearer aw_test_…`（または`aw_live_…`）に置き換える。これは[Dashboard](https://api.astroway.info/dashboard/keys)から取得した実際のキーです。
4. 保存 → MCPリストを開き直し、**enabled**ステータスで緑のドットと`630 tools enabled`のカウンターが表示されていることを確認。

直接ファイルを編集することも可能：`~/.cursor/mcp.json`（`headers.Authorization`）。
:::

<Aside type="note">
Cursorにはサーバー名とツール名の合計文字数制限（`server_name:tool_name` ≤ 60文字）があります。630あるツールのうち約50（`hellenistic_brennan_*`、`psychological_modern_*`、`numerology_kabbalistic_strict_*`など）がCursorでフィルタリングされ、LLMから利用できなくなります。残りの約580は動作します。Claude Desktopにはこの制限がないため、完全なカタログが利用可能です。
</Aside>

</TabItem>
<TabItem label="Claude Desktop (UIフロー)">

JSONを編集することなく設定できます。Claude Desktopのチャットで以下の手順を実行：

1. チャット入力フィールド左の**`+`**をクリック → メニューから**「Add connector」**を選択。
2. ダイアログで**「Add custom connector」**を選択。
3. **Name:** `astroway-hosted`
4. **URL:** `https://mcp.astroway.info/mcp`
5. **「Advanced settings」**を展開 → **「Custom headers」**に以下を追加：
   - **Key:** `Authorization`
   - **Value:** `Bearer aw_live_...`（自分のキー）
6. **Add** → Connectorsリストから`astroway-hosted`を見つけ、スイッチをオンにする。

Claude Desktopを再起動する必要はありません。新しいチャットで`+`をクリックすると、Connectorsに`astroway-hosted`が表示され、630個のツール、12個のプロンプト、14個のリソースが利用可能になります。

</TabItem>
<TabItem label="JSON設定 (手動)">

Cline / Continue / Windsurf、または古いバージョンのClaude Desktop / Cursor向け：

```json
{
  "mcpServers": {
    "astroway-hosted": {
      "url": "https://mcp.astroway.info/mcp",
      "headers": {
        "Authorization": "Bearer aw_live_..."
      }
    }
  }
}
```

設定ファイルのパス：
- **Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Claude Desktop (Windows):** `%APPDATA%\Claude\claude_desktop_config.json`
- **Cursor:** `~/.cursor/mcp.json`（グローバル）または`.cursor/mcp.json`（ワークスペース）
- **Cline (VS Code):** `.cline/mcp.json`（ワークスペース）
- **Continue:** `~/.continue/config.json`（`mcpServers`ブロック）
- **Windsurf:** `~/.codeium/windsurf/mcp_config.json`

設定を編集したら、クライアントを完全に再起動（Cmd+Q → 再度開く）してください。

</TabItem>
</Tabs>

### 動作確認

```bash
curl https://mcp.astroway.info/health
# {"status":"ok","version":"…","uptime_sec":…,"mcp_protocol_version":"2024-11-05"}
```

クライアントで「`astroway-hosted`から5つのAstroWayツール名をリストアップして」とリクエストすると、以下のようなツール名が返ってきます：`astroway_western_chart`、`astroway_horoscope_daily`、`astroway_vedic_panchang_full`、…

### レート制限

Hostedエンドポイントは3層のレート制限で保護されています：Cloudflare DDoSレイヤー + nginx `120 req/min/IP` + in-memoryバケット`60/60s/(IP+key)`。実際のMCPクライアント（Claude Desktop、Cursor）はこれらの制限に達することはありません。バーストリクエストを行わないためです。自動化やCIで**120 req/min以上**必要な場合は、**stdioモード**を使用してください（こちらにはレート制限がなく、`api.astroway.info/v1/*`に直接アクセスします。自分のプランのレート制限が適用されます）。

### `mcp.astroway.info`が一時的に利用できない場合

Hostedエンドポイントが5xxを返すと、MCPクライアントは`tools/list`でエラーを検出します。これは**stdioクライアントには影響しません**—stdioクライアントはローカルのnpmパッケージを実行し、中間のHosted層を経由せずに`api.astroway.info/v1/*`に直接アクセスします。

**重要な統合のフォールバック:** Hostedが`tools/list`に応答しない場合に備えて、設定に**2つ目のMCPサーバー（stdioモード）**を追加してください。クライアントは自動的にHostedが利用できない場合にフォールバックします：

```json
{
  "mcpServers": {
    "astroway": {
      "url": "https://mcp.astroway.info/mcp",
      "headers": { "Authorization": "Bearer aw_live_..." }
    },
    "astroway-fallback": {
      "command": "npx",
      "args": ["-y", "@astroway/mcp"],
      "env": { "ASTROWAY_API_KEY": "aw_live_..." }
    }
  }
}
```

Hostedエンドポイントの実際の稼働状況は[status.astroway.info](https://status.astroway.info)で確認できます。5分以上の障害が発生した場合は、5営業日以内にpostmortemを公開します（[/sla/](/sla/)に基づく）。

## Stdio (npm) — ローカル開発向け

[`@astroway/mcp`](https://www.npmjs.com/package/@astroway/mcp)は、ローカルでサブプロセスとして実行されるnpmパッケージです。単一のnpmパッケージで、Claude Desktop、Cursor、その他のMCP互換クライアントとネイティブに統合されます。

## 動作原理

ツールリストは**ビルド時に**ライブのOpenAPIスペック（[api.astroway.info/v1/openapi.json](https://api.astroway.info/v1/openapi.json)）から生成されます。パッケージの各リリースで新しいエンドポイントが自動的に取り込まれるため、手動でメンテナンスする必要はありません。

各エンドポイントは以下の形式のツールとして公開されます：
- `tools/list`は入力スキーマと説明（リクエストボディの例付き）を返す
- `tools/call`はHTTP POSTを`https://api.astroway.info/v1/<path>`に送信し、その際に`ASTROWAY_API_KEY`を使用する
- 応答は構造化JSONとしてエージェントに返される

各リリースではSLSA provenance（[Sigstoreで検証済み](https://search.sigstore.dev/)）も同梱されており、npmパッケージが公開リポジトリの特定のコミットからビルドされたことが保証されます。

## インストール方法

### Claude Desktop (macOS)

`~/Library/Application Support/Claude/claude_desktop_config.json`に以下を追加：

```json
{
  "mcpServers": {
    "astroway": {
      "command": "npx",
      "args": ["-y", "@astroway/mcp"],
      "env": {
        "ASTROWAY_API_KEY": "aw_live_..."
      }
    }
  }
}
```

Claude Desktopを再起動すると、チャット下のバーに🛠️アイコンとロードされたツール数が表示されます。

### Cursor

`~/.cursor/mcp.json`に以下を追加：

```json
{
  "mcpServers": {
    "astroway": {
      "command": "npx",
      "args": ["-y", "@astroway/mcp"],
      "env": { "ASTROWAY_API_KEY": "aw_live_..." }
    }
  }
}
```

### Cline / Continue / Windsurf / Copilot / VS Code MCP

どのMCP互換クライアントでも`npx @astroway/mcp`コマンドが動作します。設定は同じですが、ファイルパスのみ異なります：

```json
{
  "mcpServers": {
    "astroway": {
      "command": "npx",
      "args": ["-y", "@astroway/mcp"],
      "env": { "ASTROWAY_API_KEY": "aw_live_..." }
    }
  }
}
```

| クライアント | 設定ファイルのパス |
|---|---|
| **Cline**（VS Code） | ワークスペースのルートにある`.cline/mcp.json` |
| **Continue** | `~/.continue/config.json`（`mcpServers`内） |
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` |
| **GitHub Copilot Chat**（VS Code） | プレビューフラグ有効時 → ワークスペースの`mcp.json` |
| **VS Code MCP拡張機能** | `~/.vscode/mcp.json` |

### その他のMCPクライアント

stdioサーバーとして起動：

```bash
ASTROWAY_API_KEY=aw_live_... npx @astroway/mcp
```

<Aside type="tip">
APIキーは[api.astroway.info/dashboard/sign-up](https://api.astroway.info/dashboard/sign-up)から取得できます。クレジットカード不要の無料プランで、**月間{siteMeta.freeCredits.toLocaleString('en-US').replace(/,/g, ' ')}クレジット**利用可能です。
</Aside>

## プライバシー <span style="opacity:0.6">— v1.0.0以降</span>

このMCPサーバーは、**実行を依頼されたAPIコールのみをAstroWayに送信**します。デフォルトでテレメトリーやアナリティクスは一切送信されません—オプトイン/オプトアウトの切り替えもありません。

送信されるリクエストには、MCPトラフィックをバックエンドのログで識別するための2つの識別ヘッダーが含まれます：

- `User-Agent: astroway-mcp/<version> (Node/<node-version>)`
- `X-Astroway-Channel: mcp`

これらのヘッダーにはセッションID、マシンのフィンガープリント、個人情報は含まれません。これは標準的な`User-Agent`のセマンティクスであり、すべてのCLIツールが同様の情報を送信しています。

## サブセット登録 <span style="opacity:0.6">— v1.0.0以降</span>

カタログの一部のみを使用する場合は、サブセットを登録してLLMのコンテキストウィンドウをコンパクトに保ちましょう：

```jsonc
{
  "env": {
    "ASTROWAY_API_KEY": "aw_live_...",
    "ASTROWAY_TOOL_GROUPS": "western,vedic,relational",   // これらのプレフィックスのみ
    "ASTROWAY_READONLY": "1"                               // LLMバック（ai/horoscope/reports）をスキップ（クレジット消費あり）
  }
}
```

よく使うグループ：`western`、`vedic`、`tarot`、`numerology`、`hd`（Human Design）、`relational`（合成図/コンポジット図/ダビソン図）、`prognostics`（トランジット/プログレッション/リターン）、`aspects`、`horary`、`geo`、`chinese`、`bazi`、`mayan`、`iching`、`runes`、`geomancy`。完全な一覧は`npx @astroway/mcp --list-tools`で確認できます。

`ASTROWAY_READONLY=1`は、内部でLLMを呼び出す3つのグループ（`ai`、`horoscope`、`reports`）をスキップします。テキスト生成によるクレジット消費を避けたい場合に便利です。

## 安定性のコミットメント <span style="opacity:0.6">— v1.0.0以降</span>

- **セッション中はカタログが固定されます。**npmパッケージのビルド時点で624個のツール、12個のプロンプト、14個のリソースが埋め込まれ、接続中に変更されることはありません。クライアントが`tools/list`を最初に呼び出した後にキャッシュしても、セッション全体で正しい状態が維持されます。
- **ツール識別子はメジャーバージョン内で安定しています。**`v1.x`内では、`astroway_<group>_<tool>`という名前がリネームや削除されることはありません（非推奨の場合は`CHANGELOG.md`に記載され、マイナーバージョンで並行して利用可能になります）。
- **ツールの入力形状はマイナーバージョン内で安定しています。**引数（regex、range、enum）はパッチで追加されます。必須フィールドの追加はマイナーバージョンアップが必要です。
- **カタログの更新は再インストールで行います。**`npm i -g @astroway/mcp@latest`（または設定ファイル内の`npx -y @astroway/mcp`）で次回起動時に最新のセットが取り込まれます。

## プロンプト例

サーバーを接続したら、AIに以下をリクエストしてみましょう：

### 出生図

> 1990年3月15日14:30、キエフ生まれの私の出生図を計算して。太陽、月、アセンダントを説明し、 tight なアスペクトを探して。

Claudeは`chart`ツールを呼び出し、パラメータ付きの構造化JSONを受け取り、図を言葉で説明します。

### トランジット

> 2027年に私の Natal 図に影響を与える、遅い惑星の重要なトランジットは？

Claudeは2つのツールコールを行います：最初に`transits`（現在のスナップショット）、次に`transit-calendar`（期間）。トレンドを解釈します。

### Vedic Mahadasha

> 1985年7月22日6:45ムンバイ生まれの人の Vimshottari Mahadasha を実行して。現在どの期間にいる？

`vedic/dashas/vimshottari/maha`ツールを介して—現在の期間の正確なUTCタイムスタンプが返されます。

### シナストリー

> 2つの図を比較して：A — 1988年6月10日9:15ロンドン、B — 1991年11月22日22:40ベルリン。最も強いクロスアスペクトは？

`synastry`ツールに2つの`chart`ブロックを渡し、互換性スコアの解釈を行います。

### タロット

> ライダー・ウェイト・スミスの3枚引き：過去・現在・未来。質問：「新しい仕事を受けるべきか？」シード=42。

`tarot/rider-waite/spread`に固定シードを指定して再現性を確保。

## すべてのツールの一覧

接続後、Claudeに以下をリクエスト：

> すべてのastrowayツールを列挙して。

またはコマンドラインから：

```bash
ASTROWAY_API_KEY=aw_test_smoke npx @astroway/mcp 2>&1 | head -1
# （stdioサーバーを起動。プロトコル上のtool-list呼び出しはMCPクライアントが行う）
```

## 設定

| 変数 | デフォルト値 | 説明 | 導入バージョン |
|---|---|---|---|
| `ASTROWAY_API_KEY` | *(必須)* | Live: `aw_live_...`。Sandbox: `aw_test_...`。 | 0.1.0 |
| `ASTROWAY_BASE_URL` | `https://api.astroway.info/v1` | セルフホスト/ステージング環境向けの上書き。 | 0.1.0 |
| `ASTROWAY_TOOL_GROUPS` | *(すべてのグループ)* | カタログを制限するカンマ区切りのプレフィックス（例：`western,vedic,relational`）。 | 1.0.0 |
| `ASTROWAY_READONLY` | `0` | `1`でLLMバックのグループ（`ai`、`horoscope`、`reports`）をスキップ。 | 1.0.0 |
| `LOG_LEVEL` | `error` | `silent`/`error`/`warn`/`info`/`debug` — stderrへのログレベル。 | 0.8.0 |
| `LOG_FILE` | *(書き込みなし)* | ログの出力先ファイルパス。 | 0.8.0 |
| `MCP_FLAT_TOOLS` | `0` | `1`でpre-v0.9のフラットな名前（例：`chart` → `astroway_western_chart`）を返す。レガシー。 | 0.9.0 |

## なぜMCPで、直接統合ではないのか

一般的なLLM（groundingなし）は「*7月に土星が木星と三分する*」と曖昧な表現で答えるでしょう—正確な日付は±15日のずれがあります。**MCPエージェント**は`tool_use POST /v1/transits`を実行し、Swiss Ephemerisを使用して**秒単位のUTCタイムスタンプ**を返します。

メリットはLLMにあるのではなく、**確実に正確な数学が保証される**点にあります—決してでっち上げではありません。

## パッケージの配布

- **mcp.so listing:** [mcp.so/server/astroway-mcp/astroway](https://mcp.so/server/astroway-mcp/astroway)
- **mcpservers.org:** 2026年5月現在承認待ち
- **awesome-mcp-servers (punkpeye):** [PR #5972](https://github.com/punkpeye/awesome-mcp-servers/pull/5972)

## 関連リンク

- 📦 npm: [npmjs.com/package/@astroway/mcp](https://www.npmjs.com/package/@astroway/mcp)
- 📘 APIドキュメント: [/docs/api/](/docs/api/)
- 🔑 サインアップ: [/dashboard/sign-up](/dashboard/sign-up)
- 💰 料金: [/pricing/](/pricing/)
- 🌐 パブリックリポジトリ（MITライセンス）: [github.com/astroway/astroway-mcp](https://github.com/astroway/astroway-mcp)
