Claude Media
Claude CodeでLens Studioを操作する — MCP接続の手順と注意点

Claude CodeでLens Studioを操作する — MCP接続の手順と注意点

Lens Studio 5.xはAI用のMCPサーバーを持ち、Claude Codeから接続できます。設定のコピーからclaude mcp add、トークン更新、エージェント定義までの手順をまとめます。

Lens Studio(SnapchatとSpectacles向けのAR開発ツール)の5.xには、AIが使うツール群をMCPサーバーとして公開する機能があります。Claude Codeからつなげば、シーンの構造を読ませたり、スクリプトを書かせたり、アセットを探させたりできます。

接続の要点は3つです。Lens Studio側でMCPサーバーを起動する。表示される設定をClaude Codeに登録する。トークンが変わったら登録し直す。この記事は、この3つを順に説明します。

Lens Studio AIの4つの入口のうち、Claude Codeが使うのはどれか

Lens StudioのAI機能は4系統に分かれています。Claude Codeを使うのは、このうち開発者向けの2つです。

入口向く用途最適化の対象
GenAI Suite向く用途特定種類のモデルやアセットの素早い生成最適化の対象Snapchat
Creator Mode / Easy Lens向く用途定型ブロックの組み合わせ。顔フィルターなど基本的なLens最適化の対象Snapchat
Lens Studio AI Developer Mode(LSAI)向く用途AIと対話しながらの設計・デバッグ・機能の学習最適化の対象Snapchat
CLAD(Closed Loop Agentic Development)向く用途Claude CodeやCursor、Codexなど好きなAIツールでの開発最適化の対象SPECS

Developer ModeのツールはMCPサーバー経由で外部のAIにも公開されます。つまりClaude Codeの接続は、Developer Modeの延長にあります。CLADは、その上に載せるls-extensionsというスキル群を使う進め方です。Snapの概要ページによると、SPECS(Spectacles)向けのLensならこのCLADが最良の結果を出します。Snapchat向けにも使えますが、一部のスキルやプラグインはSPECS向けに最適化されており、同等の結果を得るには調整が要るとされています。

Snapchat向けの簡単なLensなら、Easy Lensで足ります。Claude Codeが出番になるのは、スクリプトを書き、コンパイルエラーを直し、実行ログを見て直すという反復をAIに任せたいときです。

接続前に揃えるもの

Snapの手順書が挙げる前提は3つです。

  • Claude CodeのCLIがインストール済みであること
  • Lens Studioがインストール済みであること
  • Asset LibraryからChat Tool Packageを入れてあること

Chat Tool Packageは、AIが呼び出すツールの土台になります。入れていないと、接続できても使えるツールが足りません。

Claudeのコネクタ経由で使う場合は、Lens Studio 5.15以降を先に起動しておく必要があります。コネクタの説明には、拡張機能は起動中のLens Studioのセッションに接続するため、と書かれています。初回は認証の許可を求めるプロンプトが出て、2回目以降は不要です。この記事が扱うClaude Code経由の接続は、これとは別の経路です。

Claude CodeにLens StudioのMCPサーバーを登録する

手順

接続までの流れ

  1. 1

    MCP サーバーを起動する

    Lens StudioのメニューバーでAI Assistant、AI Model Context Protocol (MCP)、Configure Serverの順に開きます。

  2. 2

    設定をコピーする

    表示されたポップアップでCopy MCP Configを押します。

  3. 3

    Claude Code に登録する

    コピーしたURLとトークンを claude mcp add に渡します。

  4. 4

    接続を確かめる

    claude mcp list か、Claude Code内の /mcp で状態を見ます。

クリップボードに入る設定は、次のようなJSONです。トークンとポートは起動のたびに決まる値なので、手順書の例をそのまま使えません。

{
  "mcpServers": {
    "lens-studio": {
      "headers": { "Authorization": "Bearer [your-auth-token]" },
      "type": "http",
      "url": "http://localhost:[your-port]/mcp"
    }
  }
}

登録は2通りあります。1つ目は、コピーしたJSONをClaude Codeにそのまま渡し、「次のMCPサーバーを追加して」と頼む方法です。2つ目は、自分で claude mcp add を打つ方法です。

claude mcp add --transport http lens-studio http://localhost:[your-port]/mcp \
  --header "Authorization: Bearer [your-auth-token]"

登録できたら、状態を確認します。

claude mcp list
claude mcp get lens-studio

プロジェクトのフォルダーから起動すれば登録が要らない場合がある

Snapの手順書には、もう1つ近道があります。Lens StudioのプロジェクトフォルダーでClaude Codeを起動すると、Lens StudioがそのフォルダーからMCPサーバーを公開し、手動の設定なしで接続できるという説明です。Developer Modeの解説にも、ターミナルやエディターをLens Studioのフォルダーで開けばAIエージェントがMCPサーバーに届く、とあります。

まず近道を試し、つながらなければ手動で登録する順番が楽です。

MCPサーバーはLens Studioのウィンドウごとにある

サーバーはウィンドウ単位です。別のウィンドウで別の場所にプロジェクトを保存すれば、複数のプロジェクトをAIに同時に触らせられます。ウィンドウごとに接続先が別になるので、claude mcp add で付ける名前を lens-studio-a のように分けておくと混線を避けられます(名前の分け方は筆者の提案で、公式の手順にはありません)。

保存先(スコープ)とトークンの扱い

claude mcp add の保存先は既定でlocalスコープ、つまり現在のプロジェクトで自分だけに有効です。--scope project を付けると .mcp.json に書かれてプロジェクトの全員に共有され、--scope user ならすべてのプロジェクトで自分に有効になります。

ここで注意が要ります。Lens Studioの設定には Authorization ヘッダーのトークンが入っています。projectスコープにすると、そのトークンが .mcp.json に入ってリポジトリに載りかねません。トークンは再起動で変わるため、共有する設定には向きません。localスコープのまま使うのが素直です。認証ヘッダーを別の仕組みで差し込む方法は、Claude CodeのMCPでheadersHelperを使うにまとめています。

トークンが変わったとき

Lens StudioのMCPサーバーを再起動すると、トークンが変わります。そのときは登録し直します。

claude mcp remove lens-studio
# Lens Studio で Copy MCP Config をやり直し、新しい値で追加する
claude mcp add --transport http lens-studio http://localhost:[new-port]/mcp \
  --header "Authorization: Bearer [new-auth-token]"

ChatToolを追加するなどしてプラグイン系が再起動したときも、再接続が要ることがあります。Claude Codeで /mcp を送って再接続を頼むか、設定を渡して追加し直すよう頼みます。

claude mcp add が管理設定で止まるときは、claude mcp addが失敗する: プラグイン以外のMCP追加を管理設定が止めるが原因の切り分けになります。

接続したあとに頼めること

公式が例に挙げる依頼は次のとおりです。

  • シーンにどんなオブジェクトがあるか尋ねる
  • 3Dオブジェクトを作る、ScreenTransformを付ける
  • オブジェクトやコンポーネントの変更を頼む
  • スクリプトを書かせて動きを付ける
  • プロジェクトの不具合をデバッグさせる
  • Asset Libraryで顔エフェクトなどを探して入れる

Developer Modeの解説では、シーンの中身を尋ねると、組み込みのGet Scene Graphツールが呼ばれるとされています。応答の裏でツールが動いているので、どのツールが何をしたかを把握すると、依頼の言い方を調整しやすくなります。

長い会話ではAIが文脈を失いやすくなる、とDeveloper Modeの解説にもあります。大きな依頼は、会話を分けて新しく始めるほうが安定します。

エージェント定義で精度を上げる

Snapは、Claude Codeのカスタムエージェントを使うとLens Studioでの成果が上がるとしています。手順は、プロジェクトのルートに .claude/agents/lens-studio-agent.md を作り、指示を書くだけです。

mkdir -p .claude/agents
touch .claude/agents/lens-studio-agent.md

指示の本文には、Snapが「Example Prompt」として公開しているものを使えます。その冒頭は、次のようなfrontmatterです(公式の例を要約した形です)。

---
name: lens-studio-agent
description: 'Senior Lens Studio 5.x AR Developer. ...'
tools: ReadWriteTextFile, CompileWithLogsTool, GetLensStudioSceneGraph, ListLensStudioAssets, QueryLensStudioRag, SetLensStudioProperty, CreateLensStudioComponent, RunAndCollectLogsTool, GetPresetRegistryTool
model: sonnet
---

この例には、運用の考え方がよく出ています。

  • スクリプトはTypeScriptで書き、BaseScriptComponent を継承した @component クラスにする
  • 変更の前に、シーングラフを読んで現状を確かめる
  • 不確かなAPIは書く前に QueryLensStudioRag で調べる
  • コードを書いたら CompileWithLogsTool でコンパイルを通す
  • 実行して RunAndCollectLogsTool でログを集め、エラーと警告を解消する

つまり「書く、コンパイルする、走らせてログを読む」の反復を、エージェントの手順として固定します。結果をAIに読ませて直させる形なので、人が画面で確かめて伝え直す手間が減ります。

複数のエージェントに分けて任せる

Snapの手順書は、Claude Codeの実験的なagent teamsにも触れています。Lens Studio側を担当するエージェント、Webサービス側を担当するエージェント、結合テストを書くエージェントを並べ、共有タスクリストで動かす例です。agent teamsは実験的機能で、既定では無効です。有効化の方法や制約はClaude Code側のドキュメントに従います。

LensとWebサービスを組み合わせるSnap Cloudのような構成でなければ、単一のエージェントで十分です。

つまずきやすい点

切り分け

接続できないときに疑う場所

  • サーバーが止まっている

    Claude Codeの接続中は、Lens Studio側でMCPサーバーが動いている必要があります。Lens Studioを閉じたり再起動したりすると、つながらなくなります。

  • トークンが古い

    再起動後は新しいトークンが発行されます。claude mcp remove のあと、コピーし直した値で追加します。

  • ツールが足りない

    Chat Tool Packageを入れていないと、使えるツールが限られます。Asset Libraryから入れます。

  • SPECS 向けの仕組みを Snapchat に当てている

    CLADのスキルはSPECSに最適化されています。Snapchat向けのLensでは、調整が要る前提で使います。

ls-extensionsを使うCLADについて

Snapの概要ページは、CLADがls-extensionsというカスタムスキル群を使い、SPECS向けLensの作成に最良の結果をもたらすと説明しています。一方、概要ページにはls-extensionsの導入手順の記載がありません。この記事の手順は、あくまでMCPサーバーの接続と、エージェント定義による補強に限ります。CLADを試す場合は、SnapのLens Studio AIのドキュメントでCLADの案内を確認してください。

Claude CodeがLens Studioを操作する経路は、Snapが「コアのスキルとエージェントは、シーン構築、スクリプト、アセット生成のようにどのLens Studioのワークフローにも使える」と書いている部分です。Snapchat向けの開発でも、MCP接続とエージェント定義の組み合わせから始められます。

ゲームエンジンの内蔵MCPをClaude Codeから使う例として、ClaudeでRoblox Studio MCPを使う手順も参考になります。接続の発想は共通で、エンジン側のサーバーを起動し、そのURLをClaude Codeに登録する流れです。

まとめ

Lens StudioとClaude Codeの接続は、メニューのConfigure Serverで設定をコピーし、claude mcp add --transport http で登録するだけです。プロジェクトのフォルダーからClaude Codeを起動すれば、手動登録さえ要らない場合もあります。

つまずきの大半は、トークンの失効とLens Studio側のサーバーの停止です。トークンを含む設定は共有スコープに置かず、変わったら登録し直します。SPECS向けの本格的な開発ならCLADを、Snapchat向けの手軽な試作ならEasy Lensを選ぶと、道具の取り違えを避けられます。

この記事を共有:XはてブLinkedIn