BOD-25-01-CSA-Microsoft-Policy-MCP
CISA M365 MCP 服务器
为 Microsoft 365 (Azure AD/Entra ID) 实施 CISA 绑定操作指令 25-01 安全控制的模型上下文协议 (MCP) 服务器。
目录
Related MCP server: SharePoint MCP Server
概述
此 MCP 服务器提供根据 BOD 25-01 要求配置和管理 Microsoft 365 安全设置的工具。它与 Microsoft Graph API 集成,以强制执行安全控制、监视合规性并提供详细的报告。
主要特点
旧式身份验证控制
基于风险的访问控制
多因素身份验证管理
应用程序注册和同意控制
密码策略管理
特权角色管理
仅限云的帐户执行
PAM系统集成
全面的合规报告
基于令牌的身份验证
类型安全参数验证
详细的错误处理和日志记录
安全控制
MS.AAD.1.1v1
到期日:2025年6月20日
阻止旧式身份验证:
禁用旧式身份验证协议
减少攻击面
改善安全态势
实施细节:
await graphClient
.api('/policies/authenticationMethodsPolicy')
.patch({
allowLegacyAuthentication: false,
blockLegacyAuthenticationMethods: true,
});MS.AAD.2.1v1 和 MS.AAD.2.3v1
到期日:2025年6月20日
阻止高风险用户和登录:
阻止被检测为高风险的用户
阻止被检测为高风险的登录
利用微软的威胁情报
实施细节:
await graphClient
.api('/policies/identitySecurityDefaultsEnforcementPolicy')
.patch({
blockHighRiskUsers: true,
riskLevelForBlocking: 'high',
});MS.AAD.3.1v1、MS.AAD.3.2v1、MS.AAD.3.3v1
到期日:2025年6月20日
MFA 配置:
实施防网络钓鱼 MFA
配置替代的 MFA 方法
在 Microsoft Authenticator 中显示登录上下文
实施细节:
await graphClient
.api('/policies/authenticationMethodsPolicy')
.patch({
policies: {
fido2: {
isEnabled: true,
isSelfServiceRegistrationAllowed: true,
},
windowsHelloForBusiness: {
isEnabled: true,
isSelfServiceRegistrationAllowed: true,
},
},
});MS.AAD.5.1v1、MS.AAD.5.2v1、MS.AAD.5.3v1、MS.AAD.5.4v1
到期日:2025年6月20日
应用程序控制:
限制仅管理员注册应用程序
限制仅管理员获得应用许可
配置管理员同意工作流程
阻止群组所有者同意
实施细节:
await graphClient
.api('/policies/applicationRegistrationManagement')
.patch({
restrictAppRegistration: true,
restrictNonAdminUsers: true,
});MS.AAD.6.1v1
到期日:2025年6月20日
密码策略:
禁用密码过期
遵循现代安全最佳实践
实施细节:
await graphClient
.api('/policies/passwordPolicy')
.patch({
passwordExpirationPolicy: {
passwordExpirationDays: 0,
neverExpire: true,
},
});MS.AAD.7.1v1 到 MS.AAD.7.8v1
到期日:2025年6月20日
特权角色管理:
限制全局管理员数量
执行细粒度的角色
需要仅限云的帐户
强制使用 PAM 系统
配置审批工作流程
设置警报
实施细节:
await graphClient
.api('/policies/roleManagementPolicies')
.patch({
enforceGranularRoles: true,
blockGlobalAdminForGeneralUse: true,
requireApprovalForGlobalAdmin: true,
});建筑学
成分
服务器类
处理 MCP 协议实现
管理工具注册和执行
实现错误处理和日志记录
验证
使用 Microsoft Graph API 进行基于令牌的身份验证
自动令牌刷新
安全凭证管理
Graph客户端
Microsoft Graph API 的包装器
类型安全的请求/响应处理
重试逻辑和错误处理
工具
旧式身份验证控制
基于风险的访问管理
MFA 配置
应用程序控制
密码策略管理
角色管理
警报配置
政策状态报告
数据流
graph TD
A[MCP Client] -->|Request| B[MCP Server]
B -->|Authentication| C[Token Manager]
C -->|Access Token| D[Graph Client]
D -->|API Calls| E[Microsoft Graph]
E -->|Response| D
D -->|Results| B
B -->|Response| A先决条件
Node.js 18.x 或更高版本
具有管理员访问权限的 Microsoft 365 租户
具有所需权限的 Azure AD 应用程序:
策略.读写.全部
角色管理.读写.全部
用户.读取.全部
应用程序.读写.全部
安装
通过 Smithery 安装
要通过Smithery自动安装 CISA M365 MCP 服务器:
npx -y @smithery/cli install cisa-m365您还可以直接从Smithery 协议目录复制 MCP 设置和定义,并将 MCP 服务器添加到支持 MCP 协议的 Claude 或 LLM 设置中。
克隆存储库:
git clone https://github.com/DynamicEndpoints/BOD-25-01-CSA-MCP.git
cd cisa-m365安装依赖项:
npm install构建服务器:
npm run build配置
创建 Azure AD 应用程序:
导航至 Azure 门户 > Azure Active Directory
注册新应用程序
添加所需的 API 权限
创建客户端机密
配置环境变量:
cp .env.example .env编辑.env文件:
TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret配置 MCP 设置:
{
"mcpServers": {
"cisa-m365": {
"command": "node",
"args": ["path/to/cisa-m365/build/index.js"],
"env": {
"TENANT_ID": "your-tenant-id",
"CLIENT_ID": "your-client-id",
"CLIENT_SECRET": "your-client-secret"
}
}
}
}用法
可用工具
block_legacy_auth
阻止传统的身份验证方法。
{}阻止高风险用户
阻止被检测为高风险的用户。
{}强制执行防钓鱼_mfa
对所有用户强制实施防网络钓鱼的 MFA。
{}配置全局管理员
配置全局管理员角色分配。
{
"userIds": ["user1-id", "user2-id"]
}获取策略状态
获取所有安全策略的当前状态。
{}示例用法
// Block legacy authentication
const result = await client.callTool('block_legacy_auth', {});
// Get policy status
const status = await client.callTool('get_policy_status', {});API 参考
策略设置 API
interface PolicySettings {
legacyAuthentication: {
blocked: boolean;
compliant: boolean;
};
highRiskUsers: {
blocked: boolean;
compliant: boolean;
};
mfa: {
phishingResistant: boolean;
alternativeEnabled: boolean;
compliant: boolean;
};
applications: {
registrationRestricted: boolean;
consentRestricted: boolean;
compliant: boolean;
};
passwords: {
expirationDisabled: boolean;
compliant: boolean;
};
roles: {
globalAdminCount: number;
granularRolesEnforced: boolean;
pamEnforced: boolean;
compliant: boolean;
};
}错误处理
服务器实现了全面的错误处理:
身份验证错误
令牌获取失败
权限问题
租户配置问题
API 错误
Graph API 请求失败
速率限制
服务不可用
验证错误
无效参数
缺少必需参数
类型不匹配
运行时错误
网络问题
超时问题
资源限制
错误响应示例:
{
"error": {
"code": "InvalidParams",
"message": "Invalid role assignment arguments",
"details": {
"parameter": "userIds",
"constraint": "Must have between 2 and 8 users",
"received": "1 user"
}
}
}测试
运行单元测试:
npm test运行集成测试:
npm run test:integration运行合规性测试:
npm run test:compliance安全注意事项
验证
使用安全令牌存储
实施代币轮换
监控可疑活动
API 访问
遵循最小特权原则
定期权限审核
监控 API 使用情况
数据保护
无敏感数据记录
安全配置存储
定期安全扫描
遵守
定期合规性检查
自动策略验证
审计日志
贡献
分叉存储库
创建功能分支
进行更改
运行测试
提交拉取请求
指南:
遵循现有的代码风格
添加新功能测试
更新文档
保持提交的原子性
执照
麻省理工学院
Available Tools
21 toolsblock_high_risk_signinsB
Block sign-ins detected as high risk (MS.AAD.2.3v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a destructive action ('Block') but does not specify permissions required, whether the block is reversible, rate limits, or what happens to affected sign-ins. This is inadequate for a mutation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a destructive operation with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, usage context, or expected outcomes, leaving significant gaps for an AI agent to understand and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not add parameter details, aligning with the schema's completeness, and thus meets the baseline for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Block') and target ('sign-ins detected as high risk'), with a specific reference to a policy standard ('MS.AAD.2.3v1'). However, it does not explicitly differentiate from sibling tools like 'block_high_risk_users', which might target users rather than sign-ins, leaving some ambiguity in sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'block_high_risk_users' or 'block_legacy_auth', nor does it mention prerequisites, conditions, or exclusions for its use. This lack of contextual direction limits effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_high_risk_usersB
Block users detected as high risk (MS.AAD.2.1v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a destructive action ('Block') but does not specify permissions required, whether the block is reversible, or any side effects (e.g., user access loss). The reference 'MS.AAD.2.1v1' is cryptic and adds little practical context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core action without fluff. It is front-loaded and wastes no words, though the cryptic reference 'MS.AAD.2.1v1' could be seen as slightly extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical details like what 'high risk' means, how users are detected, the scope of the block, or what happens post-execution. Given the complexity implied by sibling tools, more context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, avoiding redundancy. A baseline of 4 is applied since it compensates adequately for the lack of parameters by not introducing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Block') and resource ('users detected as high risk'), making the purpose specific and actionable. However, it does not distinguish this tool from sibling tools like 'block_high_risk_signins' or 'block_legacy_auth', which reduces clarity in a crowded toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'block_high_risk_signins' for sign-ins or 'block_legacy_auth' for authentication methods. The description lacks context on prerequisites, triggers, or exclusions, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_legacy_authB
Block legacy authentication (MS.AAD.1.1v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Block') but doesn't clarify what 'blocking' entails operationally (e.g., immediate enforcement, policy configuration, user impact), whether it requires specific permissions, or what the expected outcome is. This leaves significant gaps for a security enforcement tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single phrase that directly states the tool's purpose without any unnecessary words. It's front-loaded with the core action and includes just enough context (the standard reference) to be meaningful. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a security enforcement tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'blocking legacy authentication' means in practice, what systems or users are affected, whether the change is reversible, or what confirmation/result to expect. The context signals show this is a potentially impactful operation that needs more behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to compensate for any parameter gaps, and it appropriately doesn't mention parameters. A baseline of 4 is appropriate for zero-parameter tools when the schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Block legacy authentication') and specifies the resource/standard ('MS.AAD.1.1v1'), which indicates it's implementing a specific security control. However, it doesn't explicitly differentiate from sibling tools like 'block_high_risk_signins' or 'enforce_alternative_mfa', which also appear to be security enforcement tools in the same domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description doesn't mention prerequisites, timing considerations, or relationships to other tools like 'complete_auth_methods_migration' or 'enforce_phishing_resistant_mfa' that might be part of a broader authentication security strategy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_auth_methods_migrationC
Set Authentication Methods Manage Migration to Complete (MS.AAD.3.4v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a state change ('Set...to Complete') suggesting a mutation, but doesn't disclose permissions needed, side effects, or what happens after completion. This is a significant gap for a tool that likely modifies system state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's action without unnecessary words. It's appropriately sized for a no-parameter tool, though it could be slightly clearer in its phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'migration' involves, what 'complete' signifies, or the expected outcome, leaving critical behavioral and contextual gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter details, and it appropriately doesn't mention any, earning a baseline high score for parameter clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Set Authentication Methods Manage Migration to Complete') and references a specific resource (MS.AAD.3.4v1), which gives a vague purpose. However, it doesn't clearly explain what 'migration' entails or what 'complete' means in this context, making it somewhat ambiguous despite having specific terminology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description lacks context about prerequisites, timing, or related tools, leaving the agent without direction on appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_admin_alertsC
Configure alerts for Global Administrator activation (MS.AAD.7.8v1)
| Name | Required | Description | Default |
|---|---|---|---|
| notificationEmails | Yes | Email addresses to notify on role activation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions configuring alerts but fails to detail critical aspects like whether this is a read-only or destructive operation, required permissions, rate limits, or the effect on existing alerts. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a configuration tool. It doesn't explain what happens after configuration (e.g., success indicators, error handling, or alert behavior), leaving the agent with insufficient context to fully understand the tool's operation and outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'notificationEmails' clearly documented as 'Email addresses to notify on role activation'. The description adds no additional semantic context beyond this, so it meets the baseline for adequate but not enhanced parameter explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Configure alerts') and the specific resource ('Global Administrator activation'), making the purpose evident. However, it doesn't explicitly differentiate this tool from its sibling 'configure_role_alerts', which might handle alerts for other roles, leaving some ambiguity in sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'configure_role_alerts' or other alert-related tools in the sibling list. It lacks context about prerequisites, exclusions, or specific scenarios for application, offering minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_admin_consentC
Configure admin consent workflow for applications (MS.AAD.5.3v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Configure' implies a write/mutation operation, but the description doesn't disclose behavioral traits like required permissions, whether changes are reversible, or what specific aspects of the workflow are configurable. The MS.AAD.5.3v1 reference is opaque and adds no practical context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (one sentence) but includes the cryptic 'MS.AAD.5.3v1' reference that doesn't add clear value. While front-loaded with the core purpose, the reference feels like wasted space rather than earned content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a configuration/mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'configure' entails operationally, what gets changed, or what success/failure looks like. The MS.AAD reference doesn't compensate for these gaps in behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a high baseline score since it doesn't need to compensate for any schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('configure') and resource ('admin consent workflow for applications'), making the purpose specific and understandable. However, it doesn't distinguish this tool from similar-sounding siblings like 'configure_global_admin_approval' or 'restrict_app_consent', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With multiple configuration-related siblings (configure_admin_alerts, configure_global_admin_approval, restrict_app_consent, etc.), the lack of differentiation leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_authenticator_contextB
Configure Microsoft Authenticator to show login context (MS.AAD.3.3v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a configuration action but doesn't clarify whether this requires admin permissions, if it's reversible, what side effects it might have, or any rate limits. For a tool that likely modifies system settings, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the purpose without any wasted words. It's appropriately sized for a zero-parameter configuration tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a configuration tool with no annotations and no output schema, the description should provide more context about what the tool actually does, what 'login context' means, and what the expected outcome is. The current description is too minimal for a tool that likely modifies authentication settings in a production environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to explain any parameters, and it appropriately doesn't attempt to do so. A baseline of 4 is appropriate for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'configure' and the resource 'Microsoft Authenticator' with the specific purpose 'to show login context', which is more specific than just restating the name. However, it doesn't differentiate from sibling tools like 'configure_admin_alerts' or 'configure_admin_consent' that also configure settings, leaving room for improvement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites, timing considerations, or relationships to other configuration tools in the sibling list, leaving the agent with no usage context beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_global_admin_approvalB
Configure approval requirement for Global Administrator activation (MS.AAD.7.6v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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. While 'configure' implies a write/mutation operation, the description does not specify whether this requires elevated permissions, if changes are reversible, what the default state is, or any side effects. The policy reference hints at compliance but lacks operational details needed for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundant information. It is appropriately sized for a no-parameter tool and front-loads the essential action ('configure').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an administrative configuration tool with no annotations and no output schema, the description is insufficient. It lacks critical information such as required permissions, system impact, success/failure indicators, or how to verify the configuration. The policy reference adds some context but does not compensate for these gaps in operational guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's purpose. A baseline score of 4 is applied since the schema fully covers the absence of parameters, and the description does not add unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'configure' and the resource 'approval requirement for Global Administrator activation', providing a specific purpose. However, it does not distinguish this tool from its many sibling configuration tools (e.g., configure_admin_consent, configure_role_alerts), which all share similar naming patterns and administrative functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It mentions a specific policy reference ('MS.AAD.7.6v1'), which might imply a regulatory or compliance context, but does not explicitly state when this configuration is needed, what prerequisites exist, or how it differs from other sibling tools like configure_admin_consent or configure_global_admins.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_global_adminsC
Configure Global Administrator role assignments (MS.AAD.7.1v1)
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes | List of user IDs to assign Global Administrator role |
TDQS
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 states 'configure' which implies a write operation, but does not specify permissions required, whether changes are reversible, potential side effects, or any rate limits. This is a significant gap for a tool that modifies administrator roles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary details. It is front-loaded and wastes no words, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of configuring global administrators, the lack of annotations and output schema means the description should provide more context. It does not cover behavioral aspects like security implications, error handling, or response format, leaving the agent with incomplete information for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'userIds' clearly documented as a list of user IDs for role assignment, including constraints (2-8 items). The description does not add any additional meaning beyond this, such as format examples or validation rules, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('configure') and resource ('Global Administrator role assignments'), with a specific reference to MS.AAD.7.1v1 indicating a compliance or technical standard. However, it does not explicitly differentiate from sibling tools like 'configure_admin_alerts' or 'configure_role_alerts', which might involve similar configuration actions but for different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'enforce_granular_roles' or 'configure_admin_consent', which could be related to role management. There is no mention of prerequisites, context, or exclusions, leaving the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_role_alertsC
Configure alerts for privileged role assignments (MS.AAD.7.7v1)
| Name | Required | Description | Default |
|---|---|---|---|
| notificationEmails | Yes | Email addresses to notify on role assignments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions configuring alerts but does not specify whether this is a read-only or mutative operation, what permissions are required, how alerts are delivered (e.g., email frequency), or any side effects like overwriting existing settings. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely involves configuration changes. It does not cover behavioral aspects like mutability, permissions, or response format, which are critical for an agent to use it correctly in a security or compliance context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'notificationEmails' clearly documented as 'Email addresses to notify on role assignments'. The description does not add any additional semantic context beyond this, such as email format requirements or limits, so it meets the baseline of 3 where the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Configure alerts') and target resource ('privileged role assignments'), with a specific reference to 'MS.AAD.7.7v1' indicating a compliance or security standard. However, it does not explicitly differentiate from sibling tools like 'configure_admin_alerts' or 'configure_admin_consent', which limits the score to 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'configure_admin_alerts' or other alert-related tools in the sibling list. It lacks context about prerequisites, timing, or exclusions, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_password_expiryB
Disable password expiration (MS.AAD.6.1v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Disable') but doesn't clarify if this is a permanent change, requires specific authentication, has side effects (e.g., on security policies), or what the expected outcome is. This leaves significant gaps in understanding the tool's behavior beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single phrase that directly states the tool's function without any unnecessary words. It is front-loaded and wastes no space, making it efficient for quick comprehension by an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a security configuration tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after disabling password expiry (e.g., confirmation message, error handling) or any dependencies. For a tool that likely involves system changes, more context is needed to ensure safe and correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage, so there are no parameters to document. The description doesn't need to add parameter semantics, but it could have mentioned if any implicit inputs (like user context) are required. Since there are no parameters, a baseline of 4 is appropriate, as it avoids misleading or missing param info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Disable') and resource ('password expiration'), making it immediately understandable. However, it doesn't distinguish this tool from its siblings (like 'configure_admin_alerts' or 'enforce_phishing_resistant_mfa'), which are also security configuration tools but for different aspects, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or in what context it should be applied. It lacks any mention of prerequisites, such as administrative permissions or specific scenarios where disabling password expiry is appropriate, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enforce_alternative_mfaB
Enforce alternative MFA method if phishing-resistant MFA not enforced (MS.AAD.3.2v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool enforces an alternative MFA method, implying a mutation operation, but doesn't disclose critical details such as required permissions, whether changes are reversible, or any rate limits. The reference 'MS.AAD.3.2v1' adds some context but is cryptic without explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and condition. However, the cryptic reference 'MS.AAD.3.2v1' adds minor clutter without clear value, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (enforcement implies mutation) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the alternative MFA method entails, what the enforcement process involves, or what the expected outcome is, leaving significant gaps for an AI agent to understand and use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't mention any parameters, which is appropriate and maintains a baseline score of 4, as it doesn't need to compensate for gaps in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enforce alternative MFA method') and the condition ('if phishing-resistant MFA not enforced'), providing a specific verb and context. It distinguishes from sibling 'enforce_phishing_resistant_mfa' by specifying an alternative method, though it doesn't explicitly name the resource or differentiate from other MFA-related tools like 'enforce_privileged_mfa'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when phishing-resistant MFA is not enforced, but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'enforce_phishing_resistant_mfa' or 'enforce_privileged_mfa'. No exclusions or prerequisites are mentioned, leaving usage context somewhat vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enforce_cloud_accountsB
Enforce cloud-only accounts for privileged users (MS.AAD.7.3v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. 'Enforce' implies a write/mutation operation, but it doesn't disclose required permissions, whether changes are reversible, potential side effects, or rate limits. The MS.AAD reference hints at a compliance standard but doesn't clarify implementation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose with no wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by 'enforce' (a mutation operation) and the lack of annotations or output schema, the description is incomplete. It doesn't explain what 'enforce' entails operationally, what success/failure looks like, or how it interacts with the broader security framework, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose without redundant parameter details, meeting the baseline for parameter-less tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('enforce') and target ('cloud-only accounts for privileged users'), with a specific compliance reference (MS.AAD.7.3v1) adding precision. However, it doesn't explicitly differentiate from sibling tools like 'enforce_privileged_mfa' or 'enforce_alternative_mfa', which target different security controls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description mentions 'privileged users' but doesn't specify prerequisites, timing, or exclusions compared to similar enforcement tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enforce_granular_rolesB
Enforce use of granular roles instead of Global Administrator (MS.AAD.7.2v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation action ('Enforce') but does not detail what enforcement entails (e.g., policy changes, user impacts, reversibility), permissions required, or any side effects like rate limits. This lack of operational context is a significant gap for a tool with potential security implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and includes a compliance reference for added context, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (implied security enforcement), lack of annotations, and no output schema, the description is incomplete. It does not explain what happens upon execution, expected outcomes, or error conditions, leaving critical behavioral aspects undocumented for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing on the tool's purpose instead, which aligns with the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enforce use of') and target resource ('granular roles instead of Global Administrator'), with a specific reference to a compliance standard ('MS.AAD.7.2v1'). However, it does not explicitly differentiate from sibling tools like 'configure_global_admins' or 'configure_role_alerts', which might involve related role management, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as other sibling tools for role configuration or admin management. It mentions a compliance standard but does not specify prerequisites, exclusions, or contextual triggers for enforcement, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enforce_pamB
Enforce PAM system for privileged role assignments (MS.AAD.7.5v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation action ('Enforce') but does not specify permissions required, potential side effects, or response behavior. This leaves critical operational details unclear for a tool that likely modifies system settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the core action and resource, making it easy to parse quickly, which is ideal for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description is minimally adequate but lacks depth. It does not explain what 'enforce' entails operationally or what the expected outcome is, which is a gap for a mutation tool with no annotations to clarify behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description coverage is 100%, so no parameter documentation is needed. The description does not add parameter details, which is appropriate, but it includes a version reference ('MS.AAD.7.5v1') that provides some contextual semantics, slightly enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enforce') and the resource ('PAM system for privileged role assignments'), making the purpose specific and understandable. However, it does not differentiate this tool from sibling tools like 'enforce_granular_roles' or 'enforce_privileged_mfa', which also involve enforcement in similar domains, leaving some ambiguity in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as other enforcement tools in the sibling list. It lacks context about prerequisites, timing, or exclusions, offering only a basic functional statement without operational direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enforce_phishing_resistant_mfaC
Enforce phishing-resistant MFA for all users (MS.AAD.3.1v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Enforce' implies a configuration change or policy application, but the description doesn't specify whether this requires admin privileges, what happens to existing MFA settings, whether it's reversible, or what the expected outcome looks like. For a zero-parameter mutation tool with no annotation coverage, this represents significant gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) but the parenthetical reference 'MS.AAD.3.1v1' adds noise without clear value to an AI agent. While brief, it's not optimally structured - the compliance reference should either be explained or omitted for better front-loading of actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'enforce' entails operationally, what success/failure looks like, or any side effects. The MS.AAD.3.1v1 reference doesn't compensate for these gaps. Given the tool's likely administrative nature and impact on user authentication, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema description coverage, the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and the schema coverage is complete. No additional parameter information is needed or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enforce') and target ('phishing-resistant MFA for all users'), providing a specific verb+resource combination. It distinguishes from some siblings like 'enforce_alternative_mfa' and 'enforce_privileged_mfa' by specifying the phishing-resistant aspect and universal scope. However, it doesn't fully differentiate from all possible similar tools in the broader context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'enforce_alternative_mfa' or 'enforce_privileged_mfa'. There's no mention of prerequisites, timing considerations, or exclusion criteria. The MS.AAD.3.1v1 reference might imply a compliance context but doesn't offer practical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enforce_privileged_mfaB
Enforce phishing-resistant MFA for privileged roles (MS.AAD.3.6v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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. 'Enforce' implies a mutation or configuration change, but the description doesn't specify whether this is a one-time action, requires admin permissions, has side effects (e.g., affecting user access), or provides confirmation of success. It also omits details like rate limits, error handling, or what 'MS.AAD.3.6v1' refers to. For a tool with potential security impacts, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Enforce phishing-resistant MFA') and scope ('for privileged roles'). The reference 'MS.AAD.3.6v1' adds context without verbosity. Every word serves a purpose, with no redundant or vague phrasing, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a security enforcement action with no parameters) and the lack of annotations and output schema, the description is minimally adequate. It states what the tool does but misses critical behavioral details like what 'enforce' entails operationally, expected outcomes, or error conditions. For a privileged role MFA tool, more context on dependencies or consequences would improve completeness, but it meets a basic threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs, and the description doesn't need to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Enforce phishing-resistant MFA for privileged roles' with a specific verb ('enforce'), resource ('phishing-resistant MFA'), and scope ('privileged roles'). It distinguishes from siblings like 'enforce_phishing_resistant_mfa' (which lacks the privileged role focus) and 'enforce_alternative_mfa' (which specifies alternative MFA). However, it doesn't explicitly differentiate from all siblings, such as 'configure_admin_alerts' or 'restrict_app_consent', which might overlap in security policy contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It mentions 'privileged roles' but doesn't specify prerequisites, timing, or exclusions. For example, it doesn't clarify if this should be used before or after 'enforce_phishing_resistant_mfa', or if it's part of a broader security workflow with siblings like 'configure_role_alerts'. The lack of usage context leaves the agent guessing about appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_policy_statusB
Get current status of all CISA M365 security policies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('Get'), but doesn't specify if it requires authentication, has rate limits, returns real-time or cached data, or details the output format. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the status output includes (e.g., policy names, compliance levels, timestamps) or behavioral aspects like error handling, leaving the agent with insufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for this scenario is 4, as the description appropriately focuses on the tool's purpose without redundant parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'current status of all CISA M365 security policies', making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from its siblings (e.g., configuration or enforcement tools), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description lacks context about prerequisites, timing, or comparisons with sibling tools, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restrict_app_consentB
Allow only administrators to consent to applications (MS.AAD.5.2v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 implies a configuration change ('Allow only administrators') but does not specify whether this is a toggle, policy enforcement, or one-time action. Critical details like permissions required, reversibility, or impact on existing applications are missing, leaving significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function. It is front-loaded with the core action and avoids redundancy. However, the appended 'MS.AAD.5.2v1' adds minor clutter without clear value, slightly detracting from perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of security configuration tools and the lack of annotations or output schema, the description is insufficient. It does not explain the outcome, such as whether the change is immediate or requires validation, nor does it address error conditions or dependencies. For a tool that likely modifies critical permissions, more context is needed to ensure safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's purpose. This meets the baseline for tools with no parameters, as it avoids unnecessary details while maintaining relevance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Allow only administrators to consent to applications' specifies the action (allow) and target (administrator consent for applications). It distinguishes from siblings like 'restrict_app_registration' and 'configure_admin_consent' by focusing on consent permissions rather than registration or alert configuration. However, the inclusion of 'MS.AAD.5.2v1' adds technical jargon without explanation, 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.
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. It does not mention prerequisites, such as requiring administrative permissions or specific conditions in Azure AD. Without context, users might confuse it with similar tools like 'configure_admin_consent' or 'restrict_group_consent', leading to potential misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restrict_app_registrationB
Allow only administrators to register applications (MS.AAD.5.1v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool enforces a restriction policy but doesn't describe what happens when invoked: whether it's a one-time configuration change, requires admin permissions, has side effects on existing applications, or provides confirmation. For a policy enforcement tool with zero annotation coverage, this leaves critical behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. The MS.AAD.5.1v1 reference adds context but doesn't disrupt conciseness. It could be slightly improved by integrating the reference more naturally, but it's well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (policy enforcement), lack of annotations, and no output schema, the description is minimally adequate. It states what the tool does but lacks details on behavioral impact, permissions needed, or result format. For a security configuration tool, this leaves gaps that could lead to misuse or uncertainty about outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100% (empty schema is fully described). The description doesn't need to explain parameters, and the baseline for zero parameters is 4. The MS.AAD.5.1v1 reference might hint at a compliance standard but doesn't relate to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Allow only administrators to register applications' specifies the action (allow) and resource (application registration) with a clear restriction (administrators only). It distinguishes from siblings like 'restrict_app_consent' by focusing on registration rather than consent, though it doesn't explicitly compare them. The MS.AAD.5.1v1 reference adds specificity but doesn't fully explain the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites, timing considerations, or compare it to sibling tools like 'restrict_app_consent' or 'configure_admin_consent'. The agent must infer usage from the purpose alone, which is insufficient for informed tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restrict_group_consentB
Prevent group owners from consenting to applications (MS.AAD.5.4v1)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a configuration change ('Prevent') but does not specify whether this is a read-only or destructive operation, what permissions are required, or any side effects like impact on existing consents. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a configuration tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, usage context, and expected outcomes, making it incomplete for an agent to reliably invoke this tool in a real-world scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description does not add parameter semantics, but this is acceptable given the lack of parameters, warranting a baseline score of 4 for adequate coverage in this context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Prevent') and target ('group owners from consenting to applications'), making the purpose specific and understandable. However, it does not explicitly differentiate from sibling tools like 'restrict_app_consent' or 'configure_admin_consent', which limits the score to 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as 'restrict_app_consent' or 'configure_admin_consent', nor does it mention prerequisites or exclusions. It only states what the tool 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
- First observed
block_high_risk_signins - First observed
block_high_risk_users - First observed
block_legacy_auth - First observed
complete_auth_methods_migration - First observed
configure_admin_alerts - First observed
configure_admin_consent - First observed
configure_authenticator_context - First observed
configure_global_admin_approval - First observed
configure_global_admins - First observed
configure_role_alerts - First observed
disable_password_expiry - First observed
enforce_alternative_mfa - First observed
enforce_cloud_accounts - First observed
enforce_granular_roles - First observed
enforce_pam - First observed
enforce_phishing_resistant_mfa - First observed
enforce_privileged_mfa - First observed
get_policy_status - First observed
restrict_app_consent - First observed
restrict_app_registration - First observed
restrict_group_consent
TDQS
Scored across 21 tools
Each tool has a clearly distinct purpose targeting specific security policy controls - blocking sign-ins vs. users, configuring different admin workflows, enforcing various MFA methods, restricting different consent types. The descriptions with MS.AAD codes further clarify boundaries, leaving no ambiguity about which tool to use for each security requirement.
All tools follow a consistent verb_noun pattern using snake_case throughout - every tool starts with an action verb (block, complete, configure, disable, enforce, get, restrict) followed by a specific noun phrase describing the security control. This creates a highly predictable and readable naming convention across all 21 tools.
21 tools is slightly high but reasonable for the comprehensive CISA M365 security policy domain. The server covers authentication methods, admin controls, application consent, and privileged access management - each area requiring multiple specific controls. While borderline heavy, each tool addresses a distinct security requirement that earns its place in the set.
The tool set provides complete coverage for CISA M365 security policy implementation with get_policy_status for assessment and enforcement tools for every major control area: authentication methods (MFA, migration), admin security (global admins, alerts, PAM), and application governance (consent, registration). There are no obvious gaps - agents can implement the full security framework without dead ends.
Related MCP Connectors
AI governance MCP server for EU AI Act compliance and jurisdiction verification
Authenticated MCP server for ClearPolicy policy and compliance workflows.
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables interaction with Microsoft Dynamics 365 CRM from Claude Desktop, allowing users to retrieve, create, and update CRM data through natural language.521MIT
- AlicenseBqualityNot gradedmaintenanceA lightweight MCP server that enables integration with Microsoft SharePoint, allowing clients to interact with documents and folders through the Model Context Protocol.965MIT
- FlicenseNot gradedqualityDmaintenanceThis MCP Server provides a natural language interface to interact with Google's Policy Analyzer API, allowing users to analyze policies and evaluate compliance through conversations.-
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that enables interaction with Google's Organization Policy API, allowing users to manage organization policies that control resource behavior within Google Cloud environments.-