DESTRUCTIVE

update_stakeholder

Changes a stakeholder of a project in part, so an approval flag or an email can be added as the person mentions it.

Change a stakeholder by stakeholder_id with any of name, email, phone, organisation, side, title, role, influence, interest, raci_default, approves_requirements, signs_off_uat, approves_releases, receives_status_reports, notes (HTML) and user_id. A field left out keeps its value; a field sent as null is cleared. The change goes through the same action the People page runs and stakeholder.updated goes out with what moved. A staff token with stakeholder: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.

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

stakeholder_id*string

UUID of the stakeholder.

namestringoptional

The person's name, 2 to 120 characters.

emailstringoptional

Where to reach them.

phonestringoptional

A phone number.

organisationstringoptional

The organisation they belong to, in words.

sidestringoptional

Whose side they speak for; client by default.

clientzusethird_party
titlestringoptional

Their job title.

rolestringoptional

What they do for the project; other by default.

sponsorproduct_ownerbusiness_ownersubject_matter_expertend_user_representativetechnical_leadarchitectsecuritylegalfinanceoperationsother
influencestringoptional

How much weight their word carries; medium by default.

lowmediumhigh
intereststringoptional

How closely they follow the project; medium by default.

lowmediumhigh
raci_defaultstringoptional

Their default RACI letter; null for none.

responsibleaccountableconsultedinformed
approves_requirementsbooleanoptional

Whether they are asked to approve requirements.

signs_off_uatbooleanoptional

Whether they sign off UAT runs.

approves_releasesbooleanoptional

Whether they approve releases.

receives_status_reportsbooleanoptional

Whether status reports go to them; on by default.

notesstringoptional

Anything the team should know, as HTML.

user_idstringoptional

UUID of the guest account they sign in with, when linked.

What it returns

{  "data": {    "id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",    "user_id": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",    "name": "Nadeesha Perera",    "email": "nadeesha@example.test",    "phone": "+94 77 123 4567",    "organisation": "Super Clean Laundry",    "side": "client",    "title": "Owner",    "role": "product_owner",    "influence": "high",    "interest": "high",    "raci_default": "accountable",    "approves_requirements": true,    "signs_off_uat": true,    "approves_releases": true,    "receives_status_reports": true,    "notes": null,    "position": 1,    "created_at": "2026-10-28T09:22:00+00:00",    "updated_at": "2026-10-29T08:10:00+00:00"  }}

How it fails

VALIDATION_FAILED

a field outside its limits, a value outside its set, or a user_id that is not an account the project can link.

RESOURCE_NOT_FOUND

unknown stakeholder_id, or a stakeholder 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 stakeholder:update.

TOKEN_MISSING_ABILITY

token lacks stakeholder:update.

How is this guide?

Last updated on