create_stakeholder
Adds one of the people a project answers to, so the sponsor and the product owner a brief names take their seats as the conversation goes.
Add a stakeholder to a project: project_id and name are required; email, phone, organisation, side (client by default, or zuse, third_party), title, role (sponsor, product_owner, business_owner, subject_matter_expert, end_user_representative, technical_lead, architect, security, legal, finance, operations or other), influence and interest (low, medium, high), raci_default, the approval flags approves_requirements, signs_off_uat, approves_releases and receives_status_reports (on by default), notes (HTML) and user_id (the guest account they sign in with, when linked) fill in the rest. The stakeholder is written through the same action the People page and the intake wizard run, and stakeholder.created goes out.
A seat with approves_requirements is what an approval policy names when the client signs off requirements; the seat decides only once an account is linked to it. A staff token with stakeholder:create 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
A client that honours annotations asks a person before running it.
Arguments
project_id*stringUUID of the project.
name*stringThe person's name, 2 to 120 characters.
emailstringoptionalWhere to reach them.
phonestringoptionalA phone number.
organisationstringoptionalThe organisation they belong to, in words.
sidestringoptionalWhose side they speak for; client by default.
clientzusethird_partytitlestringoptionalTheir job title.
rolestringoptionalWhat they do for the project; other by default.
sponsorproduct_ownerbusiness_ownersubject_matter_expertend_user_representativetechnical_leadarchitectsecuritylegalfinanceoperationsotherinfluencestringoptionalHow much weight their word carries; medium by default.
lowmediumhighintereststringoptionalHow closely they follow the project; medium by default.
lowmediumhighraci_defaultstringoptionalTheir default RACI letter; null for none.
responsibleaccountableconsultedinformedapproves_requirementsbooleanoptionalWhether they are asked to approve requirements.
signs_off_uatbooleanoptionalWhether they sign off UAT runs.
approves_releasesbooleanoptionalWhether they approve releases.
receives_status_reportsbooleanoptionalWhether status reports go to them; on by default.
notesstringoptionalAnything the team should know, as HTML.
user_idstringoptionalUUID 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": null, "name": "Nadeesha Perera", "email": "nadeesha@example.test", "phone": null, "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": false, "receives_status_reports": true, "notes": null, "position": 1, "created_at": "2026-10-28T09:22:00+00:00", "updated_at": "2026-10-28T09:22:00+00:00" }}How it fails
VALIDATION_FAILEDname missing or outside 2 to 120 characters, an email that is not an address, a side, role, influence, interest or raci_default outside its set, or a user_id that is not an account the project can link.
RESOURCE_NOT_FOUNDunknown project_id, or a project outside the token's scope or the person's visibility.
FORBIDDENthe token is a client guest's, or the holder's role on the project does not carry stakeholder:create.
TOKEN_MISSING_ABILITYtoken lacks stakeholder:create.
How is this guide?
Last updated on