Skip to main content
Glama
johsem

Semaphore UI MCP server

by johsem

list_available_project_roles

Read-onlyIdempotent

Retrieve available roles for a Semaphore project to determine which permissions can be assigned; results depend on edition, license, and access rights.

Instructions

list available project roles. Availability depends on Semaphore edition, license, and permissions; some Community routes return 404 or empty lists. GET /project/{project_id}/roles/all.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive, yet the description adds real behavioral context beyond them: results vary by Semaphore edition and license, and some routes legitimately return 404 or empty lists. That failure-mode disclosure is exactly the kind of context annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then the caveat, then the endpoint. Slight redundancy between "available" and "Availability" but nothing extraneous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema and strong annotations, the description covers the main thing an agent needs to know: that empty/404 responses are normal and not errors. It stops short of describing what fields each returned role contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, project_id, with 0% schema description coverage, but its meaning is obvious from the name and the endpoint path shown in the description. No extra semantics (validation, scope) are added, so it sits at adequate rather than helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ("list available project roles") plus the underlying endpoint GET /project/{project_id}/roles/all, which makes the read-catalog nature explicit. It does not, however, distinguish itself from sibling list_project_roles or list_global_roles, which an agent would have to infer from the "available" wording alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context about when results may be missing (edition/license/permission constraints, Community routes returning 404 or empty lists), which implies when not to trust the output. But it never states when to choose this over list_project_roles, get_project_role, or list_global_roles, leaving sibling selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools