Skip to main content
Glama

object_patterns

Read-only

Analyze and recommend D365FO form patterns, validate XML structure, and retrieve table/field patterns for optimal code alignment.

Instructions

Pattern toolkit. Choose a domain: • table → common field types, index patterns and relation structures for D365FO tables. Filter by tableGroup (Main, Transaction, …) or similarTo a given table. • form → form-pattern toolkit; pick an action:

  • analyze → pattern advisor + usage analysis. RECOMMEND (preferred for a new form): pass recommend={entityKind, hasHeaderLines, fieldCount, usageIntent, tableName} for the right pattern via the Microsoft decision tree + reference forms to clone. Or filter by formPattern / dataSource / similarTo.

  • spec → full structure spec of a pattern or sub-pattern (required hierarchy/ordering, allowed children, reference forms, lifecycle). Call after analyze, before building.

  • validate → structural validator of AxForm XML (<50 ms, offline): container hierarchy/order, sub-patterns, PatternVersion. Returns FP001-FP010 violations. Call before action=create on d365fo_file.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xmlNo[validate] Complete AxForm XML to validate. Provide this OR formName/filePath.
limitNo[analyze] Maximum number of pattern examples (default: 10)
actionNo[form] Which form-pattern operation to run. repair = auto-fill missing required controls.
domainNotable = table field/index/relation patterns; form = form-pattern toolkit (set action). Optional — inferred from the other params (action/pattern/xml/formName → form; tableGroup → table). ⚠️ This is NOT a free-form "pattern type": a concept like "number-sequence"/"SysOperation" belongs to get_knowledge, not here.
patternNo[spec] REQUIRED. Pattern name (id, xmlName, or alias) — e.g. "SimpleList", "DetailsMaster", or a sub-pattern like "FieldsFieldGroups".
filePathNo[form/validate] Explicit path to an AxForm XML file (e.g. a freshly created form not yet indexed).
formNameNo[validate] Name of an indexed form — XML is loaded from the metadata store.
recommendNo[analyze] Pattern advisor: describe requirements, get a recommended pattern + reference forms to clone.
similarToNo[table] table name to find similar table patterns; [form/analyze] form name to find similar form patterns.
dataSourceNo[form/analyze] Table name - find forms using this table
tableGroupNo[table] Table group type to analyze (choose one).
formPatternNo[analyze] D365FO form pattern to analyze
Behavior4/5

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

With readOnlyHint=true annotations, the description carries a moderate burden and delivers: it reveals the validate action is '<50 ms, offline', notes domain inference from other params, flags that domain is 'NOT a free-form pattern type', and describes the repair action as 'auto-fill missing required controls.' These specifics add real behavioral context beyond the annotations. The repair action is ambiguous about whether it mutates external state, but given the read-only toolkit framing this is not a clear contradiction.

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 long but densely organized with a two-level hierarchy (domain → action) and consistent mode tags, front-loading the core 'choose a domain' concept. Given the tool's complexity — 12 parameters, 2 domains, 4 actions, nested recommend object — the length is justified and every section earns its place. Well-structured use of bold and bullets aids scanning.

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 high-complexity tool with no output schema, the description covers a great deal: domain inference rules, the recommendation decision flow, per-action return expectations ('Returns FP001-FP010 violations', 'full structure spec', 'a recommended pattern + reference forms to clone'), and when to call each action. Minor gaps exist around exact return formatting, but for the tool's breadth this is a thorough, near-complete description.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the schema already documents every parameter with mode tags ([validate], [analyze], [spec]) and REQUIRED markers. The tool description adds workflow context that ties parameters together (e.g., recommend is 'preferred for a new form'), but the heavy lifting for parameter meaning lives in the schema's per-property descriptions, so it doesn't rise above baseline.

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 immediately establishes the resource (D365FO table and form patterns) with a specific verb ('Pattern toolkit. Choose a domain:'). It enumerates distinct modes (analyze, spec, validate) and even steers away from a sibling by stating that 'a concept like "number-sequence"/"SysOperation" belongs to get_knowledge, not here.' This clearly differentiates it from get_knowledge and other siblings.

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 gives explicit workflow sequencing: RECOMMEND for new forms, 'Call after analyze, before building' for spec, 'Call before action=create on d365fo_file' for validate. It also states a when-not rule by excluding pattern-type concepts that belong to get_knowledge. It doesn't exhaustively compare against every sibling alternative, but the internal action ordering and explicit get_knowledge exclusion provide strong usage guidance.

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

Install Server

Other Tools

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/dynamics365ninja/d365fo-mcp-server'

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