ローカルで動かしていたAmazon Product Advertising APIのMCPを、チームや友人にも共有できるようにしたくて、FastMCP Cloudへ載せました。
この記事は、デプロイ後にClaude Desktop / Claude Codeへ繋いだときの設定と、そこで分かったことを残したものです。
デプロイしたもの
今回デプロイしたのは、Amazon Product Advertising APIのラッパーをMCPツールにしたサーバーです。
キーなどの認証情報はヘッダーで受け渡す構成にしています。
現在デプロイしているサービスを止める予定はありませんが、悪意あるアクセスや無料枠を超えそうになれば非公開にします。ヘッダーで何も指定しなければデフォルト値で動作します。
Claude Desktopから呼び出すと、商品検索・詳細取得までは動きました。
Amazon Product API単体ではKindle Unlimitedかどうかを判定する情報が取れないため、Claudeが商品詳細から推測しようとしますが、精度はまだ微妙です。
ただ、MCP経由でAmazonの商品データを取る仕組みとしては使えました。
提供しているツールは次の5つです。
| ツール名 | 概要 |
|---|---|
search_products | キーワードでAmazon商品を検索 |
get_product_details | ASINを指定して商品詳細を取得 |
get_product_variations | 色・サイズなどのバリエーションを取得 |
get_browse_nodes | カテゴリ階層を取得 |
check_api_status | APIの設定と接続状態を確認 |
FastMCP Cloudへデプロイした流れ
前提は、Amazon Product Advertising APIの認証情報と、FastMCP Cloudのアカウントです。
認証情報がなくても、ヘッダー未指定ならデフォルト値の範囲で試せます。
ローカルでfastmcpのMCPサーバーを作り、MCPインスペクターで動作確認してからGitHubへプッシュしました。
そのあとFastMCP Cloudのセットアップから、リポジトリとエントリーポイントを指定してデプロイしています。


ビルド完了後は、FastMCP Cloudのインスペクターとチャットからツールを試せます。


接続の実体:ヘッダーで認証を渡す
エンドポイントは次です。
https://amazon-product-ad-api.fastmcp.app/mcp渡しているヘッダーは次の4つです。
aws_access_key_idaws_secret_access_keyaws_associate_tagamazon_marketplace(日本ならJP、アメリカならUS)
Pythonでの疎通
import asyncio
from fastmcp import Client
from fastmcp.client.transports import StreamableHttpTransport
from fastmcp.client.auth import OAuth
MCP_URL = "https://amazon-product-ad-api.fastmcp.app/mcp"
HEADERS = {
"aws_access_key_id": "YOUR_ACCESS_KEY_ID",
"aws_secret_access_key": "YOUR_SECRET_ACCESS_KEY",
"aws_associate_tag": "YOUR_ASSOCIATE_TAG",
"amazon_marketplace": "JP",
}
oauth_auth = OAuth(
mcp_url=MCP_URL,
additional_client_metadata={
"token_endpoint_auth_method": "client_secret_post"
},
)
client = Client(
transport=StreamableHttpTransport(
MCP_URL, headers=HEADERS, auth=oauth_auth
)
)
async def test_connection():
try:
async with client:
await client.ping()
print("接続成功")
return True
except Exception as e:
print(f"接続失敗: {e}")
return False
if __name__ == "__main__":
asyncio.run(test_connection())YOUR_* を自分の認証情報に置き換えて実行します。
Claude Desktop(Mac)
Claude Desktopを開くたびに認証を求められます。ブラウザをアクティブにしないとフリーズしたように見えることがあるので、その場合はアプリを再起動してみてください。
設定ファイルは次です。
~/Library/Application Support/Claude/claude_desktop_config.json開発者モードをONにしたうえで、mcp-remote 経由でヘッダーを渡しています。
{
"mcpServers": {
"amazon-product-ad-api": {
"command": "npx",
"type": "streamable-http",
"args": [
"mcp-remote@latest",
"https://amazon-product-ad-api.fastmcp.app/mcp",
"--header",
"aws_access_key_id: YOUR_ACCESS_KEY_ID",
"--header",
"aws_secret_access_key: YOUR_SECRET_ACCESS_KEY",
"--header",
"aws_associate_tag: YOUR_ASSOCIATE_TAG",
"--header",
"amazon_marketplace: JP"
]
}
}
}ヘッダーやメタを付けない簡易接続も、リモートサーバー接続のドキュメントの手順で試せます。
その場合はデフォルト値での動作になります。
Claude Code
claude mcp add --transport http amazon-product-api-test \
https://amazon-product-ad-api.fastmcp.app/mcp \
--header "aws_access_key_id: YOUR_ACCESS_KEY_ID" \
--header "aws_secret_access_key: YOUR_SECRET_ACCESS_KEY" \
--header "aws_associate_tag: YOUR_ASSOCIATE_TAG" \
--header "amazon_marketplace: JP"追加後は次で確認します。
claude
/mcp amazon-product-api-test認証画面がブラウザで開くので、FastMCP Cloudアカウントでログインします。

設定後は、Claude側で次のように呼べます。
amazon-product-api-testを使って、任天堂のゲームを調べてください。うまくいかないとき
接続が怪しいときは、MCPインスペクターで切り分けるのが早いです。
- ヘッダーのキー名・値の誤り
- Claude Desktopで認証ポップアップを処理せずに戻ってしまう
- FastMCP Cloudのログでエントリーポイント指定を見直す
所感
FastMCP Cloudへのデプロイ自体はスムーズで、大きくハマる点はありませんでした。
ローカルだけで完結させず、共有したいならクラウドに置くのは便利です。
一つのMCPに全部詰め込むより、目的ごとに分けてリミックスする方が扱いやすいと感じました。