Skip to main content
Glama

MSPStuff Switchboard

licences_and_billing

Read-only

Per client, Microsoft 365 seats against what is bought and what is billed, with any mismatches.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoHow many rows to list (default 10, at most 50).
clientNoA client name or its initials. Leave it out for the whole company.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.9/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes this is a safe, non-mutating operation, so the description does not need to carry the safety burden. It adds the substantive behavioral fact that the tool surfaces mismatches between purchased and billed seats, which is real context, but says nothing about result shape, freshness of the billing data, or how mismatches are presented.

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?

A single tight sentence with no filler, and the scoping ('per client') is front-loaded. It loses a point only because the elliptical, verbless phrasing reads like a column header rather than a complete statement of what the tool does.

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

Completeness3/5

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

With no output schema and no annotations beyond readOnlyHint, the description is the only source for what the tool returns, yet it never states the output form (table, per-client rows, mismatch flags). For a reporting tool this leaves a meaningful gap, though the domain and scope are at least clear enough to invoke it correctly.

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?

Schema description coverage is 100%, so both parameters (limit and client) are fully documented in the schema, including defaults and the max of 50. The description's 'per client' phrasing adds nothing beyond what the client parameter description already says about omitting it for the whole company.

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

Purpose3/5

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

The fragment names a specific domain (Microsoft 365 seat counts compared against purchased and billed quantities, plus mismatches), which clearly separates it from siblings like patch_status or security_posture. However, it is a noun phrase with no verb — an agent cannot tell whether this returns a report, a list, or a reconciliation summary. Purpose is inferable but not stated.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no mention of alternatives among the seven sibling tools, and no exclusions. The only scoping hint ('per client') is implicitly restated from the client parameter rather than framed as usage guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.