MCP Tools

Reference for the uniform Stitch CLI Model Context Protocol tools.

The Stitch CLI includes a built-in MCP server (stitch mcp start / stitch mcp install) that exposes 7 uniform verb tools mirroring the CLI grammar.

ToolCLI EquivalentRead-Only
stitch_createstitch createfalse
stitch_deletestitch deletefalse
stitch_editstitch editfalse
stitch_findstitch findtrue
stitch_generatestitch generatefalse
stitch_getstitch gettrue
stitch_urlstitch urltrue

Tools


stitch_create

Creates one resource. Mirrors stitch create <resource>. Use to perform atomic creation (‘add context’, ‘create priority’, ‘connect tool provider’, ‘create skill’, ‘generate screen’). Returns { resource, item, created }; with dryRun, returns the exact request preview.

Annotations

destructive

Parameters

FieldTypeRequiredDescription
resourcestringtrueResource type to create (project, screen, design-system, workspace, context, skill, priority, webhook, connection). Allowed values: project, screen, design-system, workspace, context, skill, priority, webhook, connection.
bodyobjecttrueResource payload. Required fields: project={}, screen={prompt}, design-system={designSystem}, workspace={displayName}, context={data, description}, skill={content, id}, priority={objective}, webhook={eventTypes, url}, connection={providerId}. Run ‘stitch create <resource> —schema’ for the full contract.
workspacestringfalseWorkspace ID override. Required for workspace-scoped resources when no default workspace is configured.
projectstringfalseStitch project ID (required for project-scoped resources).
dryRunbooleanfalseValidate payload and preview the request without sending it.

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "project",
        "screen",
        "design-system",
        "workspace",
        "context",
        "skill",
        "priority",
        "webhook",
        "connection"
      ],
      "description": "Resource type to create (project, screen, design-system, workspace, context, skill, priority, webhook, connection)."
    },
    "body": {
      "type": "object",
      "description": "Resource payload. Required fields: project={}, screen={prompt}, design-system={designSystem}, workspace={displayName}, context={data, description}, skill={content, id}, priority={objective}, webhook={eventTypes, url}, connection={providerId}. Run 'stitch create <resource> --schema' for the full contract."
    },
    "workspace": {
      "type": "string",
      "description": "Workspace ID override. Required for workspace-scoped resources when no default workspace is configured."
    },
    "project": {
      "type": "string",
      "description": "Stitch project ID (required for project-scoped resources)."
    },
    "dryRun": {
      "type": "boolean",
      "description": "Validate payload and preview the request without sending it."
    }
  },
  "required": [
    "resource",
    "body"
  ]
}

CLI equivalent

stitch create --schema

stitch_delete

Removes one resource by id (workspace, context, priority, webhook). Mirrors stitch delete <resource> <id>. Returns { resource, id, deleted }.

Annotations

destructive

Parameters

FieldTypeRequiredDescription
resourcestringtrueResource type to delete (workspace, context, priority, webhook). Allowed values: workspaces, workspace, contexts, context, priorities, priority, webhooks, webhook.
idstringtrueID of the resource to delete.
workspacestringfalseWorkspace ID override. Required for workspace-scoped resources when no default workspace is configured.
projectstringfalseStitch Canvas project ID (required for project-scoped resources).
dryRunbooleanfalsePreview what would be deleted and issue no HTTP request.
dry-runbooleanfalsePreview what would be deleted and issue no HTTP request.
confirmbooleanfalseMust be set to true when deleting a cascading resource (workspace).

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "workspaces",
        "workspace",
        "contexts",
        "context",
        "priorities",
        "priority",
        "webhooks",
        "webhook"
      ],
      "description": "Resource type to delete (workspace, context, priority, webhook)."
    },
    "id": {
      "type": "string",
      "description": "ID of the resource to delete."
    },
    "workspace": {
      "type": "string",
      "description": "Workspace ID override. Required for workspace-scoped resources when no default workspace is configured."
    },
    "project": {
      "type": "string",
      "description": "Stitch Canvas project ID (required for project-scoped resources)."
    },
    "dryRun": {
      "type": "boolean",
      "description": "Preview what would be deleted and issue no HTTP request."
    },
    "dry-run": {
      "type": "boolean",
      "description": "Preview what would be deleted and issue no HTTP request."
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be set to true when deleting a cascading resource (workspace)."
    }
  },
  "required": [
    "resource",
    "id"
  ]
}

CLI equivalent

stitch delete --schema

stitch_edit

Applies a partial update to one resource. Mirrors stitch edit <resource> <id>. Use to modify mutable fields (‘update priority description’, ‘edit context’, ‘update workspace file’, ‘patch skill’, ‘pause webhook’, ‘edit screen’). Returns { resource, item, updateMask }; when Canvas applies the edit asynchronously (design systems), returns { resource, id, status: ‘pending’, session, requested, message } and the caller should re-read the resource later; with dryRun, returns the exact request preview.

Annotations

destructive

Parameters

FieldTypeRequiredDescription
resourcestringtrueResource type to edit (screen, design-system, workspace, context, file, skill, priority, webhook). Allowed values: screen, design-system, workspace, context, file, skill, priority, webhook.
idstringtrueID of the resource to edit. For screens, also accepts projects/<p>/screens/<s> or a Stitch canvas URL; the project it names is used.
patchobjecttrueFields to update. Run ‘stitch edit <resource> —schema’ for the editable fields.
updateMaskstringfalseComma-separated field paths to update. Derived from patch keys when omitted.
workspacestringfalseWorkspace ID override. Required for workspace-scoped resources when no default workspace is configured.
projectstringfalseStitch project ID (required for project-scoped resources).
dryRunbooleanfalsePreview the request without modifying the resource.

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "screen",
        "design-system",
        "workspace",
        "context",
        "file",
        "skill",
        "priority",
        "webhook"
      ],
      "description": "Resource type to edit (screen, design-system, workspace, context, file, skill, priority, webhook)."
    },
    "id": {
      "type": "string",
      "description": "ID of the resource to edit. For screens, also accepts projects/<p>/screens/<s> or a Stitch canvas URL; the project it names is used."
    },
    "patch": {
      "type": "object",
      "description": "Fields to update. Run 'stitch edit <resource> --schema' for the editable fields."
    },
    "updateMask": {
      "type": "string",
      "description": "Comma-separated field paths to update. Derived from patch keys when omitted."
    },
    "workspace": {
      "type": "string",
      "description": "Workspace ID override. Required for workspace-scoped resources when no default workspace is configured."
    },
    "project": {
      "type": "string",
      "description": "Stitch project ID (required for project-scoped resources)."
    },
    "dryRun": {
      "type": "boolean",
      "description": "Preview the request without modifying the resource."
    }
  },
  "required": [
    "resource",
    "id",
    "patch"
  ]
}

CLI equivalent

stitch edit --schema

stitch_find

Lists resources of a given type (projects, screens, design-systems, workspaces, contexts, files, skills, priorities, webhooks, insights, solutions, connections, organizations). Mirrors stitch find <resource>. Returns { resource, items, returnedCount, isTruncated, nextPageToken }. Follow up with stitch_get on a specific id to inspect full details.

Annotations

readOnly

Parameters

FieldTypeRequiredDescription
resourcestringtrueResource type to list (projects, screens, design-systems, workspaces, contexts, files, skills, priorities, webhooks, insights, solutions, connections, organizations). Allowed values: projects, project, screens, screen, design-systems, design-system, workspaces, workspace, contexts, context, files, file, skills, skill, priorities, priority, webhooks, webhook, insights, insight, solutions, solution, connections, connection, toolProvider, toolProviders, tool-provider, tool-providers, organizations, organization.
criteriaobjectfalseResource-specific filter criteria (e.g. { id: ‘i-1’ }).
workspacestringfalseWorkspace ID override. Required for workspace-scoped resources when no default workspace is configured.
projectstringfalseStitch Canvas project ID (required for project-scoped resources).
limitintegerfalseMaximum number of items to return (default 50).
pageSizeintegerfalseItems per page requested from the API (defaults to limit).
pageTokenstringfalseResume from a previous result’s nextPageToken. Not supported for Canvas resources.
filterstringfalseAIP-160 filter expression.
includearrayfalseRelated collections to pull into each item.

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "projects",
        "project",
        "screens",
        "screen",
        "design-systems",
        "design-system",
        "workspaces",
        "workspace",
        "contexts",
        "context",
        "files",
        "file",
        "skills",
        "skill",
        "priorities",
        "priority",
        "webhooks",
        "webhook",
        "insights",
        "insight",
        "solutions",
        "solution",
        "connections",
        "connection",
        "toolProvider",
        "toolProviders",
        "tool-provider",
        "tool-providers",
        "organizations",
        "organization"
      ],
      "description": "Resource type to list (projects, screens, design-systems, workspaces, contexts, files, skills, priorities, webhooks, insights, solutions, connections, organizations)."
    },
    "criteria": {
      "type": "object",
      "description": "Resource-specific filter criteria (e.g. { id: 'i-1' })."
    },
    "workspace": {
      "type": "string",
      "description": "Workspace ID override. Required for workspace-scoped resources when no default workspace is configured."
    },
    "project": {
      "type": "string",
      "description": "Stitch Canvas project ID (required for project-scoped resources)."
    },
    "limit": {
      "type": "integer",
      "description": "Maximum number of items to return (default 50)."
    },
    "pageSize": {
      "type": "integer",
      "description": "Items per page requested from the API (defaults to limit)."
    },
    "pageToken": {
      "type": "string",
      "description": "Resume from a previous result's nextPageToken. Not supported for Canvas resources."
    },
    "filter": {
      "type": "string",
      "description": "AIP-160 filter expression."
    },
    "include": {
      "type": "array",
      "description": "Related collections to pull into each item."
    }
  },
  "required": [
    "resource"
  ]
}

CLI equivalent

stitch find --schema

stitch_generate

Triggers a backend generation job (insights, solutions). Mirrors stitch generate <resource>. Returns { resource, workspace, started, complete } (complete is false because generation runs asynchronously; poll with stitch_find).

Annotations

destructive

Parameters

FieldTypeRequiredDescription
resourcestringtrueResource type to generate (insights, solutions). Allowed values: insights, insight, solutions, solution.
prioritiesarrayfalsePriority IDs to scope generation to (applies to resource=‘insights’ only; omit to generate across the entire workspace).
insightsarrayfalseInsight IDs to generate solutions for (required when resource=‘solutions’; applies to resource=‘solutions’ only).
delayExecutionbooleanfalseReschedule the agent run rather than starting immediately (applies to resource=‘insights’ only).
replaceExistingbooleanfalseReplace existing unassigned solutions instead of adding to them (applies to resource=‘solutions’ only).
workspacestringfalseWorkspace ID override. Required when no default workspace is configured.
dryRunbooleanfalseValidate arguments and preview scope without starting a generation job.
dry-runbooleanfalseValidate arguments and preview scope without starting a generation job.

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "insights",
        "insight",
        "solutions",
        "solution"
      ],
      "description": "Resource type to generate (insights, solutions)."
    },
    "priorities": {
      "type": "array",
      "description": "Priority IDs to scope generation to (applies to resource='insights' only; omit to generate across the entire workspace)."
    },
    "insights": {
      "type": "array",
      "description": "Insight IDs to generate solutions for (required when resource='solutions'; applies to resource='solutions' only)."
    },
    "delayExecution": {
      "type": "boolean",
      "description": "Reschedule the agent run rather than starting immediately (applies to resource='insights' only)."
    },
    "replaceExisting": {
      "type": "boolean",
      "description": "Replace existing unassigned solutions instead of adding to them (applies to resource='solutions' only)."
    },
    "workspace": {
      "type": "string",
      "description": "Workspace ID override. Required when no default workspace is configured."
    },
    "dryRun": {
      "type": "boolean",
      "description": "Validate arguments and preview scope without starting a generation job."
    },
    "dry-run": {
      "type": "boolean",
      "description": "Validate arguments and preview scope without starting a generation job."
    }
  },
  "required": [
    "resource"
  ]
}

CLI equivalent

stitch generate --schema

stitch_get

Fetches one resource by id (project, screen, design-system, status, workspace, context, file, skill, priority, webhook, insight, solution, connection, organization). Mirrors stitch get <resource> <id>. Returns { resource, item, availableActions? }. Follow up with the tool named in availableActions.

Annotations

readOnly

Parameters

FieldTypeRequiredDescription
resourcestringtrueResource type to fetch (project, screen, design-system, status, workspace, context, file, skill, priority, webhook, insight, solution, connection, organization). Allowed values: projects, project, screens, screen, design-systems, design-system, status, workspaces, workspace, contexts, context, files, file, skills, skill, priorities, priority, webhooks, webhook, insights, insight, solutions, solution, connections, connection, toolProvider, toolProviders, tool-provider, tool-providers, organizations, organization.
idstringfalseID of the resource to fetch. Required for every resource except ‘status’, where id must be omitted.
workspacestringfalseWorkspace ID override. Required for workspace-scoped resources when no default workspace is configured.
projectstringfalseStitch Canvas project ID (required for project-scoped resources).

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "projects",
        "project",
        "screens",
        "screen",
        "design-systems",
        "design-system",
        "status",
        "workspaces",
        "workspace",
        "contexts",
        "context",
        "files",
        "file",
        "skills",
        "skill",
        "priorities",
        "priority",
        "webhooks",
        "webhook",
        "insights",
        "insight",
        "solutions",
        "solution",
        "connections",
        "connection",
        "toolProvider",
        "toolProviders",
        "tool-provider",
        "tool-providers",
        "organizations",
        "organization"
      ],
      "description": "Resource type to fetch (project, screen, design-system, status, workspace, context, file, skill, priority, webhook, insight, solution, connection, organization)."
    },
    "id": {
      "type": "string",
      "description": "ID of the resource to fetch. Required for every resource except 'status', where id must be omitted."
    },
    "workspace": {
      "type": "string",
      "description": "Workspace ID override. Required for workspace-scoped resources when no default workspace is configured."
    },
    "project": {
      "type": "string",
      "description": "Stitch Canvas project ID (required for project-scoped resources)."
    }
  },
  "required": [
    "resource"
  ]
}

CLI equivalent

stitch get --schema

stitch_url

Returns the canonical Stitch Canvas web URL for a project or screen with zero network I/O. Mirrors stitch url <resource> <id>. Use when the user asks for a link (‘open in Stitch’, ‘get canvas URL’, ‘link to screen’) instead of guessing stitch.google.com URLs. Returns { resource, id, url, verified: false }.

Annotations

readOnly

Parameters

FieldTypeRequiredDescription
resourcestringtrueStitch Canvas resource type to construct a URL for (project or screen). Allowed values: project, screen.
idstringtrueID of the project or screen (accepts a bare ID or a full resource name like ‘projects/<p>/screens/<s>’).
projectstringfalseProject ID that owns the screen (required when resource=‘screen’ and ‘id’ is not a full ‘projects/<p>/screens/<s>’ resource name).

Input schema

{
  "type": "object",
  "properties": {
    "resource": {
      "type": "string",
      "enum": [
        "project",
        "screen"
      ],
      "description": "Stitch Canvas resource type to construct a URL for (project or screen)."
    },
    "id": {
      "type": "string",
      "description": "ID of the project or screen (accepts a bare ID or a full resource name like 'projects/<p>/screens/<s>')."
    },
    "project": {
      "type": "string",
      "description": "Project ID that owns the screen (required when resource='screen' and 'id' is not a full 'projects/<p>/screens/<s>' resource name)."
    }
  },
  "required": [
    "resource",
    "id"
  ]
}

CLI equivalent

stitch url --schema

Original: https://stitch.withgoogle.com/docs/cli/reference/mcp-tools/

Translated from the official Google Stitch documentation. Original content © Google LLC. This is an independent, unofficial translation.