MCPでClaudeとChatGPTを金のリアルタイム価格に接続する
MetalAPIのMCPサーバーで、Claude、ChatGPT、Cursor、VS Codeを金・金属のリアルタイム価格に接続。OAuthまたはAPIキーでの設定、ツール、安全性、クォータを解説します。
アシスタントに価格ツールが必要な理由
ツールを持たないチャットアシスタントに今日の金価格を尋ねると、返ってくる答えは3つのうちのどれかです。回答の拒否、学習データに含まれていた数値、あるいは根拠に見合わないほど自信たっぷりの推測です。どれも役に立ちません。言語モデルは、話しかける数か月前に終わるテキストのスナップショットから学習していますが、金、銀、原油の価格は、市場が開いている間は数秒ごとに動きます。
よくある回避策は、自分で価格を調べてチャットに貼り付けることです。1つの質問ならそれで済みますが、すぐに破綻します。コピーした単位(トロイオンスかグラムか)、通貨、数値を取得した時刻を覚えておかなければなりません。先月の値幅やトルコリラへの換算について追加で質問すれば、またブラウザに戻ることになります。
Model Context Protocol(MCP)は、この手間をなくします。アシスタントは自分で呼び出せる少数のツールを手に入れ、すべての回答は、タイムスタンプ、基準通貨、単位を含む最新のAPIレスポンスから組み立てられます。この記事では、Claude、ChatGPT、Claude Code、Cursor、VS CodeをMetalAPIのMCPサーバーに接続する方法、接続後にアシスタントができること、適用される安全策を紹介します。
| 観点 | 数値を手で貼り付ける | MCPツールを呼び出す |
|---|---|---|
| 鮮度 | コピーした時点の、コピーした値 | 質問した時点で取得した、プランで利用できる最新価格 |
| 単位と通貨 | トロイオンス、グラム、通貨を取り違えやすい | baseとunitを明示的に指定し、レスポンスにも反映される |
| タイムスタンプ | 途中で失われがち | すべてのレスポンスにtimestampとdateが含まれる |
| 追加の質問 | また手作業で調べる | アシスタントが別のツールを呼び出す |
| 過去データと換算 | 別のWebサイトやスプレッドシート | 時系列、OHLC、変動、換算のツール |
MCPとは
MCPは、Anthropicが2024年に発表し、現在では多くのAIアプリケーションが対応しているオープンなプロトコルで、アシスタントが外部のツールやデータとやり取りする方法を標準化するものです。MCPサーバーはツールの一覧を公開します。各ツールには、名前、平易な言葉による説明、引数のJSONスキーマ、そして「読み取り専用」などの任意のアノテーションがあります。MCPクライアント(Claude、ChatGPT、Cursor、VS Codeなど)はその一覧を読み込み、どのツールが関係するかをモデルに判断させ、呼び出しをサーバーに送り、結果をモデルに返します。
モデル自体が認証情報を目にすることはなく、APIと直接通信することもありません。モデルは「symbols: XAUとbase: EURを指定してget_latest_pricesを呼び出す」といった構造化されたリクエストを生成し、クライアントがそれを実行し、モデルは返ってきたJSONをもとに回答を書きます。
MetalAPIのサーバーはhttps://metalapi.com/mcpにあります。MCP仕様で定義されたリモートトランスポートであるStreamable HTTPを使い、ステートレスに動作します。すべての呼び出しはJSONレスポンスを返す独立したHTTPSリクエストなので、維持すべき長時間のセッションはありません。このサーバーは、公式MCPレジストリにcom.metalapi/metalapiとして登録されています。ブラウザでこのURLを開くと、AI & MCPの概要ページにリダイレクトされます。
OAuthでサインインするか、APIキーを使うか
サーバーへの呼び出しはすべて認証されます。方法は2つあり、どちらが適切かはクライアントによって異なります:
- OAuth 2.1(サインイン): ClaudeやChatGPTなど、コネクタ画面を持つアプリ向けです。クライアントは認可サーバーを自動で見つけます。認証なしの呼び出しには、サーバーの保護リソースメタデータを指す
WWW-Authenticateヘッダー付きの401レスポンスが返されます。クライアントは動的クライアント登録で自身を登録し、MetalAPIのサインインページを開きます。このフローはPKCEを使うため、アプリにクライアントシークレットを組み込む必要はありません。サインイン(または無料アカウントを作成)して、接続を承認します。 - APIキー: Claude Code、Cursor、VS Codeなど、HTTPヘッダーを設定できる開発者ツール向けです。REST APIで使っているのと同じキーを
Authorization: Bearer mk_live_…として送信します。
どちらの方法でも、同じアカウント、プラン、クォータにつながります。ツール一覧には1つだけ違いがあり、create_api_keyはOAuth接続でのみ提供されます。設定ファイルにコピーしたキーで、さらに別のキーを発行できてはならないためです。そのため、キーによる接続で見えるツールは13ではなく12です。
OAuth接続はダッシュボードのSettings → Connected appsに一覧表示され、いつでも個別に接続を解除できます。APIキーはAPI keysでロールまたは無効化できます。MCPの設定ファイルに記載したキーは、ソースコード内のキーとまったく同じように扱ってください。
ClaudeとChatGPTを接続する
claude.aiとClaude DesktopでClaudeを使う場合:
- Settings → Connectorsを開き、Add custom connectorを選びます。
- 名前をMetalAPIとし、
https://metalapi.com/mcpを入力します。 - Connectをクリックし、MetalAPIにサインイン(または無料アカウントを作成)して、Allowをクリックします。
ChatGPTの場合は、Settings → Apps & Connectorsを開き、URLにhttps://metalapi.com/mcp、認証方式にOAuthを指定して、開発者モードでコネクタを作成します。ChatGPTがMetalAPIのサインインページを開くので、接続を承認すると、チャットでツールを使えるようになります。カスタムコネクタを追加できるかどうかは、ChatGPTのプランや、ワークスペースの場合は管理者の設定によって異なります。
どちらのアプリでも、メニューの名称はときどき変わります。MCPセットアップガイドでは、各クライアントの最新の手順を掲載しています。
最初の会話では、「MetalAPIを使って、…はいくら?」のようにソースを明示すると、アシスタントが記憶ではなくツールを使うようになります。その後は、価格に関する質問であれば、ほとんどのアシスタントが自分でツールを選びます。
Claude Code、Cursor、VS Codeを接続する
コーディングアシスタントでは、通常APIキーを使います。ダッシュボードでキーを作成し(始めるだけならFreeプランで十分です)、ツールごとに別のキーを使えば、ほかに影響を与えずに1つだけ無効化できます。
Claude Codeでは、ターミナルからサーバーを追加します:
claude mcp add --transport http metalapi https://metalapi.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"キーを保存したくない場合は、--headerを付けずにサーバーを追加し、Claude Code内で/mcpを実行すれば、代わりにOAuthでサインインできます。
Cursorでは、~/.cursor/mcp.json(プロジェクト単位なら.cursor/mcp.json)にサーバーを追加します:
{
"mcpServers": {
"metalapi": {
"url": "https://metalapi.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}GitHub Copilotを使ったVS Codeでは、次の内容を.vscode/mcp.jsonとして保存します。inputsブロックにより、VS Codeは初回にキーの入力を求めて安全に保存するため、ファイル自体にキーが書かれることはありません:
{
"inputs": [
{ "type": "promptString", "id": "metalapi-key", "description": "MetalAPI API key", "password": true }
],
"servers": {
"metalapi": {
"type": "http",
"url": "https://metalapi.com/mcp",
"headers": { "Authorization": "Bearer ${input:metalapi-key}" }
}
}
}Windsurfなど、Streamable HTTP経由のリモートMCPサーバーに対応したほかのクライアントも、同じパターンで設定できます。サーバーのURLに加えて、Bearerヘッダーを指定するか、OAuthでサインインします。
会話の例
接続後は普段の言葉で質問するだけで、アシスタントがツールとその引数を選びます。典型的な質問と、それによって行われる呼び出しの例を示します:
| 質問 | ツール | 引数 |
|---|---|---|
| 今、金1グラムはユーロでいくら? | get_latest_prices | symbols: XAU、base: EUR、unit: gram |
| 過去2週間で銀の価格はどう動いた? | get_timeseriesまたはget_fluctuation | symbols: XAG、start_date、end_date |
| プラチナ2.5トロイオンスをトルコリラに換算して。 | convert | from: XPT、to: TRY、amount: 2.5 |
| 今日の金の始値、高値、安値、終値は? | get_ohlc | symbols: XAU |
| 18Kの金は1グラムあたり何ポンド? | get_carat_prices | base: GBP(有料プラン) |
| 今のプランと、残りのクォータは? | get_account | なし |
価格ツールはコンパクトなJSONを返します。REST APIのratesブロックは、古い連携との互換性のため、すべてのシンボルを価格とその逆数の2回ずつ列挙します。MCPサーバーは価格だけを残し、シンボルをキーとしてpricesの下にまとめます。これによりトークン数はおよそ半分になり、データを読み違える最もよくある原因もなくなります。symbols: XAU,XAG、base: EUR、unit: gramを指定してget_latest_pricesを呼び出すと、次のような結果が返されます:
{
"success": true,
"timestamp": 1792834892,
"date": "2026-10-24",
"base": "EUR",
"unit": "gram",
"rate_limit": {
"limit": 10000,
"remaining": 9874,
"reset": 1793491200,
"used": 126,
"plan": "Standard",
"reset_date": "2026-11-01T00:00:00.000Z"
},
"prices": {
"XAU": 110.4064149,
"XAG": 1.489616277
}
}この記事の数値は例です。実際の回答には、ご利用のプランで取得できる最新価格が使われます。
各レスポンスにはtimestamp、base、unitが含まれるため、良い回答は単に「€110」と答えるのではなく、ある時点で金が1グラムあたり約€110だったと伝えます。回答にその文脈が欠けていたら、尋ねてみてください。
アシスタントは呼び出しを連鎖させることもできます。今日の金銀比価を1か月前と比べるよう頼むと、アシスタントは両方の金属を両方の日付で取得し、割り算まで自分で行います。グラフを頼めば、コードを実行できるクライアントならget_timeseriesの結果からグラフを作成できます。
13のツール
サーバーは13のツールを公開しています。そのうち7つはマーケットデータを返し、REST呼び出しとまったく同じく、1回につきプランの月間利用枠から1リクエストを消費します。残りは無料です。
| ツール | 機能 | クォータ |
|---|---|---|
get_latest_prices | 金属、エネルギー、通貨、暗号資産の最新価格。任意の基準通貨と質量単位に対応 | 1リクエスト |
get_historical_prices | 過去の特定の日の終値 | 1リクエスト |
convert | 2つのシンボル間で金額を換算。最新価格または過去の日付で | 1リクエスト |
get_timeseries | 2つの日付間の日次終値(1回あたりFreeで最大30日、有料プランで365日) | 1リクエスト |
get_fluctuation | 2つの日付間の開始価格と終了価格、変動幅と変動率 | 1リクエスト |
get_ohlc | 指定日の始値、高値、安値、終値 | 1リクエスト |
get_carat_prices | 22Kや18Kなど、カラット別の金価格(有料プラン) | 1リクエスト |
list_symbols | すべてのシンボルコードと、その名称、カテゴリー、単位 | 無料 |
get_account | ご利用中のプラン、月間の利用枠、使用量、リセット日 | 無料 |
list_plans | 全プランの上限と月額・年額料金 | 無料 |
list_api_keys | 有効なAPIキー(マスク表示) | 無料 |
create_api_key | ご自身のアプリ用のキーを作成。OAuth接続のみ。実行前に確認 | 無料 |
get_upgrade_link | Stripeのチェックアウトリンク、または契約者向けの請求ポータルのリンクを用意。実行前に確認 | 無料 |
クライアントが接続すると、サーバーは短い説明も送ります。シンボルコードの意味、単位を指定しない限り金属価格はトロイオンスあたりであること、データツールはクォータを消費することなどです。クライアントはこれをモデルに渡すため、行儀のよいアシスタントは必要なシンボルだけを要求します。シンボルが少なければ、回答は短くなり、トークンも少なくて済みます。
安全性:デフォルトで読み取り専用、支払いはなし
アシスタントをアカウントに接続すると、アシスタントは何を変更できるのか、という当然の疑問が湧きます。設計上、その答えはシンプルです。
- 13のツールのうち11は読み取り専用です。 MCPの
readOnlyHintアノテーションが付いており、価格、プラン、使用量、マスクされたキー情報を読み取ることしかできません。 - 書き込みを伴う2つのツールは事前に確認します。
create_api_keyとget_upgrade_linkは何かを変更するアクションとしてマークされているため、MCPクライアントは実行前に確認を求めます。 - サーバーが課金することは一切ありません。
get_upgrade_linkは、指定されたプランのStripeチェックアウトセッション、またはすでに契約中の場合は請求ポータルのリンクを作成し、そのURLを返します。リンクを開き、価格を確認して支払うのはご自身です。アシスタントが支払いを完了することはできません。 - 新しいキーは一度だけ表示されます。
create_api_keyで作成したキーは、ダッシュボードと同様に一度だけ完全な形で返され、保存されるのはそのハッシュのみです。 - 範囲は限定的です。 接続先はMetalAPIだけで、価格、プラン、使用量、APIキーに限られます。サーバーが会話、ファイル、ほかのコネクタを見ることはありません。
- APIのトラフィックと同様に記録されます。 マーケットデータの呼び出しは、ダッシュボードのリクエストログに、
/mcp/に続くツール名としてRESTリクエストと並んで表示されます。
どのMCPサーバーでも守りたい一般的な習慣が1つあります。クライアントが表示する確認プロンプトを反射的に承認せずにきちんと読み、使わなくなったコネクタは削除することです。
クォータ、鮮度、プラン
MCPの呼び出しは、REST APIと同じ利用枠を使います。データツールの呼び出しは、返されるシンボルの数にかかわらず1リクエストで、list_symbolsとアカウント系のツールは無料です。1分あたりのレート制限も適用され、Freeでは1分あたり10リクエストです。
価格の鮮度はプランに準じます。Freeプランではアシスタントが参照するのは日次の価格で、有料プランでは30分ごとから5秒ごとまでの間隔で更新されます:
| プラン | 料金 / 月 | リクエスト数 / 月 | 更新間隔 |
|---|---|---|---|
| Free | $0 | 100 | 毎日 |
| Lite | $4.99 | 1,000 | 30分 |
| Standard | $11.99 | 10,000 | 10分 |
| Advanced | $24.99 | 50,000 | 1分 |
| Pro | $49.99 | 100,000 | 1分 |
| Ultra | $99.99 | 500,000 | 15秒 |
| Business | $149.99 | 500,000 | 15秒 |
| Enterprise | $299.99 | 1,500,000 | 5秒 |
月100リクエストあれば、チャットでときどき質問する程度には十分です。多くの系列を取得する分析にアシスタントを使う場合や、スケジュール実行されるエージェントに組み込む場合は、ときどきget_accountを実行させてください。使用済みのリクエスト数、残りのリクエスト数、利用枠のリセット日がわかります。月間の利用枠を使い切ると、毎月1日(UTC)までデータツールはアップグレード用リンク付きのクォータ超過エラーを返しますが、アカウント系のツールは引き続き使えます。詳しい比較は料金ページをご覧ください。
始めるのに数分しかかかりません。無料アカウントを登録し、お使いのクライアントに合わせてMCPセットアップガイドの手順に従い、最初の質問をしてみてください。AI & MCPページにはセットアップの概要が、APIドキュメントには各ツールの背後にあるRESTエンドポイントの説明があります。
関連記事
スポット、Bid、Ask、スプレッド:貴金属価格の提示のしくみ
金・銀・プラチナ・パラジウムにおけるスポット、Bid、Ask、仲値、スプレッドの意味、ディーラーが見積もりを作るしくみ、APIでBid/Askを取得して表示する方法を解説します。
銅・アルミニウム・亜鉛・原油の価格をAPIで取得する:開発者ガイド
銅、アルミニウム、亜鉛、鋼、原油、天然ガスの価格をAPIで取得する方法を解説します。市場ごとの単位、APIの正規化、期近先物、単位と通貨の換算をコード例とともに紹介します。
貴金属価格APIの選び方:確認すべき12の質問
特定のベンダーに偏らない、貴金属価格APIの選定チェックリスト。データソース、鮮度、過去データ、単位、Bid/Ask、制限、料金、セキュリティ、利用規約、MCP対応を確認します。