Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/tools/app-members.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export function registerAppMemberTools(
): void {
server.tool(
"list_app_members",
"List members of an app with usage quota (used/max). For personal (user-owned) apps this lists individual collaborators; for project/workspace (Group) apps it also includes the teams attached to the app.",
"List the members of an app. For project/workspace (Group)-owned apps (current plans) this returns individual users plus the teams attached to the app. For legacy user-owned apps it returns individual collaborators plus a usage quota object (used/max seats).",
{ owner_name: ownerArg, platform: platformArg, app_id: appIdArg },
async (args) => {
const results = await client.listAppMembers(
Expand Down Expand Up @@ -74,7 +74,7 @@ export function registerAppMemberTools(

server.tool(
"remove_app_shared_team",
"Detach a workspace shared team from an app. Only valid for apps in an Enterprise (workspace) organization — returns 400 otherwise. DESTRUCTIVE. The owner team cannot be detached (403). Returns 400 if the shared team is not attached.",
"Detach a workspace shared team from an app. Only valid for apps in an Enterprise (workspace) organization — returns 400 otherwise. DESTRUCTIVE. Returns 400 if the shared team is not attached.",
{
owner_name: z.string().describe("Project (organization) name"),
platform: platformArg,
Expand Down
8 changes: 4 additions & 4 deletions src/tools/workspace-members.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ export function registerWorkspaceMemberTools(

server.tool(
"add_workspace_member",
"Invite/add a member to a workspace (enterprise). Requires a USER API token (not a workspace token). Set role='guest' for a guest member. Returns 400 if already a member, 403 if you lack invite permission or the plan's member seats are exceeded; SSO/flexible workspaces require an email address.",
"Invite/add a member to a workspace (enterprise) by email address. Requires workspace invite permission (a workspace API key is also accepted). Returns 400 if already a member, 403 if you lack invite permission or the plan's member seats are exceeded.",
{
workspace: workspaceArg,
user: z.string().describe("User email or username to add"),
user: z.string().describe("Email address of the user to invite (inviting an existing user by username is deprecated)"),
full_name: z.string().optional().describe("Optional full name for the invitee"),
role: z.string().optional().describe("Optional role; use 'guest' to invite a guest member"),
role: z.string().optional().describe("Optional role; 'guest' invites a guest member but is available only to certain partner workspaces"),
},
async (args) => {
const results = await client.addWorkspaceMember(args.workspace, args.user, {
Expand All @@ -48,7 +48,7 @@ export function registerWorkspaceMemberTools(

server.tool(
"remove_workspace_member",
"Remove a member from a workspace (enterprise) entirely. Requires a USER API token. DESTRUCTIVE. You cannot remove yourself (403); a non-member returns 400.",
"Remove a member from a workspace (enterprise) entirely. Requires workspace management permission (a workspace API key is also accepted). DESTRUCTIVE. You cannot remove yourself (403); a non-member returns 400.",
{ workspace: workspaceArg, user: z.string().describe("Member name or email to remove") },
async (args) => {
const results = await client.removeWorkspaceMember(args.workspace, args.user);
Expand Down
4 changes: 2 additions & 2 deletions src/tools/workspace-projects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export function registerWorkspaceProjectTools(

server.tool(
"create_project",
"Create a new project (organization) in a workspace (enterprise). Requires a USER API token. 'name' must be 3-28 chars (letters/digits/hyphens/underscores, starting and ending with a letter or digit) and GLOBALLY unique (400 if already in use). 'owner_name_or_email' must be an existing workspace member (404 otherwise). 403 if the plan's project limit is exceeded. display_name defaults to name.",
"Create a new project (organization) in a workspace (enterprise). Requires workspace management permission (a workspace API key is also accepted). 'name' must be 3-28 chars (letters/digits/hyphens/underscores, starting and ending with a letter or digit) and GLOBALLY unique (400 if already in use). 'owner_name_or_email' must be an existing workspace member (404 otherwise). 403 if the plan's project limit is exceeded. display_name defaults to name.",
{
workspace: workspaceArg,
owner_name_or_email: z.string().describe("Workspace member to set as the project owner (username or email)"),
Expand Down Expand Up @@ -52,7 +52,7 @@ export function registerWorkspaceProjectTools(

server.tool(
"add_project_member",
"Add a workspace member to a project (organization) as a direct project member. The user must already be a workspace member (401 otherwise); 403 if you lack permission. This is the project-level membership; to add to a specific team use add_member.",
"Add a workspace member to a project (organization) as a direct project member. The user must already be a workspace member (401 otherwise); 403 if you lack permission. This is the project-level membership; to add to a specific team use add_team_member.",
{
workspace: workspaceArg,
project: projectArg,
Expand Down
2 changes: 1 addition & 1 deletion src/tools/workspace-saml.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export function registerWorkspaceSamlTools(
): void {
server.tool(
"update_saml_certificate",
"Update a workspace's SAML IdP certificate from a local PEM file. Requires a USER API token with workspace ADMIN permission. CAUTION: uploading an incorrect certificate can break SSO login for the whole workspace. Returns 400 for an invalid certificate file, 403 if not an admin or the plan has expired, 404 if SAML is not configured.",
"Update a workspace's SAML IdP certificate from a local PEM file. Requires workspace admin permission (a workspace API key is also accepted). CAUTION: uploading an incorrect certificate can break SSO login for the whole workspace. Returns 400 for an invalid certificate file, 403 if not an admin or the plan has expired, 404 if SAML is not configured.",
{
workspace: z.string().describe("Workspace (enterprise) name"),
file_path: z.string().describe("Local path to the IdP X.509 certificate (PEM) file"),
Expand Down