Skip to main content
Glama
mafzaal

Dynamics 365 Finance & Operations MCP Server

by mafzaal

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.8

  • Disambiguation4/5

    Most tools have distinct purposes, with clear separation between entity operations, profile management, metadata queries, and document downloads. However, there is some overlap: d365fo_test_connection and d365fo_test_profile_connection are very similar, and the multiple download tools (e.g., d365fo_download_srs_report vs. specific invoice tools) could cause confusion about which to use for a given document type.

    Naming Consistency5/5

    All tools follow a consistent d365fo_verb_noun naming pattern with snake_case throughout. The verbs are descriptive and appropriate (e.g., create, get, update, download, search), and the nouns clearly indicate the target resource (e.g., entity_record, profile, sync_progress). No deviations or mixed conventions are present.

    Tool Count2/5

    With 49 tools, the count is excessive for a single server, making it overwhelming for agents to navigate. While D365FO is a complex system, the toolset could be more consolidated (e.g., merging similar download tools or profile operations). This many tools will likely lead to confusion and inefficiency in agent workflows.

    Completeness5/5

    The toolset provides comprehensive coverage for D365FO operations, including full CRUD for entities and profiles, metadata synchronization, document downloads, search capabilities, and system diagnostics. There are no obvious gaps; agents can perform end-to-end workflows from data querying to report generation and system management.

  • Average 3.7/5 across 49 of 49 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 1 of 1 community issues answered or closed in the last 6 months
    • 36 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are present, so the description carries the full burden. It does not disclose behavioral traits such as authentication requirements, error handling (e.g., if label not found), or whether the operation is read-only. Minimal transparency.

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

    Conciseness3/5

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

    The description is concise but includes a list of arguments in a structured format. However, the inaccuracy of listing a missing parameter reduces reliability.

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

    Completeness2/5

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

    Given the simplicity (3 params, no output schema), the description should provide a complete picture. It lacks details on return format, error behavior, and has a parameter mismatch, making it insufficiently complete.

    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?

    The description adds meaning to parameters (e.g., example for labelId) and explains language and profile, but it mentions a parameter 'fallbackToEnglish' that is not in the schema, causing inconsistency. With 0% schema description coverage, the description provides some but incomplete semantic value.

    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?

    The description clearly states 'Get label text by label ID', indicating the verb and resource. The name and single vs batch retrieval distinguish it from sibling tool d365fo_get_labels_batch, though explicit differentiation is missing.

    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?

    No guidance is provided on when to use this tool versus alternatives (e.g., batch retrieval). The description lacks context for appropriate usage.

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

  • Behavior2/5

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

    With no annotations, the description must explicitly state side effects. It describes the operation as getting configuration, implying a read-only action, but does not confirm it is safe or non-destructive. No behavioral traits beyond the core function are disclosed.

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

    Conciseness3/5

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

    The description is extremely concise at 10 words, which is efficient but lacks essential context. It front-loads the purpose but does not earn its brevity due to missing behavioral details and usage guidance.

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

    Completeness2/5

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

    Given no output schema, no annotations, and a simple parameter set, the description fails to explain what the returned dictionary contains or what 'feature status' entails. It is incomplete for an agent to infer output structure or error conditions.

    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?

    The tool has zero parameters, and the input schema fully covers the parameter space (100% coverage). The description adds no parameter information, which is acceptable as there are none. Per the baseline for 0 parameters, a score of 4 is appropriate.

    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?

    The description clearly states the tool retrieves server configuration and feature status, using the verb 'Get' and specifying the resource. However, it does not differentiate from sibling tools like get_environment_info or get_server_performance, which may also query server-related settings.

    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?

    No guidance is provided on when to use this tool over alternatives. There is no mention of context, prerequisites, or when not to use it, leaving the agent without decision support.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only states it tests a connection and returns a JSON string, but does not mention side effects (e.g., whether any state is modified), authentication requirements, or error behavior.

    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 description is short and front-loaded with the purpose, followed by structured Args and Returns sections. It is concise, though it could include more detail within its brevity.

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

    Completeness2/5

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

    The description fails to provide complete context: no output schema exists, and the description does not specify the structure of the returned JSON, possible errors, or what constitutes a successful/failed test. For a test connection tool, this completeness gap is significant.

    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?

    The input schema has 0% description coverage, so the description adds meaning by stating the profile parameter is optional and uses a default if not specified. This adds value beyond the schema, but no further details on valid values or format.

    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?

    The description clearly states the tool tests a connection to a D365FO environment, using a primary verb and resource. However, it does not explicitly distinguish itself from the sibling tool d365fo_test_profile_connection, which likely tests a specific profile connection.

    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?

    No guidance on when to use this tool versus alternatives, such as d365fo_test_profile_connection. It does not provide context for when or when not to use it.

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

  • Behavior2/5

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

    With no annotations, description fails to disclose side effects, permissions, or error behavior. Only states it executes an action, but not outcomes or risks.

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

    Conciseness3/5

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

    Description uses a docstring format with parameter list and return note, but it is a single paragraph without front-loading the most critical information.

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

    Completeness2/5

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

    Given 6 parameters, nested objects, and no output schema, the description is insufficient. Does not explain return value format, error handling, or prerequisites.

    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 coverage is 0%, but description lists each parameter with brief explanations. Lacks details on how key_fields and key_values interact for entity-bound actions.

    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 clearly states it executes an OData action method in D365 Finance & Operations, which is distinct from sibling tools like d365fo_search_actions (search) and entity CRUD tools.

    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?

    No guidance on when to use this tool vs alternatives, no mention of when-not-to-use, and no context about bound vs unbound actions.

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

  • Behavior2/5

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

    No annotations are provided, and the description fails to disclose behavioral traits such as whether cloning overwrites existing profiles, permissions required, or error handling. The return type is vaguely described as a dictionary.

    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 description is concise and well-structured, with the main action in the first line. The Args/Returns section is redundant but not overly long. A minor improvement would be removing redundancy.

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

    Completeness2/5

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

    Given the tool's moderate complexity (cloning with optional modifications) and the lack of behavioral details in the description, it is incomplete. The output schema exists but is not leveraged, and key aspects like conflict resolution are omitted.

    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?

    With 0% schema coverage, the description adds basic meaning for each parameter (e.g., 'Name of the profile to clone'). However, it does not provide additional details like constraints or effects beyond what the schema titles imply.

    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 clearly states 'Clone an existing D365FO environment profile with optional modifications,' using a specific verb and resource. It distinguishes itself from sibling tools like create_profile and update_profile, which perform different operations.

    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?

    The description does not provide any guidance on when to clone vs. create or update a profile. No alternative tools are mentioned, nor are conditions for using this tool specified.

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

  • Behavior2/5

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

    No annotations provided, and description only mentions return type (dictionary) without discussing side effects, rate limits, or other behaviors.

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

    Conciseness3/5

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

    Concise docstring format, but the inclusion of a parameter not in the schema reduces clarity.

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

    Completeness2/5

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

    No output schema, and description only states returns dictionary without specifying structure. Missing parameter discrepancy reduces completeness.

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

    Parameters2/5

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

    Adds partial meaning to parameters but includes a parameter 'fallbackToEnglish' not present in the input schema, causing confusion. Schema coverage is 0%, so description should compensate but fails.

    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 clearly states the tool retrieves multiple labels in a single request, differentiating it from the sibling tool d365fo_get_label which retrieves a single label.

    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?

    No explicit guidance on when to use this tool over alternatives. The batch nature implies use for multiple labels, but no when-not or alternative references.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It implies a read operation but does not explicitly state that it is non-destructive or clarify permissions, rate limits, or other behavioral aspects.

    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 description is concise, with a clear purpose first, followed by parameter and return details. No unnecessary words, though the Args section could be formatted more cleanly.

    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?

    Given no output schema, the description lists the expected fields (name, version, etc.) and states the return type as dictionary. It is fairly complete for a simple retrieval tool, though the exact dictionary structure could be more explicit.

    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?

    Despite 0% schema description coverage, the description explains the profile parameter's purpose and default behavior (optional, uses default if not specified). This adds value beyond the schema's default value.

    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?

    The description clearly states the tool retrieves a list of installed modules with specific details like name, version, module ID, publisher, and display name. It is a specific verb (Get) and resource (installed modules), but does not explicitly differentiate from sibling tools like d365fo_get_entity_record.

    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?

    No guidance on when to use this tool versus alternatives. The description only states what it does, with no context on use cases or when not to use it.

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

  • Behavior2/5

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

    No annotations provided, so description must carry full burden. It discloses it returns a dictionary with sync history but lacks detail on read-only nature, authentication requirements, rate limits, or behavior when no sessions exist. Mentions only completed sessions, which is helpful but insufficient.

    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?

    Extremely concise: one sentence for purpose, clearly labeled Args and Returns. Every sentence is necessary with no fluff. Excellent front-loading of key information.

    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?

    For a simple tool with 2 parameters and no output schema, description explains parameters and return type but is vague on return content (just 'dictionary with sync history'). Missing details on fields, pagination, or error handling. Adequate but has gaps.

    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 0%, so description adds meaning. Explains limit with default and max (100), profile with default and optional. Provides constraints and usage context beyond schema types and defaults.

    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?

    Description clearly states it gets history of completed sync sessions with status and statistics. The verb 'get' and resource are specific, but does not explicitly differentiate from sibling d365fo_list_sync_sessions, which might be similar.

    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?

    No explicit guidance on when to use this tool versus alternatives. Does not mention exclusions, prerequisites, or compare to sibling tools like d365fo_get_sync_progress or d365fo_list_sync_sessions.

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

  • Behavior2/5

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

    The description says 'reset' implying a destructive action but does not specify consequences, permissions required, or side effects. Since no annotations are present, the description should have provided more behavioral detail.

    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 very concise with two short sentences. No wasted words; every sentence adds value.

    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?

    Given no parameters, no output schema, and simple semantics, the description is adequate but lacks context like when resetting is appropriate, if it requires a connection, or what happens during reset.

    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?

    There are no parameters, and schema coverage is 100%. The description does not need to add meaning for params, but it also does not confirm the absence of inputs. A baseline of 4 is appropriate.

    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?

    The description clearly states it resets server performance statistics, which is a specific verb+resource. However, it does not differentiate from sibling tools like d365fo_get_server_performance or d365fo_get_database_statistics, so it's not a 5.

    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?

    No guidance is provided on when to use this tool vs. alternatives. There is no mention of prerequisites, conditions, or exclusions.

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

  • Behavior2/5

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

    Minimal behavioral info beyond creation. No disclosure of side effects, idempotency, or required permissions. No annotations to supplement.

    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?

    Front-loaded with purpose, then structured Args list. Concisely describes parameters, though some text overhead is acceptable. No fluff.

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

    Completeness2/5

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

    Lacks details on return value fields, error handling, and validation. No mention of constraints like uniqueness or required fields in data. Not complete for a create tool with moderate complexity.

    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?

    Adds meaning to all 4 parameters with examples (entity_name), clarifies data as 'Record data containing field names and values', and explains return_record and profile. Compensates for 0% schema description coverage.

    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?

    Clear verb+resource: 'Create a new record in a D365 Finance & Operations data entity.' Distinguishes from siblings like get, update, delete by specifying creation.

    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?

    No guidance on when to use this tool vs. alternative tools (get, update, delete). Does not mention prerequisites or context.

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

  • Behavior2/5

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

    No annotations provided. The description implies a write operation (creating a file) but does not disclose side effects, required permissions, or safety aspects beyond the basic action.

    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 extremely concise with a clear one-line summary, followed by structured Args and Returns sections. No superfluous content.

    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?

    Given the existence of an output schema, the description's return info is minimal but acceptable. Missing details about file format, overwrite behavior, and error handling, but adequate for a simple export tool.

    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?

    The description includes an Args section that adds the phrase 'Path where to export' to filePath, providing some context beyond the schema. However, schema coverage is reported as 0% likely because the description repeats schema info without deeper semantics.

    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 clearly states the tool exports all D365FO environment profiles to a file, using a specific verb and resource. It distinguishes itself from siblings like import_profiles, list_profiles, etc.

    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?

    No guidance on when or when not to use this tool, nor alternatives. The description only states what it does without context for selection.

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

  • Behavior3/5

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

    With no annotations, the description bears full transparency burden. It correctly indicates a read operation ('Get list'), but does not disclose any additional behavioral traits such as authentication needs, performance implications, or return format beyond a vague 'Dictionary with profile names'.

    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 description is very short and to the point, with two efficient sentences. It could be slightly more structured, but for a simple no-parameter tool, it is appropriately concise.

    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?

    Given the presence of many sibling tools related to profiles, the description lacks context about how this tool fits in. It does not clarify its uniqueness or relationship to 'd365fo_list_profiles'. The output schema exists but its details are not visible; the description's vague return type is marginally adequate.

    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?

    The input schema has no parameters, so the description cannot add value beyond the schema. Baseline score of 4 is appropriate as there are no parameters to explain.

    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?

    The description clearly states the tool retrieves all D365FO environment profile names, which is a specific operation. However, the sibling tool 'd365fo_list_profiles' also deals with profiles and the description does not differentiate between them, slightly reducing clarity.

    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?

    No guidance is provided on when to use this tool over alternatives like 'd365fo_list_profiles' or others. The description lacks context for appropriate usage.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the full burden. It mentions downloading and caching metadata but does not disclose side effects (e.g., whether it's destructive), idempotency, rate limits, or auth requirements. The return value is vaguely described.

    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 description is clear and well-structured with a summary paragraph followed by an Args section. It is slightly verbose, as some details could be integrated, but overall it is efficient and front-loaded with the core purpose.

    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?

    The description adequately explains parameters but lacks details on the return value (only says 'Dictionary with sync session details') and does not mention prerequisites, error scenarios, or relationship to other sync tools. Given the absence of output schema, more context is needed.

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

    Parameters5/5

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

    The schema has 0% description coverage, so the description compensates by explaining each parameter in detail, including the strategy options and their meanings, the global_version_id fallback behavior, and profile optionality. This adds significant value beyond the schema.

    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?

    The description clearly states the tool starts a metadata synchronization session and returns a session ID. It lists the types of metadata cached. However, it does not differentiate from sibling sync tools like d365fo_cancel_sync or d365fo_get_sync_progress.

    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?

    No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as needing an active connection, or when not to use it (e.g., if a sync is already running).

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

  • Behavior2/5

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

    No annotations provided, so the description must carry full behavioral transparency. It indicates mutation ('update') and optional return via return_record, but omits details on error handling, idempotency, concurrency, or what happens if the record does not exist. For a mutation tool, this is insufficient.

    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 description is concise: a one-line summary followed by structured Args and Returns. It is front-loaded with the core purpose. However, it could be slightly more compact by omitting docstring conventions (Args, Returns headings) or adding a sentence on typical usage.

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

    Completeness2/5

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

    Given no annotations, no output schema, and 6 parameters with nested objects, the description could be more complete. It lacks details on return value format ('Dictionary with update result' is vague), error behavior, and required permissions. The sibling list includes many operations, but this tool's description does not help an agent decide when to invoke it.

    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 description coverage is 0%, but the description provides meaningful explanations for all parameters. For example, entity_name is defined as 'public collection name or entity set name' with examples. key_fields and key_values are described as for composite keys. This adds value beyond the schema field names.

    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 clearly states 'Update an existing record in a D365 Finance & Operations data entity.' This uses a specific verb ('update') and resource ('existing record in D365 FO data entity'), distinguishing it from sibling tools like create_entity_record and delete_entity_record.

    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?

    The description lacks guidance on when to use this tool vs alternatives. It does not mention that the entity must already exist, nor does it contrast with create (for new records) or delete. No context on prerequisites or typical use cases.

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

  • Behavior3/5

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

    With no annotations provided, the description explains the keyword-based search behavior and the multi-search logic. It does not disclose performance characteristics, case sensitivity, or what happens with empty results.

    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 description is front-loaded with the main purpose and then provides detailed usage instructions. While slightly verbose, every section adds useful context, and the structure is well-organized.

    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?

    Given the tool's complexity and lack of output schema, the description adequately covers the search logic. However, it omits details about return values beyond a vague 'dictionary', and does not discuss error handling or edge cases.

    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 0%, so the description must compensate. It provides good detail for the required 'pattern' parameter and limited guidance for 'limit', but other parameters like entity_category and is_read_only get only minimal descriptions.

    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?

    The description clearly identifies the tool as searching for D365 F&O data entities via keyword-based search. However, it does not explicitly differentiate from the sibling tool d365fo_query_entities, which may cause confusion.

    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?

    Provides detailed instructions on when to use the tool, including a multi-search strategy for multi-word queries. However, it lacks guidance on when not to use it and does not mention alternative tools like d365fo_query_entities.

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

  • Behavior4/5

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

    The description discloses that it 'automatically invalidates all cached client connections,' a behavioral trait beyond the name. No annotations are provided, so the description carries full burden; it adds meaningful context about side effects and return value.

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

    Conciseness3/5

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

    The description includes a parameter list and return type, but the parameter list largely duplicates schema information. It is moderately concise but could be shortened by omitting parameter names already present in the schema.

    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?

    For a tool with 12 parameters and a nested object, the description covers purpose, a key behavioral detail (cache invalidation), and return structure. However, it lacks explanations for most parameters, leaving the agent without essential context for many inputs.

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

    Parameters2/5

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

    Schema description coverage is 0%. The description lists parameter names but only explains the 'credentialSource' parameter in detail. The other 11 parameters have no additional semantics beyond what the schema provides (type, default).

    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 states 'Update an existing D365FO environment profile with full configuration options,' clearly indicating the verb (update) and resource (profile). This distinguishes it from siblings like create_profile and delete_profile.

    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?

    The description provides no guidance on when to use this tool versus alternatives like d365fo_create_profile or d365fo_clone_profile. It does not mention prerequisites, limitations, or when not to use it.

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

  • Behavior2/5

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

    No annotations are provided, and the description only says 'Delete a record,' implying mutability but offering no details on side effects, permanence, required permissions, or error conditions. The return type is vaguely described as 'dictionary with deletion result.'

    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 concise, with a clear introductory sentence followed by structured Args/Returns sections. No unnecessary words or redundancy.

    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?

    The description covers parameter meanings and return type, but given no annotations or output schema, it lacks completeness on error handling, authentication needs, and edge cases (e.g., deleting non-existent records). It is adequate for basic usage but not fully comprehensive.

    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?

    The input schema lacks descriptions (0% coverage), but the description's Args section provides meaningful explanations for all four parameters, including examples for entity_name and clarifying composite keys. This adds significant value beyond the schema's titles.

    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 clearly states 'Delete a record from a D365 Finance & Operations data entity,' specifying the action and resource. It distinguishes itself from sibling tools like d365fo_create_entity_record and d365fo_update_entity_record, and there is no other delete record tool.

    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?

    The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. It simply states what it does without context on appropriate use cases.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It implies a read operation but does not disclose safety, permissions, or side effects, which is insufficient for a tool with zero annotation coverage.

    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 very concise, with a clear purpose followed by structured Args and Returns sections. Every line adds value with no redundancy.

    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?

    Adequately covers purpose and parameter but lacks details on the return value content (e.g., what specific 'environment information' is included) and potential errors. For a simple read tool, it is minimally sufficient.

    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?

    With 0% schema description coverage, the description adds value by explaining that the 'profile' parameter is optional and defaults to 'default', which is not evident from the schema alone.

    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 clearly states the tool retrieves D365FO environment information and version details, with a specific verb and resource. It is distinct from sibling 'get_' tools like get_server_config or get_entity_schema.

    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?

    No explicit guidance on when to use this tool versus alternatives. The description only states what it does, leaving the agent to infer usage context without differentiation.

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

  • Behavior2/5

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

    No annotations are provided, and the description only states 'Get details', which is minimal. It does not disclose any behavior beyond the basic read operation, such as error handling or required permissions.

    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 description is very short and to the point, with no unnecessary words. It includes an Args/Returns structure, though minimal. Appropriate for a simple tool.

    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?

    Given the output schema exists and the tool is simple with one parameter, the description covers the essential purpose and parameter. It lacks error information but is otherwise complete for this context.

    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?

    The schema has 0% description coverage, but the description adds the meaning of profileName as 'Name of the profile to retrieve'. This provides basic semantics, though could be more detailed.

    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 'Get details of a specific D365FO environment profile' clearly states the verb (Get) and resource (profile), and distinguishes it from sibling tools like list_profiles, search_profiles, and create_profile.

    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?

    No explicit guidance on when to use this tool versus alternatives. The description implies use for retrieving a single profile by name, but lacks when-not-to-use or alternative suggestions.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. It states it returns progress info but does not disclose side effects (assumed read-only), auth needs, or rate limits. Could be more transparent about behavioral traits.

    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?

    Description is short, front-loaded with purpose, and has clear Args and Returns sections. Some redundancy possible, but generally efficient.

    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?

    Given no output schema, the description adequately explains the return content (phase, completion percentage, etc.). It covers both parameters. Could better differentiate from siblings, but sufficient for this simple tool.

    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?

    The description explains session_id as the ID of the sync operation and profile as optional with default usage, adding context beyond the schema titles. Good clarification for a 0% schema coverage.

    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 clearly states it gets detailed progress information for a specific sync session, listing specific data fields. This distinguishes it from siblings like list_sync_sessions and get_sync_history.

    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?

    No guidance on when to use this tool vs alternatives. Does not mention prerequisites or when not to use. Only says it requires session_id.

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

  • Behavior2/5

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

    No annotations are present, so the description must convey behavioral traits. It only states that the tool imports profiles and returns a dictionary, lacking details on side effects (e.g., overwrite behavior when overwrite is false), error handling, file format expectations, or any destructive potential.

    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 concise, with a one-line purpose followed by structured Args and Returns sections. Every sentence is necessary and adds value.

    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?

    For a 2-parameter tool with no annotations and an existing output schema, the description is fairly complete but misses details such as the file format, default overwrite behavior (though schema shows default false), and error handling. The output description is minimal.

    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?

    Since the input schema has no descriptions (0% coverage), the description adds meaningful explanations: filePath is the file path, overwrite indicates whether to overwrite existing profiles. This compensates for the schema gap, though it does not specify file format or restrictions.

    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 clearly states the tool imports profiles from a file, using a specific verb ('Import') and resource ('D365FO environment profiles'). This distinguishes it from sibling tools like export_profiles (export) and create_profile (single profile creation).

    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?

    No guidance is provided on when to use this tool versus alternatives such as create_profile or export_profiles. There is no mention of prerequisites, when not to use it, or context for bulk import vs. single creation.

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

  • Behavior2/5

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

    No annotations are present, so the description must fully disclose behavior. It states it validates and returns a dictionary, but does not specify if the operation is read-only, whether it connects to the environment, what side effects may occur, or what the validation result contains beyond being a dictionary. This lack of detail limits an agent's ability to predict tool behavior.

    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 concise with a clear structure: purpose sentence followed by Args and Returns sections. Every sentence is essential, and the information is front-loaded, making it easy for an agent to quickly understand the tool.

    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?

    Given the tool has one parameter and an output schema (though not detailed), the description provides the basics. However, it lacks context about what validation entails, whether the profile must exist, or potential errors. This is adequate but not comprehensive for a validation tool that could have nuanced behavior.

    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?

    The description adds basic meaning to the single parameter 'profileName' by calling it 'Name of the profile to validate', which is more informative than the schema's title 'Profilename'. However, it does not provide additional details like case sensitivity or format, and with 0% schema description coverage, the contribution is moderate.

    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 clearly states 'Validate a D365FO environment profile configuration', using a specific verb and resource. Among sibling tools like create, delete, get, or test_profile_connection, this one uniquely focuses on validation, making its purpose distinct.

    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 implies validation of a profile configuration, but does not explicitly state when to use this tool versus alternatives such as test_profile_connection or get_profile. No guidance on prerequisites or when not to use it is provided.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. It describes parameters and return but does not disclose side effects (likely read-only), authentication requirements, or error behavior. Lacks transparency for a schema retrieval tool.

    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?

    Well-structured with Args and Returns sections; purpose is front-loaded. While efficient, the description is slightly longer than necessary, but each sentence adds value.

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

    Completeness2/5

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

    No output schema and description only says 'Dictionary with entity schema' — vague. Does not explain return structure, possible errors, or handling of invalid entity names. Incomplete for a tool with 5 parameters and no output schema.

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

    Parameters5/5

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

    Schema description coverage is 0%, so description must compensate. It provides detailed, clear explanations for all 5 parameters (entityName, include_properties, resolve_labels, language, profile), including examples and defaults, adding value beyond the raw schema.

    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?

    Clearly states 'Get the detailed schema for a specific D365 F&O data entity' — a specific verb+resource. It distinguishes from sibling tools like d365fo_get_database_schema and d365fo_get_table_info by focusing on entity schema.

    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?

    Explains parameters but does not give guidance on when to use this tool versus alternatives like d365fo_get_database_schema or d365fo_get_entity_record. No explicit when-not or context for selection.

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

  • Behavior2/5

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

    No annotations are provided, so the description must cover behavioral traits. It only states the return type (dict) without mentioning if the operation is read-only, safe, or has any side effects. The agent cannot infer that this is a non-destructive call.

    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 extremely concise: two short sentences that front-load the purpose. There is no redundant or irrelevant text, and every word earns its place.

    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?

    Given zero parameters, no annotations, and no output schema, the description is adequately specific about the resource and return type. However, it lacks details on the structure of the performance data, which could be helpful but is not critical for such a simple tool.

    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?

    With zero parameters, the schema provides all necessary information. The description adds no additional meaning about parameters, but the baseline for 0 parameters is 4, and no extra value is needed.

    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 clearly states it retrieves server performance statistics and health metrics, using the verb 'Get' with a specific resource. It distinguishes from siblings like 'get_server_config' and 'get_database_statistics' by focusing on performance.

    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?

    No guidance on when to use this tool instead of alternatives. It does not mention that it is for monitoring performance vs. configuration or diagnostic purposes, nor does it provide any prerequisites or context for invocation.

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

  • Behavior2/5

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

    No annotations are provided, so the description bears full burden for behavioral disclosure. It only states 'Test connection' with no information about side effects, network calls, permissions, or safety. The return is vaguely described as 'dictionary with connection test result', but given an output schema exists, the description adds minimal transparency.

    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 exceedingly concise, consisting of a one-line purpose followed by a brief Args/Returns format. Every sentence adds value, and there is no redundancy. It is front-loaded with the primary purpose.

    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?

    Given the tool's simplicity (one parameter, output schema present), the description covers the essential purpose and parameter. However, the lack of behavioral context (e.g., connection type, potential errors) reduces completeness slightly. The existence of an output schema likely mitigates the need for return value details.

    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?

    With schema coverage at 0% (no parameter descriptions in the schema), the description compensates by explaining the required parameter 'profileName' as 'Name of the profile to test'. This adds meaningful context beyond the schema's type definition.

    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 clearly states the tool tests a connection for a specific D365FO environment profile. The verb 'test' and resource 'profile connection' are specific, and the tool name reinforces this purpose. It distinguishes from sibling tools like d365fo_test_connection by explicitly mentioning 'profile'.

    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?

    The description does not provide any guidance on when to use this tool versus alternatives like d365fo_test_connection or d365fo_validate_profile. There is no mention of prerequisites, context, or when not to use it. The agent gets no help in decision-making.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains the credential source options and basic operation, but omits side effects (e.g., whether the profile becomes active immediately), required permissions, error behavior, or the structure of the return dictionary. For a tool with no annotations, this level of transparency is adequate but not exhaustive.

    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 description is well-structured with an Args list and Returns section, making it easy to scan. However, it is lengthy and repeats some default values already in the schema. Each sentence is justified, but some redundancy could be trimmed. The front-loading of the main purpose is effective.

    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?

    Given the complexity (13 parameters, credential configuration) and the existence of an output schema, the description covers inputs well but lacks detail on the output beyond 'Dictionary with creation result'. It does not address error scenarios, prerequisites (e.g., authentication), or post-creation state. For a tool creating a critical resource, more contextual completeness is warranted.

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

    Parameters5/5

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

    The input schema has zero description coverage, leaving the description to fully document each parameter. The Args section thoroughly explains all 13 parameters, including defaults, types, and optionality. Notably, it provides detailed structure for the complex 'credentialSource' parameter, offering concrete examples of environment variable and Key Vault configurations. This adds exceptional value beyond the schema.

    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 clearly states the verb 'Create' and the resource 'a new D365FO environment profile'. It distinguishes this tool from sibling tools like clone_profile, delete_profile, etc. by specifying 'full configuration options', emphasizing its role as the primary creation tool.

    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?

    The description does not provide explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, scenarios where other tools (e.g., clone_profile) might be more appropriate, or any limitations. The implicit naming is insufficient for an agent to make informed decisions without additional context.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It states the return type ('Dictionary with default profile') but does not disclose whether the tool is read-only, requires authentication, or has side effects. The description is adequate but lacks detail.

    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 description is very short (two sentences) and to the point. It could be slightly more structured but effectively communicates the essential purpose and return value without wasted words.

    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?

    Given the tool has no parameters and an output schema exists, the description is reasonably complete. It explains what the tool does and the return type. Missing context like potential errors or configuration sources, but for a simple getter it's sufficient.

    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?

    There are no parameters, and the input schema covers 100% (empty). The description does not need to add parameter info. The baseline for 0 parameters is 4, and the description provides sufficient context for the tool's purpose.

    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 clearly states 'Get the current default D365FO environment profile,' specifying the verb and resource. This distinguishes it from siblings like d365fo_get_profile (which gets a named profile) and d365fo_list_profiles (which lists all profiles).

    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?

    No guidance is provided on when to use this tool versus alternatives such as d365fo_get_profile or d365fo_set_default_profile. The description does not mention when not to use it.

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

  • Behavior2/5

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

    No annotations are provided, so the description must disclose behavioral traits. It only states it lists sessions, implying read-only, but does not mention if it requires authentication, rate limits, or any side effects. For a non-annotated tool, this is insufficient.

    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 concise with two sentences plus parameter and return notes. Every sentence serves a purpose, and the main action is front-loaded.

    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?

    Given the tool's simplicity (one optional param, no output schema), the description covers the basics: what it does, input, and return type. However, it lacks details on the dictionary structure (keys like status, progress). It is adequate but not fully comprehensive.

    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?

    The schema has 0% description coverage, but the description explains the 'profile' parameter, including its optionality and default behavior. This adds meaningful context beyond the schema's type and default value.

    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 clearly states the tool retrieves a list of currently active sync sessions with status and progress. It is specific and distinguishes from sibling tools like d365fo_get_sync_history (historical) and d365fo_get_sync_progress (single session).

    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 implies usage when an overview of active sync sessions is needed, but does not provide explicit guidance on when not to use this tool or suggest alternatives among the many sync-related siblings.

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

  • Behavior3/5

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

    No annotations are provided, so the description bears full burden. It explains that it uses POST body and returns a dictionary with response data, but does not disclose side effects, authentication needs, rate limits, or error behavior. The behavioral traits are partially covered.

    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?

    Description is structured with a purpose sentence, then Args and Returns sections. Examples are lengthy but informative. Could be slightly more concise, but overall well-organized and front-loaded.

    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?

    Given no output schema and no annotations, the description covers functionality, parameters, and examples well. However, it omits error handling, return format details, and idempotency. Completeness is good but not exhaustive.

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

    Parameters5/5

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

    Schema description coverage is 0%, and the description compensates fully by listing all five parameters in the Args block with clear explanations and examples. Each parameter's purpose is described beyond the schema types.

    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?

    Description clearly states it calls a D365 F&O JSON service endpoint using the /api/services pattern, and explains it is a generic way to invoke any JSON service operation. However, it does not differentiate from sibling tools like d365fo_call_action or d365fo_execute_sql_query, which may also invoke services.

    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 implies usage for invoking JSON services but does not explicitly state when to use this tool versus alternatives. No exclusions or context about when not to use it are provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavior. It mentions the tool downloads a PDF and can auto-generate save_path, but it does not state whether the operation is read-only, destructive, or requires permissions. For a download tool, it likely is read-only, but the lack of explicit disclosure reduces transparency.

    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 description is well-structured with a clear introduction, contextual explanation of purchase orders, actionable query instructions, and parameter list. While slightly verbose with the definition of purchase orders, it remains focused and front-loaded. It could be trimmed but is not overly long.

    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?

    Given 4 parameters and an output schema, the description covers the tool's purpose, parameter details, return value, and provides a concrete query example to aid input preparation. It lacks error handling or permission details, but for a download tool, the coverage is adequate.

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

    Parameters5/5

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

    The input schema has 0% description coverage, meaning no parameter descriptions in the schema. The description compensates fully by listing all four parameters in an Args section with meanings, examples (e.g., purchase_order_id: 'PO-000123'), and default values (profile: 'default'). It adds crucial context beyond the schema.

    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 clearly states 'Download a purchase order report as PDF from D365 Finance & Operations.' It uses a specific verb ('download') and resource ('purchase order'), and even mentions the underlying controller (PurchPurchaseOrderController). This makes the tool's purpose distinct from siblings like d365fo_download_customer_invoice, though not explicitly compared.

    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 provides guidance on how to find purchase orders via a query (e.g., using d365fo_query_entities with entity 'PurchaseOrderConfirmationHeaders'), which helps the agent prepare input. However, it does not explicitly state when to use this tool versus alternatives like d365fo_download_customer_invoice or when not to use it.

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

  • Behavior3/5

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

    No annotations exist, so the description must carry the full burden. It describes a read-only operation returning a list, but lacks details about performance, data volume, or impact. Adequate but minimal.

    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?

    Two sentences, front-loaded with purpose, no extraneous words. Highly efficient.

    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?

    Given the simplicity of a parameterless list tool, the description is sufficient. However, with many sibling tools, a bit more detail on what constitutes a 'profile' would improve completeness.

    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?

    No parameters exist (0 params, 100% schema coverage). Per guidelines, baseline is 4; description adds nothing but needs nothing more.

    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 clearly states the action ('Get list') and resource ('all available D365FO environment profiles'), distinguishing it from siblings like get_profile (single) or search_profiles (filterable).

    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?

    No guidance is provided on when to use this tool vs. alternatives such as search_profiles or get_profile_names. There is no mention of context, exclusions, or recommended scenarios.

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

  • Behavior4/5

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

    With no annotations, the description takes on the full burden. It discloses a key behavioral trait: 'Automatically refreshes all cached client connections since changing the default profile may affect client resolution.' This is valuable, though it could also mention potential permission requirements or irreversibility.

    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 concise (~70 words) and well-structured: a clear header line, a paragraph explaining the side effect, and structured Args/Returns sections. Every sentence adds value.

    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?

    Given the tool's simplicity (one parameter, no enums, output schema exists), the description is mostly complete. It explains the main function and side effect. However, it could mention error cases (e.g., profile not found) or confirm the result behavior.

    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?

    The schema has 0% description coverage, so the description must compensate. The Args section provides a basic description: 'Name of the profile to set as default.' This adds some meaning beyond the schema, but it lacks details like validation rules or expected format.

    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 clearly states 'Set the default D365FO environment profile,' which is a specific verb+resource. It distinguishes itself from sibling tools like d365fo_get_default_profile and d365fo_create_profile by indicating a set operation.

    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?

    The description does not provide guidance on when to use this tool versus alternatives. It mentions a side effect but lacks explicit context like 'Use this to change the active profile' or 'Do not use if you only need to create a new profile.'

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

  • Behavior3/5

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

    No annotations exist, so the description carries full burden. It states basic behavior (get a record) and return type, but fails to disclose edge cases (e.g., record not found), permissions, or side effects. For a read tool, this is adequate but not comprehensive.

    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 concise and well-structured: a one-line purpose, a bulleted Args section, and a Returns line. Every sentence adds value with no redundancy. It is front-loaded with the core action.

    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?

    Given the tool has 6 parameters (3 required) and no output schema, the description explains all parameters well. However, it lacks detail on the return structure (only says 'Dictionary with the entity record') and does not cover error handling or behavior on missing records. This is a minor gap.

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

    Parameters5/5

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

    The input schema has 0% description coverage, but the description fully compensates by explaining all 6 parameters, including examples for `entity_name` and clear definitions for `key_fields`/`key_values`, `select`, `expand`, and `profile`. It adds significant meaning beyond the raw schema.

    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 clearly states 'Get a specific record from a D365FO data entity', using a specific verb and resource. It distinguishes from sibling tools like `d365fo_query_entities` (which lists records) and CRUD operations. The name also reinforces the purpose.

    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?

    The description does not provide any guidance on when to use this tool versus alternatives (e.g., `d365fo_query_entities` for multiple records, or `d365fo_create_entity_record`). No when-to-use, when-not-to-use, or prerequisites are mentioned.

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

  • Behavior3/5

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

    No annotations are provided, so the description must disclose behavioral traits. It describes the operation as read-only (getting fields) but does not explicitly state it is non-destructive or mention any side effects, authorization needs, or rate limits. The description is adequate but could be more transparent.

    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 description is well-structured with a purpose statement, parameter list, and return value. It is front-loaded with the main action. However, the parameter descriptions could be slightly more concise, and the overall length is reasonable for the complexity.

    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?

    Given the tool retrieves enumeration fields and has no output schema, the description provides high-level return information but lacks specifics like the structure of the dictionary. For a simple retrieve operation it is mostly adequate, but more detail on the return format would improve completeness.

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

    Parameters5/5

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

    The input schema has 0% description coverage, so the description must compensate. It provides clear explanations for each parameter: enumeration_name with example, resolve_labels and language with defaults and purpose, and profile as optional. This adds significant meaning beyond the schema.

    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 clearly states the tool retrieves detailed members and values for a specific D365 F&O enumeration. The verb 'get' and resource 'enumeration fields' are specific. It differentiates from sibling tools like d365fo_search_enumerations which searches for enumerations, not their fields.

    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 implies usage when needing enumeration details but does not explicitly state when to use this tool versus alternatives. No exclusions or when-not conditions are provided. The parameter description for profile mentions optional use but lacks guidance on when to specify it.

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

  • Behavior3/5

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

    No annotations provided. The description describes the tool as read-only (getting statistics), but does not explicitly state it is non-destructive or disclose performance implications. It adequately describes the output scope but lacks behavioral warnings.

    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 description is structured with bullet points and a separate Args section, making it easy to scan. The bullet list of statistics categories is somewhat lengthy but front-loaded with the main purpose.

    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?

    Given no output schema, the description returns 'Dictionary with database statistics', which is vague. However, all 4 optional parameters are explained, and the tool's scope is clear. Could be improved by detailing output structure.

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

    Parameters5/5

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

    Schema description coverage is 0%, but the description explains each parameter (e.g., 'include_table_stats: Include per-table statistics (row counts, sizes)') adding meaningful context beyond the schema's title and default values.

    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 clearly states the tool's purpose: 'Get comprehensive database statistics and analytics'. It lists specific categories (e.g., overall size, table counts, cache hit rates), distinguishing it from siblings like d365fo_get_database_schema or d365fo_get_server_performance.

    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 says 'Use this tool to understand the overall state and health of the metadata database' but does not explicitly exclude alternatives or mention when not to use it. Usage is implied rather than explicitly guided.

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

  • Behavior3/5

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

    No annotations are provided, so the description must disclose behavioral traits. It indicates the tool generates and downloads a PDF, which is a read operation. However, it doesn't mention potential side effects (e.g., report generation triggers), permissions required, limits, or error conditions. Some behavioral context is missing.

    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 description is well-structured with a clear opening, bulleted parameter list, and a table. It is front-loaded with the core purpose. While lengthy, every sentence adds value, though it could be slightly more concise by removing some redundancy.

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

    Completeness5/5

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

    Given the complexity (8 parameters, 0% schema coverage, no annotations) and the presence of an output schema, the description is remarkably complete. It explains the return value, provides default values, and offers a reference table for common configurations. No significant gaps remain.

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

    Parameters5/5

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

    Schema description coverage is 0%, but the description fully compensates by detailing each parameter: document_id, legal_entity, controller_name, data_table, data_field, document_type, save_path, and profile. It explains defaults, provides examples, and includes a comprehensive table of common controller/table/field combinations, adding immense value beyond the raw schema.

    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 explicitly states it downloads SSRS reports from D365FO as PDF files, listing specific document types (invoices, purchase orders) and the tool's flexibility. The verb 'download' and resource 'SSRS report' are clear, and the tool is distinct from generic data download tools.

    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 provides useful parameter combinations (controller/table/field) but lacks guidance on when to use this generic tool versus the many sibling download tools (e.g., d365fo_download_customer_invoice). No explicit when/when-not or alternative recommendations.

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

  • Behavior4/5

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

    With no annotations provided, the description effectively discloses the key behavioral trait: 'Automatically invalidates all cached client connections since the profile is no longer available.' This adds important context beyond the simple delete action.

    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 very concise, using only three sentences plus an Args/Returns section. It is front-loaded with the main purpose and uses clear structure, making it easy for an AI agent to parse quickly.

    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 simple delete tool with one required parameter, the description covers the core behavior, side effect, and return value. It is complete enough given the tool's simplicity, though it could mention prerequisites like profile existence.

    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?

    The description includes an Args section specifying that profileName is the 'Name of the profile to delete,' which provides clear semantics beyond the schema's minimal 'Profilename' label. Given 0% schema description coverage, the description compensates well.

    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 starts with 'Delete a D365FO environment profile,' which is a specific verb and resource. This clearly distinguishes it from sibling tools like create_profile, update_profile, or search_profiles.

    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 mentions the side effect of invalidating cached connections, which gives context for using the tool, but it does not explicitly state when to use this tool versus alternatives or when not to use it. No comparison to other profile-related tools is provided.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It discloses that it downloads PDFs, returns a dictionary with file path, and that save_path auto-generates. It also mentions preset configurations via profile. However, it lacks details on error handling, authentication requirements, or failure modes, which are important for a download tool.

    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 description is well-structured with sections: purpose, usage guidance, example query, and parameter list. It is front-loaded with the core action. While the example query adds length, it is valuable and not wasteful. Slightly longer than minimal but still efficient.

    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?

    Given the tool's purpose and that an output schema exists (as per context signals, though not provided in full), the description covers the main workflow: query first with another tool, then use this to download. It explains parameters, provides examples, and mentions return format. It is complete for typical use, though it omits error scenarios or prerequisites.

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

    Parameters5/5

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

    Schema description coverage is 0%, yet the description adds substantial meaning: it gives concrete examples for invoice_id and legal_entity, explains save_path's optionality and auto-generation, and describes the default for profile. This goes well beyond the bare schema, making parameter usage clear.

    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 clearly states 'Download a customer invoice report as PDF from D365 Finance & Operations.' It uses a specific verb and resource, and distinguishes itself from sibling download tools by explicitly calling out 'customer invoice' and noting it is a convenience tool with preset configurations.

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

    Usage Guidelines4/5

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

    The description provides clear context: 'Use this when you need to quickly download customer invoices without specifying all the technical parameters.' It also gives detailed guidance on finding invoices by querying the CustInvoiceJourBiEntity through d365fo_query_entities, including an example query. However, it does not explicitly state when not to use this tool or mention alternatives among sibling download tools.

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

  • Behavior3/5

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

    No annotations provided, so description carries full burden. It explains the download action, controller, and return format, but omits details on error handling, permissions, or limits, leading to moderate transparency.

    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?

    Structured with purpose, query guidance, example, and args list; front-loaded but slightly repetitive of schema. Mostly concise and clear.

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

    Completeness5/5

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

    Given 4 parameters, no schema descriptions, and an output schema, the description thoroughly covers invoice discovery, parameter explanations, and return value, making it complete for the tool's complexity.

    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 has 0% description coverage; the description adds significant value by providing examples for invoice_id and legal_entity, explaining save_path auto-generation, and noting profile default, compensating well for missing schema descriptions.

    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?

    Clearly states the tool downloads a free text invoice as PDF and distinguishes it from sales-order invoices, with specific mention of the controller and differentiation from sibling tools like download_customer_invoice.

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

    Usage Guidelines4/5

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

    Provides explicit guidance on finding invoices via CustInvoiceJourBiEntity with a concrete example query, but does not explicitly name alternative tools for other invoice types, relying on implied context.

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

  • Behavior3/5

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

    No annotations are provided, so the description must carry the full burden. It describes the tool as a read-only query returning detailed information, which is good, but it omits potential performance impacts, authorization requirements, or behavior on missing tables.

    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 description is structured with bullet points and an Args section, making it easy to scan. It is front-loaded with the purpose. Though somewhat lengthy, every sentence adds value, so it is concise enough for the detail provided.

    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?

    Given no output schema, the description explains the return value as a dictionary with listed categories. It covers the key aspects of table info. However, it lacks guidance on error handling (e.g., table not found) and could compare against sibling tools for completeness.

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

    Parameters5/5

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

    Schema coverage is 0%, so the description compensates fully. It explains each parameter: table_name with an example, include_sample_data and include_relationships with their defaults and effects, and profile as optional. This adds significant meaning beyond the schema titles.

    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 clearly states 'Get detailed information about a specific database table' and lists specific aspects like column definitions, keys, indexes, statistics, and sample data. This distinguishes it from sibling tools such as d365fo_get_database_schema (which covers all tables) and d365fo_get_entity_schema (which focuses on entities).

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

    Usage Guidelines4/5

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

    The description explicitly says 'This tool is useful for exploring specific tables before writing queries,' providing clear context. However, it does not specify when not to use it or mention alternatives, though the sibling list implies alternatives exist.

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

  • Behavior3/5

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

    No annotations are provided, so the description bears full responsibility. It correctly describes a read-only search operation returning a dictionary, which aligns with typical search behavior. However, it lacks details on authentication requirements, rate limits, or potential side effects, though none are expected.

    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 well-structured with clear sections (title, Args, Returns). It is concise, with no superfluous sentences, and front-loads the core purpose. Every element earns its place.

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

    Completeness5/5

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

    Given the output schema exists (context signals), the description's 'Returns' summary is adequate. All three parameters are thoroughly explained, and the tool's purpose is fully covered for a search operation. No gaps remain for effective use.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description must compensate. The 'Args' section explains each parameter clearly: 'pattern' for matching, 'hasCredentialSource' for filtering by credential presence, and 'credentialSourceType' for filtering by type. This adds significant meaning beyond the bare schema names.

    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 clearly states the action ('Search') and resource ('D365FO environment profiles'). It distinguishes from sibling tools like 'd365fo_list_profiles' (which lists all profiles without filtering) and 'd365fo_get_profile' (retrieves a specific profile by ID), making the purpose unambiguous.

    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 implies usage when specific profile criteria need to be applied, but it does not explicitly state when to use this tool versus alternatives (e.g., 'list_profiles' for unfiltered listing or 'get_profile' for exact match). No when-not-to-use guidance or alternatives are given.

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

  • Behavior3/5

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

    With no annotations, the description must disclose behavior. It states the precondition and that it returns a dictionary, but lacks details on side effects, idempotency, or the structure of the return value. More transparency on what 'cancel' entails would improve this.

    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 concise, structured with Args and Returns sections, and front-loads the purpose. Every sentence adds value without redundancy.

    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 simple mutation tool with no output schema, the description covers preconditions and parameters adequately. However, it lacks details on cancellation result format and whether the operation is synchronous, leaving minor gaps.

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

    Parameters5/5

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

    Schema coverage is 0%, so description fully carries parameter meaning. It clearly explains session_id as the session to cancel and profile as an optional configuration with a default. This adds significant value beyond the schema.

    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 clearly states the tool cancels a running sync session, with a specific verb and resource. It distinguishes from sibling tools like start_sync and list_sync_sessions by focusing on cancellation.

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

    Usage Guidelines4/5

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

    The description provides a precondition for use (session must be running and cancellable), guiding when the tool is applicable. However, it does not explicitly mention when not to use or suggest alternatives like listing sessions to find cancellable ones.

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

  • Behavior3/5

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

    No annotations are provided, so the description must carry the full burden. It mentions the return format (dictionary with download result) and that it uses SalesConfirmController. However, it does not disclose whether the operation is read-only or destructive, or if specific permissions are required.

    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 description is well-structured: a clear one-liner, followed by context about the entity, then argument details. It is slightly lengthy but each section adds value. Front-loads the core purpose well.

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

    Completeness5/5

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

    Given the presence of an output schema (true) and the tool's complexity, the description is complete. It explains the return value, provides a query example to find confirmations, and covers all arguments. No major gaps.

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

    Parameters5/5

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

    The input schema has 0% description coverage, but the description compensates fully. It explains confirmation_id (can be confirmation or sales order ID), legal_entity (company code), save_path (optional full path), and profile (default), with examples. This adds significant semantic value beyond the schema.

    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 clearly states the tool downloads a sales confirmation report as a PDF from D365 F&O. It specifies the resource (sales confirmation) and the action (download PDF), and distinguishes from siblings like d365fo_download_customer_invoice by noting it uses SalesConfirmController.

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

    Usage Guidelines4/5

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

    The description provides guidance on when to use the tool (for downloading sales confirmations) and how to find available confirmations via querying the SalesOrderConfirmationHeader entity with an example. It does not explicitly state when not to use it, but the context among sibling download tools implies it's for sales confirmations.

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

  • Behavior4/5

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

    The description explains the search behavior: simple text matching, not regex, and a multi-step strategy. It also specifies the return type (dictionary of enumerations). Since no annotations are provided, the description carries the full burden and does so effectively, though it does not mention potential errors or rate limits.

    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 well-structured with bolded sections (IMPORTANT, SEARCH STRATEGY EXAMPLES, Args, Returns). It is front-loaded with the purpose, and every sentence adds value, including concrete examples that illustrate the search strategy. Despite its length, it is efficient.

    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?

    Given the tool's complexity (multi-keyword search strategy), no output schema, and no annotations, the description covers purpose, parameters, usage strategy, and return type thoroughly. It could mention error handling or edge cases, but overall it is sufficiently complete for an AI agent.

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

    Parameters5/5

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

    With 0% schema description coverage, the description greatly expands on each parameter. It clarifies 'pattern' must be plain text keywords (not regex) and provides step-by-step usage examples. 'Limit' and 'profile' are also explained, adding crucial context beyond the schema.

    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 clearly states the tool searches for enumerations using simple keyword-based search, specifying it is for D365 F&O. This distinguishes it from sibling search tools like d365fo_search_actions and d365fo_search_entities by explicitly targeting enums.

    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 provides detailed guidance on how to use the tool (break queries into keywords, perform multiple searches), but does not explicitly compare it to alternatives or state when not to use it. The usage is implicit: use when enumerations are needed.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden. It describes the query behavior, simplified OData filtering, and return format (dictionary with data, count, pagination). It does not mention auth or rate limits, but such details are less critical for a read-only query tool.

    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?

    Description is well-structured with Args, Returns, and Note sections. It is informative without being overly verbose. Minor redundancy in explaining filter patterns could be tightened, but overall efficient.

    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?

    Given no output schema, description adequately explains return type. All 9 parameters are documented, including complicated filter syntax. Missing some edge cases like error handling, but for a query tool this is sufficient.

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

    Parameters5/5

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

    Schema coverage is 0%, so description must compensate. It thoroughly explains each parameter, especially filter with detailed examples of wildcard patterns and enum values. This provides far more meaning than the schema alone.

    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?

    Description clearly states it queries D365FO data entities with simplified filtering. It distinguishes from siblings like d365fo_get_entity_record (single record) and d365fo_create_entity_record (creation) by focusing on querying multiple entities with filtering and pagination.

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

    Usage Guidelines4/5

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

    Explicitly notes that only 'eq' operations with wildcards are supported, and advises to retrieve data first and filter programmatically for complex queries. This provides clear when-not-to-use guidance, though it does not explicitly compare to sibling tools.

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

  • Behavior4/5

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

    No annotations present, so description bears full burden. It notes that isFunction filter may not be fully supported and distinguishes between functions (read-only) and actions (may have side-effects). Returns dictionary of matching actions. Does not contradict any structured data.

    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?

    Well-structured with sections and examples, but contains some redundancy (search strategy repeated in pattern arg). Still concise for the amount of guidance provided.

    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?

    Given no output schema, description minimally states 'Returns dictionary with matching actions'. Lacks details on pagination, error handling, or additional response fields. Adequate but could be more complete.

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

    Parameters5/5

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

    Schema description coverage is 0%, yet the description adds detailed explanations for all 6 parameters including pattern (keyword search), entityName (entity filter), bindingKind (binding type), isFunction (with caveat), limit, and profile. This compensates fully for schema gaps.

    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 clearly states the tool searches for OData actions in D365 F&O using keyword-based search. It distinguishes itself from sibling tools like d365fo_search_entities by focusing specifically on actions.

    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?

    Provides explicit search strategy: break down requests into keywords, perform multiple searches, combine results. Includes examples and warns against complex patterns. This gives clear when-to-use guidance.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries full burden. It mentions the tool downloads a PDF and returns a dictionary with saved file path, but does not disclose potential side effects, required permissions, or performance characteristics. Since it's a download tool, the behavioral impact is minimal, but more detail on authentication or file size constraints would improve transparency.

    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 well-structured with clear sections, a purpose statement, usage context, a query example, and explicit args. It is front-loaded and every sentence adds value. Despite length, it is not verbose.

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

    Completeness5/5

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

    Given the complexity of D365 and the presence of an output schema (not shown but indicated), the description covers all essentials: how to find the invoice ID, required parameters, optional parameters, and return value. It is complete for an agent to use correctly.

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

    Parameters5/5

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

    The schema has 0% description coverage, but the tool description thoroughly explains all parameters: invoice_id (with examples), legal_entity (with examples), save_path (explains optional auto-generation), and profile (with default). This adds significant meaning beyond the raw schema.

    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 clearly states it downloads a debit/credit note report as PDF from D365 Finance & Operations. It specifies the controller (CustDebitCreditNoteController) and distinguishes from sibling tools like d365fo_download_customer_invoice and d365fo_download_free_text_invoice.

    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?

    Provides explicit guidance on when to use this tool (for debit/credit notes) and instructs the agent to first query the CustInvoiceJourBiEntity using d365fo_query_entities to find available invoices. Includes a concrete example query. Clearly differentiates this from other download tools.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It accurately describes the tool as a read-only operation returning schema information and lists the data categories. It does not mention potential performance impacts or limitations, but given the nature of the tool, this is acceptable.

    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 well-structured with bullet points for the returned information, a clear usage statement, and a parameter list. It is concise yet complete, with no superfluous sentences.

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

    Completeness5/5

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

    Given no output schema and no annotations, the description adequately covers purpose, parameters, usage context, and return value. It provides enough information for an AI agent to correctly select and invoke the tool.

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

    Parameters5/5

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

    The input schema has 0% description coverage, so the description fully compensates by explaining each parameter: table_name for specific tables, include_statistics, include_indexes, include_relationships as boolean flags, and profile with its default behavior. This adds essential semantic meaning beyond the schema.

    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 clearly states that the tool retrieves comprehensive schema information for the D365FO metadata database, listing specific details like tables, columns, indexes, foreign keys, and statistics. This specificity distinguishes it from sibling tools like d365fo_get_database_statistics or d365fo_get_table_info, which have narrower focus.

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

    Usage Guidelines4/5

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

    The description advises using this tool to understand the database structure before writing SQL queries, providing clear context for its use. It does not explicitly state when not to use it or list alternatives, but the guidance is sufficient for an AI agent.

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

  • Behavior5/5

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

    With no annotations provided, the description fully discloses behavioral traits: only SELECT allowed, 1000 row limit, 30-second timeout, restricted tables, and a list of available tables. This is comprehensive and leaves no ambiguity about safety or constraints.

    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 description is well-structured with clear sections (safety, tables, examples, args). It is relatively long but front-loaded with key information. Minor redundancy (safety notes repeated in args) but overall efficient.

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

    Completeness5/5

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

    Given the lack of output schema and 4 parameters, the description is very complete. It covers safety, table catalog, examples, parameter details, and return type. An agent can confidently use this tool without further information.

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

    Parameters5/5

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

    The input schema has 0% description coverage, so the description carries full burden. It explains each parameter: query must be SELECT, limit default 100 and max 1000, format options (table/json/csv), and profile is optional. This adds essential meaning beyond the schema.

    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 clearly states the tool executes SELECT queries against the D365FO metadata database. It specifies the action (execute), resource (metadata database), and purpose (insights from cached metadata), distinguishing it from sibling tools that perform specific operations like record management or profile handling.

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

    Usage Guidelines4/5

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

    The description explicitly restricts queries to SELECT only, outlines table usage, and provides examples. It does not explicitly mention when not to use or suggest alternatives, but the context is clear enough for an agent to decide.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

d365fo-client MCP server

Copy to your README.md:

Score Badge

d365fo-client MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mafzaal/d365fo-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server