リファレンス

#ツールカテゴリ読み取り専用
1create_projectプロジェクト管理false
2get_projectプロジェクト管理true
3list_projectsプロジェクト管理true
4list_screens画面管理true
5get_screen画面管理true
6generate_screen_from_textAI 生成false
7edit_screensAI 生成false
8generate_variantsAI 生成false
9create_design_systemデザインシステムfalse
10update_design_systemデザインシステムfalse
11list_design_systemsデザインシステムtrue
12apply_design_systemデザインシステムfalse
13upload_design_mdデザインシステムfalse
14create_design_system_from_design_mdデザインシステムfalse

ツール

create_project

新しい Stitch プロジェクトを作成します。プロジェクトは、UI デザインとフロントエンドコードをまとめるコンテナです。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Optional. The title of the project."
    }
  },
  "required": []
}

出力

作成された Project リソースを、生成された name、title、メタデータとともに返します。

プロンプト例

PROMPT
Create a new Stitch project called ‘Marketing Site’ Start a new design project Set up a new project for my app

get_project

プロジェクト名を指定して、特定の Stitch プロジェクトの詳細を取得します。

アノテーション

readOnly

入力

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Required. Resource name. Format: `projects/{project}`. Example: `projects/4044680601076201931`"
    }
  },
  "required": ["name"]
}

出力

Project リソースオブジェクトを返します。

プロンプト例

PROMPT
Get the details of project 4044680601076201931 Show me the project info What’s in my project?

list_projects

ユーザーがアクセスできるすべての Stitch プロジェクトを一覧表示します。デフォルトでは、ユーザーが所有するプロジェクトが一覧表示されます。

アノテーション

readOnly

入力

{
  "type": "object",
  "properties": {
    "filter": {
      "type": "string",
      "description": "Optional. AIP-160 filter on `view` field. Supported: `view=owned` (default), `view=shared`."
    }
  },
  "required": []
}

出力

Project リソースオブジェクトの配列。

プロンプト例

PROMPT
List all my Stitch projects Show me my projects List shared projects

list_screens

指定された Stitch プロジェクト内のすべての画面を一覧表示します。

アノテーション

readOnly

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID (e.g., '4044680601076201931'), without `projects/` prefix."
    }
  },
  "required": ["projectId"]
}

出力

Screen オブジェクトの配列。

プロンプト例

PROMPT
List all screens in project 12345 Show me the designs in this project What screens are in my project?

get_screen

プロジェクト内の特定の画面の詳細を取得します。

アノテーション

readOnly

入力

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Required. Resource name. Format: `projects/{project}/screens/{screen}`"
    },
    "projectId": {
      "type": "string",
      "description": "Required (deprecated). Project ID without prefix."
    },
    "screenId": {
      "type": "string",
      "description": "Required (deprecated). Screen ID without prefix."
    }
  },
  "required": ["name", "projectId", "screenId"]
}

projectId と screenId は name(リソース名形式)に置き換えられ、非推奨になりましたが、現在は 3 つすべてが必須です。

出力

Screen オブジェクトを、htmlCode、screenshot、figmaExport のファイル参照とダウンロード URL とともに返します。

プロンプト例

PROMPT
Get the details of screen abc123 in project 12345 Show me the screen info Check the status of this screen

generate_screen_from_text

テキストプロンプトから新しい画面を生成します。この処理には通常 数分 かかります。接続エラーが発生しても再試行は避けてください。接続エラーは必ずしも失敗を意味するわけではないので、数分後に get_screen を使用してみてください。output_components に提案が含まれている場合は、ユーザーに提示します。承認された場合は、その提案を新しい prompt として再度呼び出します。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID without prefix."
    },
    "prompt": {
      "type": "string",
      "description": "Required. Text prompt describing the screen to generate."
    },
    "deviceType": {
      "type": "string",
      "enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"]
    },
    "modelId": {
      "type": "string",
      "enum": ["MODEL_ID_UNSPECIFIED", "GEMINI_3_PRO", "GEMINI_3_FLASH", "GEMINI_3_1_PRO"]
    }
  },
  "required": ["projectId", "prompt"]
}

GEMINI_3_PRO は非推奨です。代わりに GEMINI_3_1_PRO または GEMINI_3_FLASH を使用してください。

出力

生成された Screen オブジェクトと SessionOutputComponent のエントリ(テキスト、提案、デザイン参照)を返します。

プロンプト例

PROMPT
Generate a mobile login screen for project 12345 Design a dashboard page with charts and statistics Create a landing page with a hero section, features grid, and footer Build a settings page for a dark-themed app

edit_screens

テキストプロンプトを使って既存の画面を編集します。generate_screen_from_text と同様に、この処理には通常 数分 かかります。接続エラーが発生しても再試行は避けてください。接続エラーは必ずしも失敗を意味するわけではないので、数分後に get_screen を使用してみてください。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID without prefix."
    },
    "selectedScreenIds": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Required. Screen IDs to edit, without `screens/` prefix."
    },
    "prompt": {
      "type": "string",
      "description": "Required. Edit instruction."
    },
    "deviceType": {
      "type": "string",
      "enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"]
    },
    "modelId": {
      "type": "string",
      "enum": ["MODEL_ID_UNSPECIFIED", "GEMINI_3_PRO", "GEMINI_3_FLASH", "GEMINI_3_1_PRO"]
    }
  },
  "required": ["projectId", "selectedScreenIds", "prompt"]
}

GEMINI_3_PRO は非推奨です。代わりに GEMINI_3_1_PRO または GEMINI_3_FLASH を使用してください。

出力

更新された Screen オブジェクトを返します。

プロンプト例

PROMPT
Change the button color to blue on screen abc123 Make the hero text larger and add a subtitle Add a navigation bar to these screens Switch the layout to a two-column grid

generate_variants

既存の画面のデザインバリアントを生成します。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID without prefix."
    },
    "selectedScreenIds": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Required. Screen IDs to generate variants for."
    },
    "prompt": {
      "type": "string",
      "description": "Required. Text guiding variant generation."
    },
    "variantOptions": {
      "$ref": "#/$defs/VariantOptions",
      "description": "Required. Variant configuration."
    },
    "deviceType": {
      "type": "string",
      "enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"]
    },
    "modelId": {
      "type": "string",
      "enum": ["MODEL_ID_UNSPECIFIED", "GEMINI_3_PRO", "GEMINI_3_FLASH", "GEMINI_3_1_PRO"]
    }
  },
  "required": ["projectId", "selectedScreenIds", "prompt", "variantOptions"]
}

GEMINI_3_PRO は非推奨です。代わりに GEMINI_3_1_PRO または GEMINI_3_FLASH を使用してください。

VariantOptions
{
  "type": "object",
  "properties": {
    "variantCount": {
      "type": "integer",
      "description": "Number of variants (1–5). Default: 3."
    },
    "creativeRange": {
      "type": "string",
      "enum": ["CREATIVE_RANGE_UNSPECIFIED", "REFINE", "EXPLORE", "REIMAGINE"]
    },
    "aspects": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": ["VARIANT_ASPECT_UNSPECIFIED", "LAYOUT", "COLOR_SCHEME", "IMAGES", "TEXT_FONT", "TEXT_CONTENT"]
      }
    }
  }
}

出力

生成されたバリアントの Screen オブジェクトを返します。

プロンプト例

PROMPT
Generate 3 variants of screen abc123 focusing on layout and color Reimagine my landing page with radical variations Create subtle refinements of these screens Show me 5 different color schemes for this design

create_design_system

プロジェクト用の新しいデザインシステムを作成します。すべての画面に適用される基盤となるデザイントークン(色、タイポグラフィ、形状、外観)を定義します。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "designSystem": {
      "$ref": "#/$defs/DesignSystem",
      "description": "Required. The design system to create."
    },
    "projectId": {
      "type": "string",
      "description": "Optional. Project ID. If empty, creates a global (unassociated) asset."
    }
  },
  "required": ["designSystem"]
}
DesignSystem
{
  "type": "object",
  "properties": {
    "displayName": {
      "type": "string",
      "description": "Required. Display name."
    },
    "theme": {
      "$ref": "#/$defs/DesignTheme",
      "description": "Required. Theme configuration."
    }
  },
  "required": ["displayName", "theme"]
}
DesignTheme
{
  "type": "object",
  "properties": {
    "colorMode": { "type": "string", "enum": ["COLOR_MODE_UNSPECIFIED", "LIGHT", "DARK"] },
    "headlineFont": { "type": "string", "enum": ["FONT_UNSPECIFIED", "INTER", "DM_SANS", "GEIST", "..."] },
    "bodyFont": { "type": "string", "enum": ["FONT_UNSPECIFIED", "INTER", "DM_SANS", "GEIST", "..."] },
    "labelFont": { "type": "string", "enum": ["FONT_UNSPECIFIED", "INTER", "DM_SANS", "GEIST", "..."] },
    "roundness": { "type": "string", "enum": ["ROUNDNESS_UNSPECIFIED", "ROUND_FOUR", "ROUND_EIGHT", "ROUND_TWELVE", "ROUND_FULL"] },
    "customColor": { "type": "string", "description": "Required. Hex color seed for the dynamic color system." },
    "colorVariant": { "type": "string", "enum": ["COLOR_VARIANT_UNSPECIFIED", "MONOCHROME", "NEUTRAL", "TONAL_SPOT", "VIBRANT", "EXPRESSIVE", "FIDELITY", "CONTENT", "RAINBOW", "FRUIT_SALAD"] },
    "overridePrimaryColor": { "type": "string", "description": "Optional. Override primary color (hex)." },
    "overrideSecondaryColor": { "type": "string", "description": "Optional. Override secondary color (hex)." },
    "overrideTertiaryColor": { "type": "string", "description": "Optional. Override tertiary color (hex)." },
    "overrideNeutralColor": { "type": "string", "description": "Optional. Override neutral color (hex)." },
    "designMd": { "type": "string", "description": "Optional. Markdown design instructions." }
  },
  "required": ["colorMode", "headlineFont", "bodyFont", "roundness", "customColor"]
}

出力

作成されたデザインシステムの Asset を返します。

プロンプト例

PROMPT
Create a dark mode design system with Inter font and round corners Set up a design system with blue as the primary color Create a brand identity with Geist font and minimal roundness

update_design_system

既存のデザインシステムを更新します。アセットは name フィールドで識別されます。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Required. Resource name. Format: `assets/{asset}`. Example: `assets/15996705518239280238`"
    },
    "projectId": {
      "type": "string",
      "description": "Required. Project ID without prefix."
    },
    "designSystem": {
      "$ref": "#/$defs/DesignSystem",
      "description": "Required. The updated design system content."
    }
  },
  "required": ["name", "projectId", "designSystem"]
}

create_design_system と同じ DesignSystem および DesignTheme スキーマを使用します。

出力

更新されたデザインシステムの Asset を返します。

プロンプト例

PROMPT
Update the design system to use dark mode Change the font to Geist in our design system Update the roundness to fully rounded

list_design_systems

プロジェクトのすべてのデザインシステムを一覧表示します(projectId がない場合は、グローバルなデザインシステムを一覧表示します)。

アノテーション

readOnly

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Optional. Project ID. If empty, lists global design systems."
    }
  },
  "required": []
}

出力

デザインシステムを含む Asset オブジェクトの配列。

プロンプト例

PROMPT
List all design systems in project 12345 Show me the available design systems What design systems do I have?

apply_design_system

1 つ以上の画面にデザインシステムを適用し、システムのトークン(色、フォント、形状)に一致するように外観を変更します。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID without prefix."
    },
    "selectedScreenInstances": {
      "type": "array",
      "items": { "$ref": "#/$defs/SelectedScreenInstance" },
      "description": "Required. Screen instances to update (from `get_project`)."
    },
    "assetId": {
      "type": "string",
      "description": "Required. Design system asset ID (from `list_design_systems`), without `assets/` prefix."
    }
  },
  "required": ["projectId", "selectedScreenInstances", "assetId"]
}
SelectedScreenInstance
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Required. The screen instance ID (NOT the source screen ID). Available from `get_project`."
    },
    "sourceScreen": {
      "type": "string",
      "description": "Required. Resource name. Format: `projects/{project}/screens/{screen}`"
    }
  },
  "required": ["id", "sourceScreen"]
}

出力

更新された Screen オブジェクトを返します。

プロンプト例

PROMPT
Apply the blue design system to all screens in project 12345 Restyle these screens with the brand identity Use design system abc to update my screens

upload_design_md

DESIGN.md ファイルを Stitch プロジェクトにアップロードします。これは 2 段階の DESIGN.md ワークフローの最初の手順です。アップロード後に create_design_system_from_design_md を呼び出して、デザインシステムを作成します。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID (e.g., '4044680601076201931'), without `projects/` prefix."
    },
    "designMdBase64": {
      "type": "string",
      "description": "Required. Base64-encoded DESIGN.md content. The decoded content must be valid UTF-8."
    }
  },
  "required": ["projectId", "designMdBase64"]
}

出力

アップロードされた DESIGN.md を表す画面インスタンスオブジェクトを返します。このレスポンスの id と sourceScreen フィールドは、create_design_system_from_design_md への入力として必須です。

プロンプト例

PROMPT
Upload my DESIGN.md to project 12345 Add a design system document to this project Upload this markdown design file to Stitch

create_design_system_from_design_md

アップロードされた DESIGN.md ファイルからデザインシステムを作成し、UI に表示します。upload_design_md の後に呼び出す必要があります。

アノテーション

destructive

入力

{
  "type": "object",
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Required. Project ID without prefix."
    },
    "selectedScreenInstance": {
      "$ref": "#/$defs/SelectedScreenInstance",
      "description": "Required. The screen instance created by `upload_design_md`."
    },
    "deviceType": {
      "type": "string",
      "enum": ["DEVICE_TYPE_UNSPECIFIED", "MOBILE", "DESKTOP", "TABLET", "AGNOSTIC"],
      "description": "Optional. The device type for the design system."
    }
  },
  "required": ["projectId", "selectedScreenInstance"]
}

apply_design_system と同じ SelectedScreenInstance スキーマを使用します。

出力

apply_design_system で使用できる assetId を持つ DesignSystem を返します。

プロンプト例

PROMPT
Create a design system from the uploaded DESIGN.md Convert my design document into a design system Build a design system from my DESIGN.md file

共有型

Screen

Stitch プロジェクト内で生成された画面デザイン。

フィールド型説明
namestringリソース名。形式:projects/{project}/screens/{screen}
idstring(非推奨) 画面 ID。
titlestring画面のタイトル。
promptstring画面の生成に使用されたプロンプト。
screenshotFile画面のスクリーンショット画像。
htmlCodeFile画面の HTML コード。
figmaExportFile画面の Figma エクスポート。
themeDesignTheme生成に使用されたテーマ。
deviceTypeDeviceTypeデバイスタイプ。
screenTypeScreenType画面タイプ。
screenMetadataScreenMetadataメタデータ(エージェント、ステータス、表示モード)。
widthstring画面の幅。
heightstring画面の高さ。
groupIdstring関連する画面(バリアントなど)のグループ ID。
groupNamestringグループの表示名。
generatedBystringジェネレーターの識別子。
isCreatedByClientbooleanAPI 経由のアップロードで作成された場合は true、エージェントによって作成された場合は false。

File

フィールド型説明
namestringリソース名。形式:projects/{project}/files/{file}
downloadUrlstringダウンロード用 URL。画像の場合は FIFE ベース URL。
mimeTypestring例:"image/png"、"text/html"。
fileContentBase64string(書き込み専用) アップロード用の Base64 エンコードされたコンテンツ。
uploadBlobIdstringアップロードサービスから取得した BlobId。
userFeedbackUserFeedback(読み取り専用) 最新のフィードバック。

DesignSystem

一貫性のあるブランドデザインを生成するために使用される、視覚的・機能的なデザインガイドラインを表します。

フィールド型説明
displayNamestringデザインシステムの表示名。
themeDesignThemeテーマ設定。

Asset

デザインシステムリソースのラッパー(update_design_system で使用)。

フィールド型説明
namestringリソース名。形式:assets/{asset}
designSystemDesignSystemデザインシステムの内容。
versionstring(読み取り専用) バージョンカウンター。0 = バージョンなし。

DesignTheme

フィールド型必須説明
colorModeColorModetrueライトモードまたはダークモード。
headlineFontFonttrue見出しのタイポグラフィ。
bodyFontFonttrue本文のタイポグラフィ。
labelFontFontfalseラベルのタイポグラフィ。
roundnessRoundnesstrue角の丸み。
customColorstringtrue動的カラーシステムのシードカラー(16 進数、例:"#ff0000")。
colorVariantColorVariantfalse動的カラーシステムのバリアント。
overridePrimaryColorstringfalseプライマリカラーのオーバーライド(16 進数)。
overrideSecondaryColorstringfalseセカンダリカラーのオーバーライド(16 進数)。
overrideTertiaryColorstringfalseターシャリカラーのオーバーライド(16 進数)。
overrideNeutralColorstringfalseニュートラルカラーのオーバーライド(16 進数)。
designMdstringfalseMarkdown 形式のデザイン指示。

ScreenMetadata

フィールド型説明
agentTypeAgentTypeEnumTURBO_AGENT, PRO_AGENT, IMAGE_AGENT, GENIE_AGENT, IMAGE_PRO_AGENT, HATTER_AGENT, GEMINI_3_AGENT
statusScreenStatusEnumIN_PROGRESS, COMPLETE, FAILED
statusMessagestringエージェントからの人間が判読できる形式のステータス。
displayModeDisplayModeEnumSCREENSHOT, HTML, CODE, MARKDOWN, STICKY_NOTE
isRemixedboolean画面がリミックスから作成されたかどうか。
componentRegionsComponentRegion[]コンポーネント領域のアノテーション。

SessionOutputComponent

生成ツールから output_components で返されます。

フィールド型説明
textstringエージェントのテキスト応答。
suggestionstringユーザーへのフォローアップ提案。
designDesign生成されたデザイン参照。

UserFeedback

フィールド型説明
ratingstringPOSITIVE または NEGATIVE。
commentstring追加コメント。
designFeedbackReasonstringDESIGN_DOESNT_MATCH_PROMPT、EDIT_DOESNT_MATCH_PROMPT、COMPONENT_ISSUE、INCORRECT_THEME など。

VariantOptions

フィールド型説明
variantCountinteger生成するバリアントの数(1〜5)。デフォルト:3。
creativeRangeCreativeRangeクリエイティブの自由度。
aspectsVariantAspect[]注目するアスペクト。

SelectedScreenInstance

apply_design_system と create_design_system_from_design_md で使用されます。

フィールド型必須説明
idstringtrue画面インスタンス ID(get_project から取得)。ソース画面の ID ではありません。
sourceScreenstringtrueリソース名。形式:projects/{project}/screens/{screen}

列挙型

DeviceType 列挙型

値説明
DEVICE_TYPE_UNSPECIFIED未指定。
MOBILEモバイルデバイス。
DESKTOPデスクトップデバイス。
TABLETタブレットデバイス。
AGNOSTICデバイスに依存しません。

ModelId 列挙型

値説明
MODEL_ID_UNSPECIFIED未指定。
GEMINI_3_PRO(非推奨) Gemini 3 Pro。代わりに GEMINI_3_1_PRO または GEMINI_3_FLASH を使用してください。
GEMINI_3_FLASHGemini 3 Flash。
GEMINI_3_1_PROGemini 3.1 Pro。

ScreenType 列挙型

値説明
SCREEN_TYPE_UNSPECIFIEDデフォルトは DESIGN。
DESIGNデザイン画面。
IMAGE純粋な画像。
PROTOTYPEデザインプロトタイプ。
DOCUMENTドキュメント(PRD など)。
PROTOTYPE_V2デザインプロトタイプ v2。

ColorMode 列挙型

値説明
COLOR_MODE_UNSPECIFIED未指定。
LIGHTライトモード。
DARKダークモード。

ColorVariant 列挙型

値説明
COLOR_VARIANT_UNSPECIFIED未指定。
MONOCHROMEモノクロームバリアント。
NEUTRALニュートラルバリアント。
TONAL_SPOTトーナルスポットバリアント。
VIBRANTビブラントバリアント。
EXPRESSIVEエクスプレッシブバリアント。
FIDELITYフィデリティバリアント。
CONTENTコンテンツバリアント。
RAINBOWレインボーバリアント。
FRUIT_SALADフルーツサラダバリアント。

Font 列挙型

29 種のフォントファミリーをサポートしています:

INTER · DM_SANS · GEIST · SORA · MANROPE · LEXEND · EPILOGUE · BE_VIETNAM_PRO · PLUS_JAKARTA_SANS · PUBLIC_SANS · SPACE_GROTESK · SPLINE_SANS · WORK_SANS · MONTSERRAT · METROPOLIS · SOURCE_SANS_THREE · NUNITO_SANS · ARIMO · HANKEN_GROTESK · RUBIK · IBM_PLEX_SANS · NEWSREADER · NOTO_SERIF · DOMINE · LIBRE_CASLON_TEXT · EB_GARAMOND · LITERATA · SOURCE_SERIF_FOUR

Roundness 列挙型

値説明
ROUNDNESS_UNSPECIFIED未指定。
ROUND_TWO(非推奨) 丸み 2。
ROUND_FOUR丸み 4。
ROUND_EIGHT丸み 8。
ROUND_TWELVE丸み 12。
ROUND_FULL完全な丸み。

CreativeRange 列挙型

値説明
CREATIVE_RANGE_UNSPECIFIED未指定。
REFINE元のデザインに近い、微妙な調整。
EXPLOREバランスの取れた探索。(デフォルト)
REIMAGINE大胆な探索。

VariantAspect 列挙型

値説明
VARIANT_ASPECT_UNSPECIFIED未指定。
LAYOUT要素の配置。
COLOR_SCHEMEカラーパレット。
IMAGES画像の使用方法。
TEXT_FONTフォントの選択。
TEXT_CONTENTテキストコンテンツ。

MCP アノテーション

MCP アノテーションは、MCP サーバーが各ツール定義に付加するメタデータヒントで、ツールの動作特性をクライアント(AI エージェントまたはホストアプリケーション)に伝えるものです。MCP 仕様 の一部であり、クライアントがツールの実装を理解することなく、ツールの使用方法についてより適切な判断を下せるようにします。

各ツールには動作アノテーションが含まれています:

アノテーション意味
readOnlyHinttrue = 読み取り専用で、変更を加えません。
destructiveHinttrue = リソースを作成/変更/削除する可能性があります。
idempotentHinttrue = 繰り返し呼び出しても同じ結果になります。
openWorldHinttrue = 外部システムとやり取りします。

実際のツールでの動作

Stitch MCP サーバーの各ツールは、ツール登録の一部としてこれらを宣言しています。例えば:

  • list_projects は readOnlyHint: true を持ちます。データを取得するだけなので、エージェントは副作用を気にせずに呼び出せます。
  • create_project は readOnlyHint: false、destructiveHint: true、idempotentHint: false を持ちます。状態を変更するため、クライアントは先にユーザーへ確認する必要があります。
  • generate_screen_from_text は destructiveHint: true と idempotentHint: false を持ちます。呼び出すたびに新しい画面が作成されるため、タイムアウト時に再試行すると重複が生成される可能性があります。

なぜ重要か

これらはヒントであり、強制されるルールではありません。これにより、MCP クライアントは次のことを行えます:

  • ユーザーに確認を求めずに、読み取り専用ツールを自動承認する
  • 破壊的な操作に対して確認ダイアログを表示する
  • ネットワーク障害時に冪等なツールを安全に再試行する
  • openWorldHint が true の場合に外部とのやり取りを監査する

Stitch サーバーの場合、すべてのツールは openWorldHint: false です。これは、任意のサードパーティサービスではなく、Stitch バックエンドとのみやり取りするためです。

原文: https://stitch.withgoogle.com/docs/mcp/reference/

本ページは Google Stitch 公式ドキュメントの翻訳です。原文の著作権は Google LLC に帰属します。本サイトは独立した非公式の翻訳です。