Security & licence intelligence tools for Microsoft Dynamics 365 Finance & Operations. Query security roles, analyse licence requirements, detect over/under-licensed users, and simulate role change impact on licensing costs.
Server has 19 tools with consistent naming (verb_noun pattern) and descriptions present for all. However, descriptions are often generic and lack actionable context for LLM selection. Parameter schemas are present but descriptions are sparse or missing for many parameters. Output schemas are not documented. Error handling is minimal, no recovery guidance or categorization. Security-focused domain is well-represented, but composition and chaining support are weak.
Assess licence requirements for D365 F&O users based on their security roles. Calculates the minimum required licence tier for each user by analysing their assigned security roles. Returns the tier, cost, and driving role.
Detect users whose assigned licence exceeds what their security roles require. Compares each user's calculated minimum licence requirement against their assigned licence to find cost-saving opportunities.
Detect Segregation of Duties (SoD) conflicts in user role assignments.
Detect users whose roles require a higher licence than currently assigned. Identifies compliance risks under Microsoft's licence enforcement policy. Requires an external licence source (graph, ppac, or file).
Find privileged accounts that have not been used recently.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields. No indication of pagination, field structure, or chaining IDs.
Many parameter descriptions are missing or trivial. E.g., 'redact_pii' appears in 15+ tools but is never explained in parameter descriptions, only in tool docstrings. LLMs cannot infer parameter semantics from names alone.
No error handling or recovery guidance. Tools return raw errors with no actionable next steps. E.g., 'Invalid tier name' should list valid options; 'Licence source unavailable' should suggest validate_licence_source().
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Get all user role assignments in the environment.
Identify users with high-risk security profiles based on SoD violations and privilege concentration.
Get a high-level summary of licence distribution and costs across the environment.
Get a map of security roles and assignments across organizational units.
Get the hierarchical structure of duties and privileges for a security role.
Get detailed licence tier information for a specific security role.
Get a log of security-related changes in the environment.
Get an overall security health score for the environment.
Inspect the server's configuration, environment connectivity, and which tools are available.
Get a matrix view of SoD conflicts across all users and roles.
Get a comprehensive security profile for a specific user including roles, duties, and SoD violations.
Run a comprehensive access review for a specific user.
Test licence source connectivity before running detection tools.
Simulate the licence impact of adding or removing roles from a user. Shows the projected licence tier and cost delta before making changes in D365. No changes are made to the environment.
Tool composition is weak. 19 read-only tools with no clear chaining. E.g., get_user_security_profile and detect_sod_violations both operate on users but do not cross-reference. No batch variants for tools agents call in loops.
Generic descriptions lack LLM-optimized context. E.g., 'Get a high-level summary of licence distribution and costs' does not explain WHEN to call it vs. assess_user_licence_requirements or get_licence_summary. No dependency hints.