listAssignablePrincipals
Server-side searchable, paginated list of USERS and TEAMS that can be assigned as the owner of an improvement/task in a project — and the canonical source for resolving a person's user_id when @-mentioning them in a document. Returns two arrays — users (with user_id, display_name, email, avatar_u...
This record as markdown: /tools/io-stablebaseline-sb/listassignableprincipals.md
What listAssignablePrincipals does on Stable Baseline
AI agents call listAssignablePrincipals to retrieve information from Stable Baseline without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | — | Optional ILIKE search filter — matched against display_name + email (users) and team name (teams). |
kind | string | — | Filter to one principal kind. Default 'all' returns users first then teams. |
limit | number | — | Max results per page (1-100, default 20). |
offset | number | — | Pagination offset. |
projectId | string | Yes | Project to scope assignees to. Required. |
workspaceId | string | — | Workspace UUID. Optional but recommended — when present, the result includes ALL org members; when omitted, only direct project grants + team-expanded users are |
Parameters from the server's own tool schema.
Why listAssignablePrincipals is rated Low
This tool retrieves and searches data (users and teams) without modifying, deleting, or executing any operations. It serves as a lookup/query function to populate parameters for other tools. The severity is low because exposure of this list poses minimal risk — even if misused, it only returns informational data about organization members and teams without enabling further harmful actions by itself.
From the tool's definition Tool is described as a 'searchable, paginated list' that 'returns two arrays' of users and teams. It is explicitly stated as 'the canonical source for resolving a person's user_id' when needed for assignment operations.
Attacks that exploit this kind of access
The rule that runs listAssignablePrincipals safely
PolicyLayer is an MCP gateway: it sits between your AI agents and Stable Baseline, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For listAssignablePrincipals, this is the rule to start with:
listAssignablePrincipals is read-only, so it stays allowed. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect Stable Baseline, apply this rule, and every listAssignablePrincipals call is checked against it from then on.
Questions about listAssignablePrincipals
Server-side searchable, paginated list of USERS and TEAMS that can be assigned as the owner of an improvement/task in a project — and the canonical source for resolving a person's user_id when @-mentioning them in a document. Returns two arrays — users (with user_id, display_name, email, avatar_url, has_explicit_permission) and teams (with team_id, name, member_count, has_explicit_permission). Sources: project-level grants + workspace members + organization members + members of teams granted access. Use BEFORE: (1) updateImprovement/updateTask when you need an owner_id (kind='user') or owner_team_id (kind='team'); (2) inserting a <!-- REFERENCE: {"type":"user","id":"…","label":"…"} --> mention in document content via createDocument / editDocument / findAndReplaceTextInDocument. Supports q for ILIKE search on names/emails (users) or team names. Pass kind='user' or kind='team' to scope to a single section, or 'all' (default) for both. Pagination via limit (1-100, default 20) + offset. It is categorised as a Read tool in the Stable Baseline MCP Server, which means it retrieves data without modifying state.
listAssignablePrincipals accepts 6 parameters: q, kind, limit, offset, projectId, workspaceId. Required: projectId. The full parameter table on this page comes from the server's own tool schema.
Register the Stable Baseline MCP server in PolicyLayer and add a rule for listAssignablePrincipals: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Stable Baseline. Nothing to install.
listAssignablePrincipals is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the listAssignablePrincipals rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for listAssignablePrincipals. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
listAssignablePrincipals is provided by the Stable Baseline MCP server (https://api.stablebaseline.io/functions/v1/cloud-serve/mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
More on Stable Baseline, and thousands of servers like it.
This server
Across the catalogue