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日
リスクの高いユーザーとサインインをブロックします。
高リスクと検出されたユーザーをブロックします
高リスクとして検出されたサインインをブロックします
Microsoftの脅威インテリジェンスを活用
実装の詳細:
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 を使用したトークンベースの認証
自動トークン更新
安全な資格情報管理
グラフクライアント
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 プロトコルをサポートする Claude または LLM セットアップに MCP サーバーを追加することもできます。
リポジトリをクローンします。
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-secretMCP 設定を構成します。
{
"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"
}
}
}
}使用法
利用可能なツール
ブロックレガシー認証
従来の認証方法をブロックします。
{}高リスクユーザーをブロックする
高リスクと検出されたユーザーをブロックします。
{}フィッシング対策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エラー
グラフ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.-