TalentX Tech Blog

Tech Blog

talentx-ui-mcp × Figma MCP で Claude に UI を作らせてみた

はじめに

最近、AI に UI 実装を任せる開発スタイルが広がっています。Figma の公式 MCP サーバーを使えば、デザインデータを AI が直接読み取って React コードを生成できる。便利な時代になりました。

しかし、実際に業務で使ってみると一つ大きな壁にぶつかります。「AI が社内 UI ライブラリを使ってくれない」 という問題です。

本記事では、この課題を解決するために整備した talentx-ui-mcp(社内 UI ライブラリ専用の MCP サーバー)と関連設定について、実際に効果を検証した結果を共有します。


背景:Figma MCP だけでは足りなかった

何が問題だったか

Figma MCP を導入したことで、デザインの構造・色・サイズといった情報を AI が正確に読み取れるようになりました。見た目の再現度は高い。

しかし、生成されるコードには以下の問題がありました。

  • Figma MCP が返すのは React + Tailwind の参照コード
  • AI はそれを styled-components に変換するが、社内 UI ライブラリ(talentx-ui)のコンポーネントは使わない
  • チェックボックスを SVG で自作、テーブルを <div> で手組み、ラベルを styled-components で再実装...

デザインは再現できるが、プロダクションコードとしては使えない。 レビューで「talentx-ui の Table を使ってください」「CheckBox があるのに自作しないで」と差し戻しが発生し、結果として工数が増えてしまう状態でした。

整備したもの

この課題を解決するために、以下を整備しました。

1. talentx-ui-mcp

社内 UI ライブラリのコンポーネントカタログを AI が検索・参照できる MCP サーバーです。TypeScript AST で Storybook ファイルを静的解析し、以下の 3 つのツールを提供します。

ツール 機能
search_stories キーワードで Storybook を検索し、該当するコンポーネントと Story スニペット(使用例)を返す
get_component_detail 指定コンポーネントの全 Props(型・required・デフォルト値)と Story スニペットを返す
get_design_tokens theme.ts からデザイントークン(色・スペーシング等)のソースコードを返す

2. CLAUDE.md

プロジェクトの規約を AI に伝える設定ファイル。

  • 「talentx-ui を優先使用」
  • 「styled-components は補助的に」
  • 「Transient props を使う」

など、コードベース固有のルールを記載しています。

3. figma-to-ui スキル

Figma URL → talentx-ui コンポーネント検索 → 実装方針提案 → コード生成 というワークフローを定義したスキル。AI が迷わず最適な手順で動けるようになります。


検証実験

これらの整備にどれだけの効果があるのか、同一の Figma デザインに対するコード生成実験で検証しました。

対象デザイン

応募者一覧テーブル(8 列 × 7 行、チェックボックス・ステータスドット・ラベルバッジ等を含む複合 UI)。

比較条件

A(整備済み) B(未整備)
Figma MCP
talentx-ui-mcp 使用可 不可
CLAUDE.md 参照可 不可
figma-to-ui スキル 使用可 不可
既存コード参照 制約なし 制約なし
  • A = MCP・CLAUDE.md・スキルを導入済みの環境
  • B = Figma MCP だけある環境(既存コードは自由に読める)

両方とも既存コードを参照できる条件にすることで、「MCP やスキルの整備だけが差を生むか」を見ました。


結果

定量データ

指標 A(整備済み) B(未整備)
Token 使用量 93,276 67,592
所要時間 272 秒 163 秒

A のほうが token・時間ともに多い。MCP への問い合わせ分のオーバーヘッドがあるためです。

コード品質

観点 A(整備済み) B(未整備)
テーブル実装 talentx-ui Table コンポーネント <table> タグで自作
チェックボックス talentx-ui CheckBox SVG で自作
ラベルバッジ talentx-ui Tag styled-components で自作
テキスト表示 talentx-ui Text styled-components で自作
ESLint エラーなし エラーあり
CLAUDE.md 規約準拠 Transient props 等準拠 一部準拠

A は talentx-ui を正しく使い、B は既存コードを参照したにも関わらず talentx-ui をほぼ使わなかった。 この差は大きい。

なぜ B は talentx-ui を使わなかったか

B は実は既存コードを自発的に探索していました。

  • AnalyticsTable.tsx
  • ArticleTable.tsx
  • DomainTable.tsx

しかし、これらの既存テーブルが talentx-ui の Table コンポーネントを使っていなかったため、B もそのパターンを踏襲して <table> タグで自作してしまったのです。

既存コードに「正解」がないと、AI は既存の(必ずしも最適でない)パターンに倣う。

これは AI の挙動として理にかなっています。プロジェクト固有のパターンに合わせようとした結果、レガシーなコードを真似てしまう。MCP があれば、こうした「コードベースの惰性」に流されず、UI ライブラリの正しい使い方を AI に伝えられます。


結論

MCP + CLAUDE.md + スキル整備の効果

今回の検証で、これらの整備が AI の UI 実装品質を大きく向上させる ことが確認できました。

  • talentx-ui の正しい活用: 未整備では Table<table> タグで自作、CheckBox を SVG で手書きしていたのが、整備済みでは talentx-ui の Table, CheckBox, Tag, Text を正しく選択・使用できた
  • 規約への準拠: CLAUDE.md により Transient props の使用や styled-components の命名規則など、プロジェクト固有の規約にも自動で従う
  • 既存コードの落とし穴を回避: 既存コードを参照できる環境でも、レガシーなパターンを踏襲してしまう問題を防げる

特に効果が大きい場面

  • 既存コードに UI ライブラリの使用例がまだ少ないプロジェクト
  • 新しいライブラリやコンポーネントを導入した直後
  • 既存コードにレガシーなパターンが残っていて、それを踏襲してほしくない場合

コストとのトレードオフ

MCP を使うと token・時間は増えます(今回は token +38%、時間 +67%)。しかし、レビューでの差し戻しや手直しの工数を考えると、人を含めたトータルコストでは MCP 導入のほうが安い という結論になります。


今後の伸び代

検証で見えた改善ポイントもあります。

Storybook のパターンを増やす

整備済みの A でも、talentx-ui にコンポーネントが存在するのに styled-components で自作してしまう箇所が一部ありました。これは MCP が参照する Storybook のカバレッジに依存するため、Story を充実させることで精度がさらに上がります。

Figma 側のコンポーネント命名・構造を整備する

Figma 上のコンポーネント名や階層構造が talentx-ui の命名と一致していれば、AI がデザインから対応するコンポーネントを特定しやすくなります。デザインとコードの命名を揃えることは、MCP の検索精度を上げる地味だが効果の大きい施策です。


おわりに

Figma MCP は強力ですが、それだけでは社内 UI ライブラリを使いこなせません。社内ライブラリ専用の MCP + プロジェクト規約(CLAUDE.md)+ ワークフロー(スキル)の三点セットを整備することで、AI が出すコードはプロダクションに直接入れられる品質になりました。

token や時間のオーバーヘッドはありますが、レビュー・手直しを含めたトータルでは確実にプラス。社内 UI ライブラリを持っている組織であれば、MCP の整備は検討する価値があると思いました。