Skip to main content
Glama
entraadm-mcp

entraadm-mcp

by shigechika

list_subscriptions

Lists Azure subscriptions visible to the current credential in the default tenant, providing the IDs or names needed for VM backup status and policy discovery.

Instructions

The Azure subscriptions this credential can see, as ARM lists them.

Azure Resource Manager in the DEFAULT tenant only, also when several tenants are configured (ENTRAADM_CONFIG).

Read-only (GET /subscriptions; needs no RBAC beyond being able to see a subscription at all). The discovery anchor for vm_backup_status and vm_backup_policies: both accept a subscription id or display name from this list. An empty list with auth working means no Reader role has been granted anywhere yet. capped marks a listing cut short by the page budget.

Input Schema

NameRequiredDescriptionDefault
max_pagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.3.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it declares read-only semantics, the underlying call (GET /subscriptions), the RBAC prerequisite (nothing beyond visibility), the tenant boundary (DEFAULT tenant only even with multiple tenants configured), and the meaning of the `capped` signal when results are truncated. That is unusually rich behavioral disclosure.

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?

The core statement and scope constraint come first, followed by a tight sequence of safety, routing, diagnostics, and the `capped` note — every element earns its place. The parenthetical ``ENTRAADM_CONFIG`` aside adds a bit of noise for an agent that cannot set env vars mid-call.

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?

No annotations and no output schema, so the description must cover behavior and returns; it does cover read-only status, tenant scope, truncation, and the empty-result case. What it omits is the shape of a returned subscription (id vs display name fields), which matters because downstream tools accept either form.

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

Parameters4/5

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

Only one optional parameter exists and the schema documents none of it (0% coverage), so the description must compensate. It does partially by explaining the "page budget" concept behind `capped`, which an agent can connect to `max_pages`, but it never states what `max_pages` does, its default of null, or what value to pass to avoid truncation.

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

Purpose5/5

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

States a concrete verb/resource ("The Azure subscriptions this credential can see, as ARM lists them") and scopes it to the default tenant. No sibling in the list enumerates subscriptions, and the description explicitly names the two tools this result feeds, so an agent can place it precisely.

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

Usage Guidelines5/5

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

Explicitly frames the tool as "the discovery anchor for vm_backup_status and vm_backup_policies," telling the agent to call this first when those tools need a subscription id or display name. It also supplies interpretation guidance (an empty list with working auth means no Reader role was granted) and the tenant scope caveat, which is exactly the when/when-not context needed.

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