Model Context Protocol server for Microsoft Entra ID SCIM 2.0 inbound provisioning.
18 tools with consistent naming (verb_noun pattern) and descriptions present. However, parameter descriptions are minimal (10-30 chars), lack constraint details (enums, ranges, formats), and output schemas are undocumented. No error handling guidance visible. Tool names are clear but descriptions lack WHEN/WHY context. Parameters like 'filter', 'operations', 'attributes' need format/constraint documentation. No evidence of idempotency hints or destructive operation confirmation patterns.
Add members to a group in Microsoft Entra ID
Create a new group in Microsoft Entra ID
Delete a group from Microsoft Entra ID
Delete a user from Microsoft Entra ID
Retrieve a specific group from Microsoft Entra ID by ID
Retrieve the SCIM 2.0 service provider configuration
Retrieve a specific user from Microsoft Entra ID by ID
Parameter descriptions lack constraint details. 'filter' (SCIM filter expression) needs format specification: 'SCIM filter expression supporting eq/ew operators with and conjunction (e.g., userName eq "[email protected]" and active eq true)'. 'operations' array lacks PATCH operation schema (op, path, value structure). 'attributes' lacks format guidance (comma-separated list format not explicit).
Output schemas are not documented. Tools return structured data but no schema is visible in source code. LLMs cannot plan downstream calls or extract fields without knowing response structure. E.g., list_users returns paginated results but total count, Resources array structure, and field names are undocumented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
Retrieve custom security attributes for a user from Microsoft Entra ID
List groups from Microsoft Entra ID with optional filtering and pagination
List all SCIM 2.0 resource types supported by the service provider
List all SCIM 2.0 schemas supported by the service provider
List users from Microsoft Entra ID with optional filtering and pagination
Create a new user in Microsoft Entra ID
Remove a member from a group in Microsoft Entra ID
Update an existing group in Microsoft Entra ID using SCIM PATCH operations
Update an existing user in Microsoft Entra ID using SCIM PATCH operations
Update custom security attributes for a user in Microsoft Entra ID
Update user lifecycle state (active/inactive) in Microsoft Entra ID
Destructive operations (deprovision_user, delete_group) lack confirmation or dry-run patterns. No evidence of confirmation_request or idempotent hints in tool definitions. Agents could accidentally delete users/groups without safeguards.
No error handling guidance visible. Tools lack recovery hints (e.g., 'User not found. Try list_users() to find the correct ID.'). Error responses should categorize as retryable/user-fixable/fatal and include the invalid value and constraint violated.
Tool descriptions lack WHEN/WHY context. E.g., 'Retrieve a specific user from Microsoft Entra ID by ID' does not explain when to use get_user vs list_users with filter. Descriptions should guide LLM selection between similar tools and state prerequisites (e.g., 'Requires user ID; use list_users() first if you only have a name').