update_resource
Retitle, describe or switch a project resource. Partial by design — anything omitted keeps its stored value; the kind and the place are fixed.
Change what the dashboard's resource editor lets a creator change: the title, the description
and the active switch. Only the arguments present are written; anything omitted is filled from the
stored row, so a title-only change never touches the description and is never logged as a
description edit.
Emits project.resource.updated with the fields that
actually moved. A call whose arguments change nothing returns the current row and emits nothing.
`kind`, `connector` and `space` are silently ignored
The resource kind is its identity and the connector place (space) is its
binding; neither can be set here. Sending them is not an error — they are
simply not read. A place is linked through the connector with
request_resource_link, and cleared with
unlink_resource.
`active` here, or the dedicated switches
active is accepted alongside the other fields. When the switch is the only
thing changing, activate_resource and
deactivate_resource do the same thing with
a one-argument call.
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
A client that honours annotations asks a person before running it. Sending the same arguments twice changes nothing the second time. It reaches beyond Subscriby: a connector, a provider or a member.
Arguments
resource_id*stringUUID of the resource to change.
titlestringoptionalNew title, 5 to 255 characters.
descriptionstringoptionalNew description, up to 1000 characters of well-formed HTML. Pass null or an empty string to clear it.
activebooleanoptionaltrue offers the resource on the plans that link it, false switches it off without touching those plans.
What it returns
{ "data": { "id": "b73c5f21-9d80-4a6e-8215-4f70ce13a9d6", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "kind": "telegram:channel", "connector": "telegram", "space": { "id": "3c1f7a58-2b6e-4d90-8f41-6a2e9c5d7b10", "external_id": "-1001234567890", "title": "Members lounge" }, "title": "Members lounge (VIP)", "description": "Where the regulars hang out.", "active": true, "created_at": "2026-05-18T10:05:00+00:00", "updated_at": "2026-09-06T08:30:12+00:00" }}The full get_resource row. description comes back purified, so the
HTML you read may be tidier than the HTML you sent. space is null on a manual perk and on a resource not yet linked
to a place on its connector.
How it fails
VALIDATION_FAILEDtitle outside 5–255 characters (error.context.title); description
RESOURCE_NOT_FOUNDunknown resource_id, a resource on another team's project, or one outside
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-resource:update.
How is this guide?
Last updated on