skein_project_members
Who is on a project and with which role ('owner' | 'member'). Reading the roster is open to any member of the project; adding and removing require a project owner (the space's owner and the instance admin included), except that a member may remove themselves (self-leave). Adding is idempotent — re-adding with the same role writes nothing. A member who has access to the project through its space cannot be removed (member_via_space): switch the project's visibility to members or remove them from the space. Read-only actions: list.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>",
"project": "<project>"
},
"name": "skein_project_members"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Only read by add: role to grant. Required for add. External users cannot be owners. | |
| action | Yes | What to do: - "list" → the full member roster with per-row role and added_at / added_by. - "add" → add a user to the project, or change an existing member's role. - "remove" → drop a membership; removing a non-member returns `member_not_found`. | |
| userId | No | UUID of the target user. Mutually exclusive with `username`; exactly one of the two is required for add and remove. | |
| project | Yes | Project handle: alias, name, or UUID. Required for every action. A project the caller cannot see renders as `project_not_found`. | |
| username | No | Username of the target user (case-insensitive). Mutually exclusive with `userId`. |