最も安全なのは OAuth 認証
本セクション最後の動画では、MCPサーバーの安全な取り扱い方を解説します。MCPサーバーをつなぐ方法はいろいろありますが、一番安全なのは OAuth認証でMCPサーバーを使う方法です。
/mcp を実行すると、接続済みの一覧が表示されます。たとえば Claude(Webブラウザ版)のコネクタでつないでいるものが表示され、StripeのMCPを使いたい場合は Authentication を実行します。Enter を押すとブラウザが自動で立ち上がり、自分で認証ボタンを押してサインインします。たとえばライブアカウントの場合はテストモードを選択し、権限を設定して Authorize すると、MCPサーバーに接続されます。
なぜ安全かというと、APIキーを Claude Codeに渡していないからです。Claude CodeにAPIキーを読み込ませると Anthropicのサーバーにログとして保存されてしまうため、MCPサーバーを紐付けるときもAPIキーはそのまま貼り付けないほうがよいのです。最近はサービス提供者側がOAuthに対応しているパターンが増えているので、それを採用するのがおすすめです。
例:Supabase
公式ドキュメントで調べると、コマンドをコピー&ペーストする方法や、claude mcp add コマンドを使う方法が案内されます。簡単なのは claude mcp add コマンドで、そのままコピー&ペーストすればMCP接続ができます。.mcp.json を使う方法でも問題ありません。これらはOAuth認証なので、APIキーを直接貼り付けておらず安全です。
OAuth が提供されていない場合
中にはOAuth認証が提供されていないサービスもあります。たとえば Turso のMCPサーバーはまだOAuthに対応しておらず、MCP設定に Turso APIトークンやオーガニゼーションをそのまま貼り付ける形になります。このやり方だと、MCPを読み込むときに Claude Codeが中身を読み込んでしまい、ログに残るため漏洩の可能性があります。
環境変数を経由させる
これを避けるには、.env ファイルを使います。チーム開発での共有方法も兼ねて手順を説明します。
.mcp.jsonにAPIトークンを直接書き込まず、.envファイルにトークンを用意します(例として値はダミーのXとします)。.mcp.jsonからは、環境変数で宣言した変数名にアクセスする形にします。- アクセスはドル記号を使ったテンプレートリテラル形式(例:
${TURSO_API_TOKEN})で記述します。ダブルクオーテーションで囲む必要がある点に注意してください。
こうすると .mcp.json に直接APIキーを書かず、.env から読み込む形になります。.env はパーミッション設定で読み込ませないようにしているため、APIキーを読み込ませずにMCP接続ができます。
チーム開発での共有
この方法なら .mcp.json ファイルを GitHubで共有しても問題ありません。直接ハードコードしておらず、環境変数にアクセスする形になっているためです。.env さえ .gitignore で無視して隠してしまえば、.mcp.json を共有できます。新しくチームに入った人には、.env 自体をチーム内で内密に共有し、ローカルに配置してもらう形になります。
さらに強固に:1Passwordの活用
実際のAPIキーをローカルにも置きたくない場合は、1Password のようなサービスがおすすめです。APIキーやシークレットキーを一箇所で管理し、パスワードをかけて保護できます。実際の文字列をそのまま貼り付けるのではなく、暗号化された記述で参照して運用できます。
プロジェクトをまたいで使い回したいAPIキーがある場合や、毎回コピー&ペーストする手間を省きたい場合に便利です。無料から始められますが、本格的に管理するには課金が必要になります。しっかりした製品を運営している現場では、こうしたサービスを使っているところが多いと思います。
信頼できないMCPサーバーに注意
公式提供のMCPサーバーは使って構いませんが、誰が作ったか分からないMCPサーバーをクローンして設定する場合は注意してください。実際にマルウェアが入っていて感染した事例もあります。
マニアックなMCPサーバーが欲しい場合は、出所不明のものを探してくるのではなく、公式でAPIが提供されていればMCPサーバーは比較的簡単に自作できるので、自作して使うことをおすすめします。クローンしてこないとウイルスの有無が分からず、クローンした時点で感染する恐れもあるため、信頼源が不明なMCPサーバーの利用は避けましょう。
まとめ
本セクションのClaude Codeのセキュリティで最も大事なのは、大事なAPIキーを Claude Codeに渡さないことです。Anthropicのサーバーがハッキングされることは考えづらいですが、安全面が気になる方は本セクションのとおりに設定してみてください。次のセクションからは、アプリケーション開発においてどこで脆弱性が発生するのかを、実際に作りながら、あるいはデモを通して解説していきます。