Skip to main content
Glama

save_client_profile

DestructiveIdempotent

WHEN: no profile was found by resolve_client_profile and the user wants one created (or updated) for their client, so future release-note requests never need v1/v2/customModelIds again. Creates or updates a Client Profile keyed by the CURRENT caller's ADO org/project (auto-detected from MCP headers -- not a parameter). Only the fields you pass are changed; omit a field to leave it untouched on an existing profile.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesFriendly client name, e.g. "Acme Corp".
customModelIdsNoComma-separated custom model id(s) from the Custom Models tab -- the client's own extensions AND any separate ISV vendor models.
targetVersionTagNoThe version being evaluated for upgrade, e.g. "10.0.2645.32".
currentVersionTagNoThe client's current live D365FO version tag, e.g. "10.0.2527.109".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already signal mutating, idempotent, and destructive behavior; the description adds valuable details: the profile key is derived from MCP headers rather than a parameter, and the tool performs a partial upsert (only passed fields change, omitted fields remain untouched). It stops short of saying what the call returns or clarifying null-vs-omitted field semantics.

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

Conciseness5/5

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

The description is front-loaded with the key WHEN condition, followed by a compact behavioral summary. Every sentence earns its place; the rationale about future release-note requests is brief and adds context rather than padding.

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 four-scalar-parameter upsert with no output schema, the description covers the main decision, keying, and partial-update behavior well. The only notable gap is that it does not describe the return value or success signal, and it leaves the null-clearing behavior ambiguous.

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?

Schema coverage is 100%, so the schema carries the baseline. The description adds meaning by explaining that the org/project key is not a parameter and that omitted parameters are left untouched on update. The nullable/default null parameters could have been clarified (does passing null clear a field?), which prevents a 5.

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?

The description uses a specific verb ('Creates or updates') plus resource ('Client Profile') and explicitly names the triggering condition involving resolve_client_profile. It also distinguishes its scope by noting the profile is keyed to the caller's ADO org/project, so it is not a generic save utility.

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?

It opens with an explicit 'WHEN' condition: no profile was found by resolve_client_profile and the user wants one created or updated. This clearly routes the agent to the tool and implies resolve_client_profile is the retrieval counterpart, making the choice between siblings unambiguous.

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.