DESTRUCTIVE

update_component

Changes a component of a project in part; a field left out keeps its value and the tags replace the list when sent.

Change a component by component_id with any of name, slug, kind, description (HTML), tech_stack (the list replaces the current one) and owner_id. A field left out keeps its value; a field sent as null is cleared. The change goes through the same action the Components page runs and component.updated goes out with what moved. A staff token with component:update on the project is needed.

Requires ability

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

Runs the same action as

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Annotations

Destructive

A client that honours annotations asks a person before running it.

Arguments

component_id*string

UUID of the component.

namestringoptional

What the component is called within the project, 2 to 80 characters.

slugstringoptional

The slug shown in versions such as web@1.4.0.

kindstringoptional

What the component is.

web_appapimobile_iosmobile_androidmobile_cross_platformdesktopserviceintegrationdatabaseinfrastructureother
descriptionstringoptional

What the component does, as HTML.

tech_stackstring[]optional

Short technology tags; the list replaces the current one.

owner_idstringoptional

UUID of the team member who answers for it; null to clear.

What it returns

{  "data": {    "id": "c0a1b2c3-d4e5-4f60-8a7b-9c0d1e2f3a4b",    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",    "name": "Web app",    "slug": "web-app",    "kind": "web_app",    "description": "<p>The customer-facing site: services, ordering, tracking and bookings.</p>",    "tech_stack": [      "Laravel 13",      "Livewire 4",      "Flux UI",      "PostgreSQL",      "Redis"    ],    "owner_id": "3f8a1c2e-7b4d-4e5f-9a6b-1c2d3e4f5a6b",    "position": 1,    "environments_count": 3,    "archived_at": null,    "created_at": "2026-10-28T09:18:00+00:00",    "updated_at": "2026-10-28T12:30:00+00:00"  }}

How it fails

VALIDATION_FAILED

a field outside its limits, a kind outside the list, a slug or name another component of the project already uses, or an owner_id who is not on the team.

RESOURCE_NOT_FOUND

unknown component_id, or a component outside the token's scope or the person's visibility.

FORBIDDEN

the token is a client guest's, or the holder's role on the project does not carry component:update.

TOKEN_MISSING_ABILITY

token lacks component:update.

How is this guide?

Last updated on