Skip to main content
Glama
kapilduraphe

Okta MCP Server

by kapilduraphe

Okta MCP サーバー

この MCP サーバーにより、Claude は Okta のユーザー管理システムと対話できるようになり、オンボーディングの自動化とともに包括的なユーザーおよびグループ管理機能が提供されます。

前提条件

  • Node.js (v16 以上)

  • クロードデスクトップアプリ

  • Okta開発者アカウント

  • Oktaからの管理者APIトークン

Related MCP server: Okta MCP Server

セットアップ手順

1. Okta開発者アカウントを作成する

  • Okta開発者コンソールへアクセス

  • 新しいアカウントを作成するか、既存のアカウントにサインインしてください

  • Okta ドメインをメモします (例: dev-123456.okta.com )

2. APIトークンを作成する

  • Okta開発者コンソールで、「セキュリティ」>「API」>「トークン」に移動します。

  • 「トークンを作成」をクリックします

  • トークンに意味のある名前を付けます(例:「MCP サーバー トークン」)

  • トークンの値をコピーします(再度表示することはできません)

3. プロジェクトの初期設定

依存関係をインストールします:

npm install

4. Claudeデスクトップを設定する

Claude Desktop 構成ファイルを開きます。

MacOSの場合:

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

Windowsの場合:

code %AppData%\Claude\claude_desktop_config.json

構成を追加または更新します。

{
    "mcpServers": {
        "okta": {
            "command": "node",
            "args": [
                "PATH_TO_PROJECT_DIRECTORY/dist/index.js"
            ],
            "env": {
                "OKTA_ORG_URL": "https://your-domain.okta.com",
                "OKTA_API_TOKEN": "your-api-token"
            }
        }
    }
}

ファイルを保存し、Claude Desktop を再起動します。

利用可能なツール

サーバーは次のツールを提供します。

ユーザー管理

get_user

Okta から以下の詳細なユーザー情報を取得します:

  • ユーザー詳細(ID、ステータス)

  • アカウントの日付(作成、有効化、最終ログインなど)

  • 個人情報(氏名、メールアドレス)

  • 雇用の詳細

  • 連絡先

  • 住所

  • 設定

リストユーザー

オプションのフィルタリングとページ区切りを使用して、Okta のユーザーを一覧表示します。

  • SCIM フィルター式をサポートします (例: 'profile.firstName eq "John"')

  • 複数のフィールドにわたる自由形式のテキスト検索

  • 並べ替えオプション(ステータス、作成日など)

  • カスタマイズ可能な制限を備えたページ区切りのサポート

アクティブ化ユーザー

Okta でユーザーをアクティブ化します。

  • アクティベーションメールを送信するオプション

  • ユーザーのステータスをアクティブに更新します

一時停止中のユーザー

Oktaでユーザーを停止する

ユーザーの一時停止解除

Okta で以前に停止されたユーザーの停止を解除します

ユーザー削除

Okta からユーザーを削除します (注: 最初にユーザーを非アクティブ化する必要があります)

get_user_last_location

Okta システム ログからユーザーの最後の既知の位置情報とログイン情報を取得します。

グループマネジメント

リストグループ

オプションのフィルタリングとページ区切りを使用して、Okta のユーザー グループを一覧表示します。

  • グループのフィルター式(例:'type eq "OKTA_GROUP"')

  • グループフィールド全体での自由形式のテキスト検索

  • 並べ替えオプション(名前、タイプなど)

  • カスタマイズ可能な制限を備えたページ区切りのサポート

グループを作成する

Okta に名前とオプションの説明を付けて新しいグループを作成します

get_group

特定のグループに関する詳細情報を取得します

グループを削除

Oktaからグループを削除します

ユーザーをグループに割り当てる

Oktaのグループにユーザーを割り当てます

グループからユーザーを削除する

Oktaのグループからユーザーを削除します

グループユーザーのリスト

ページ区切りのサポートにより、特定のグループ内のすべてのユーザーを一覧表示します。

オンボーディング自動化(実験的)

**注:**オンボーディング自動化ツールは試験段階であり、OktaのAPI制約に基づいて変更または制限される可能性があります。本番環境では慎重にご使用ください。

一括ユーザーインポート

CSV 文字列から複数のユーザーをインポートします。

  • CSVデータに基づいてユーザーアカウントを作成します

  • ユーザーのオプションアクティベーション

  • オプションの電子メール通知

  • デフォルトグループへの割り当て

ユーザーをグループに割り当てる

属性マッピングに基づいて複数のユーザーをグループに割り当てます。

  • ユーザー属性(部門、役職など)を特定のグループにマッピングします

  • 属性に基づいたユーザーの一括割り当て

プロビジョニングアプリケーション

複数のユーザーに対してアプリケーション アクセスをプロビジョニングします。

  • ユーザーをアプリケーションに割り当てる

  • 一括プロビジョニングをサポート

オンボーディングワークフローの実行

CSV データから複数のユーザーに対する完全なオンボーディング ワークフローを実行します。

  • CSVからのユーザーインポート

  • 自動起動

  • 属性に基づくグループ割り当て

  • アプリケーションのプロビジョニング

  • ウェルカムメールの設定

クロードでの使用例

セットアップ後は、次のようなコマンドを使用できます。

ユーザー管理

  • 「ユーザーID XXXX のユーザーの詳細を表示」

  • 「ユーザーjohn.doe@company.comのステータスはどうなっていますか?」

  • 「ユーザーjane.smith@organization.comの最終ログインはいつですか?」

  • 「マーケティング部門のすべてのユーザーを一覧表示する」

  • 「先月作成されたユーザーを検索する」

  • 「ID XXXXのユーザーを有効化する」

  • 「ID XXXXのユーザーを停止する」

  • 「ID XXXXの非アクティブ化されたユーザーを削除する」

  • 「ユーザー XXXX は最後にどこからログインしましたか?」

グループマネジメント

  • 「Okta 組織内のすべてのグループを表示」

  • 「「admin」という単語を含むグループを一覧表示する」

  • 「「マーケティングチーム」という新しいグループを作成する」

  • 「ID XXXXのグループの詳細を取得する」

  • 「ID XXXXのグループを削除」

  • 「ユーザー XXXX をグループ YYYY に追加する」

  • 「ユーザー XXXX をグループ YYYY から削除する」

  • 「「財務」グループ内のすべてのユーザーを一覧表示する」

オンボーディングの自動化

  • 「CSVデータからこれらのユーザーをインポートします: [CSVコンテンツ]」

  • 「部門属性に基づいてユーザーをグループに割り当てる」

  • 「これらの 5 人のユーザーにアプリケーション アクセスをプロビジョニングする」

  • 「これらの新入社員に対して完全なオンボーディングワークフローを実行します: [CSV コンテンツ]」

エラー処理

サーバーには、次の堅牢なエラー処理機能が含まれています。

  • ユーザーまたはグループが見つかりません (404 エラー)

  • API認証の問題

  • ユーザープロファイルが見つからないか無効です

  • 一般的なAPIエラー

  • CSV解析の問題

  • ユーザー属性マッピングの失敗

  • アプリケーションプロビジョニングエラー

トラブルシューティング

よくある問題

Claude に表示されないツール:

  • Claude Desktop のログを確認します: tail -f ~/Library/Logs/Claude/mcp*.log

  • すべての環境変数が正しく設定されていることを確認する

  • index.jsへのパスが絶対パスかつ正しいことを確認してください

認証エラー:

  • APIトークンが有効であることを確認してください

  • OKTA_ORG_URL に https:// を含む完全な URL が含まれているかどうかを確認します。

  • Oktaドメインが正しいことを確認する

サーバー接続の問題:

  • サーバーが正常に構築されたかどうかを確認する

  • build/index.js のファイル権限を確認します(755 である必要があります)

  • サーバーを直接実行してみます: node /path/to/build/index.js

ログの表示

サーバー ログを表示するには:

MacOS/Linuxの場合:

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Windowsの場合:

Get-Content -Path "$env:AppData\Claude\Logs\mcp*.log" -Wait -Tail 20

環境変数

環境変数エラーが発生した場合は、以下を確認してください。

  • OKTA_ORG_URL : 完全な URL である必要があります (例: " https://dev-123456.okta.com ")

  • OKTA_API_TOKEN : 有効なAPIトークンである必要があります

セキュリティに関する考慮事項

  • APIトークンを安全に保つ

  • バージョン管理に資格情報をコミットしない

  • 機密データには環境変数を使用する

  • APIトークンを定期的にローテーションする

  • Okta管理コンソールでAPIの使用状況を監視する

  • API呼び出しのレート制限を実装する

  • APIトークンに必要な最小限の権限を使用する

種類

サーバーには、Okta ユーザーおよびグループ データ用の TypeScript インターフェースが含まれています。

interface OktaUserProfile {
  login: string;
  email: string;
  secondEmail?: string;
  firstName: string;
  lastName: string;
  displayName: string;
  nickName?: string;
  organization: string;
  title: string;
  division: string;
  department: string;
  employeeNumber: string;
  userType: string;
  costCenter: string;
  mobilePhone?: string;
  primaryPhone?: string;
  streetAddress: string;
  city: string;
  state: string;
  zipCode: string;
  countryCode: string;
  preferredLanguage: string;
  profileUrl?: string;
}

interface OktaUser {
  id: string;
  status: string;
  created: string;
  activated: string;
  lastLogin: string;
  lastUpdated: string;
  statusChanged: string;
  passwordChanged: string;
  profile: OktaUserProfile;
}

interface OktaGroup {
  id: string;
  created: string;
  lastUpdated: string;
  lastMembershipUpdated: string;
  type: string;
  objectClass: string[];
  profile: {
    name: string;
    description: string;
  };
}

オンボーディング用のCSV形式

一括インポートまたはオンボーディング ワークフロー ツールを使用する場合、CSV には次のヘッダーを含める必要があります。

  • firstName (必須)

  • lastName (必須)

  • email (必須)

  • department (オプション)

  • title (オプション)

  • mobilePhone (オプション)

例:

firstName,lastName,email,department,title,mobilePhone
John,Doe,john.doe@example.com,Engineering,Senior Developer,+1-555-123-4567
Jane,Smith,jane.smith@example.com,Marketing,Director,+1-555-987-6543

ライセンス

MIT ライセンス - 詳細については LICENSE ファイルを参照してください。

サポート

問題が発生した場合:

  • 上記のトラブルシューティングセクションを確認してください

  • Claude Desktopのログを確認する

  • サーバーのエラー出力を調べる

  • Oktaの開発者向けドキュメントを確認する

注: PR を歓迎します!

Available Tools

20 tools
activate_userC

Activate a user in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
sendEmailNoWhether to send an activation email (default: true)
userIdYesThe unique identifier of the Okta user

TDQS

C2.9/5.0
Behavior2/5

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. While 'Activate' implies a state change, it doesn't specify whether this requires admin permissions, if it's reversible (via 'deactivate_user'), what happens with the email option, or typical response formats. This leaves significant behavioral gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the essential information immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 insufficient. It doesn't explain what 'activation' means in Okta's context, what happens after activation, error conditions, or relationship to sibling tools. More context is needed given the tool's complexity and lack of structured metadata.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter context beyond what's in the schema (e.g., what activation entails, email content, or userId format). Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Activate') and resource ('a user in Okta'), making the tool's purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'unsuspend_user', which might serve a similar purpose in some contexts, preventing 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.

Usage Guidelines2/5

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 'unsuspend_user' or 'run_onboarding_workflow'. There's no mention of prerequisites (e.g., user must exist in a deactivated state) or typical scenarios for activation, leaving usage context ambiguous.

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

assign_users_to_groupsC

Assign multiple users to groups based on attributes

ParametersJSON Schema
NameRequiredDescriptionDefault
attributeMappingYesMapping of user attributes to group IDs (e.g., {"department": {"Engineering": "group1Id", "Sales": "group2Id"}})
userIdsYesList of user IDs to assign

TDQS

C2.9/5.0
Behavior2/5

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 ('Assign') but doesn't cover critical traits like required permissions, whether assignments are additive or replace existing ones, error handling for invalid inputs, or side effects. This is a significant gap 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without redundancy. 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with nested objects, no output schema, and no annotations), the description is inadequate. It lacks details on behavioral traits, output expectations, error cases, and how it differs from siblings. For a tool that modifies user-group relationships in bulk, 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds minimal value by hinting at the attribute-based logic ('based on attributes'), but doesn't provide additional syntax, format details, or examples beyond what the schema's descriptions offer. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Assign') and resources ('multiple users to groups'), specifying it's based on attributes. It distinguishes from 'assign_user_to_group' by indicating bulk assignment with attribute-based logic, though it doesn't explicitly name that sibling. The purpose is specific but could be more precise about the attribute-driven mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'assign_user_to_group' (for single assignments) or 'bulk_user_import' (for broader operations). It mentions 'based on attributes' but doesn't clarify prerequisites, exclusions, or ideal scenarios, leaving usage context implied rather than explicit.

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

assign_user_to_groupC

Assign a user to a group in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesID of the group
userIdYesID of the user to assign to the group

TDQS

C2.9/5.0
Behavior2/5

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 but does not cover critical aspects such as permissions required, whether the assignment is idempotent, error handling (e.g., if user/group doesn't exist), or the response format. This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 incomplete. It fails to address behavioral traits (e.g., side effects, error conditions) or provide usage context, which is essential given the tool's role in modifying system state and the presence of similar sibling tools.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting both parameters ('groupId' and 'userId') with their types and purposes. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Assign') and the resources involved ('a user to a group in Okta'), making the purpose immediately understandable. However, it does not differentiate this tool from its sibling 'assign_users_to_groups', which might handle multiple users, 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.

Usage Guidelines2/5

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 'assign_users_to_groups' or 'remove_user_from_group'. It lacks context about prerequisites (e.g., user/group existence) or typical scenarios, leaving the agent to infer usage from tool names alone.

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

bulk_user_importC

Import multiple users from a CSV string

ParametersJSON Schema
NameRequiredDescriptionDefault
activateUsersNoWhether to activate users immediately (default: false)
csvDataYesCSV string with user information (header row required)
defaultGroupsNoDefault group IDs to assign all imported users to
sendEmailNoWhether to send activation emails (default: true)

TDQS

C2.9/5.0
Behavior2/5

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 'import' but doesn't clarify critical aspects like whether this is a mutating operation, what permissions are required, if it's idempotent, or how errors are handled. The description fails to compensate for the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 without unnecessary 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with 4 parameters and no annotations or output schema, the description is inadequate. It doesn't address behavioral traits, error handling, or what happens after import (e.g., user status). Given the complexity and lack of structured context, more detail is needed.

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

Parameters3/5

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

The schema has 100% description coverage, so parameters are well-documented in the structured fields. The description adds minimal value beyond implying CSV format, but doesn't explain parameter interactions (e.g., how 'activateUsers' and 'sendEmail' relate) or provide examples. Baseline 3 is appropriate given the comprehensive schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('import') and resource ('multiple users from a CSV string'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_user' (single user creation) or 'run_onboarding_workflow' (which might include user import).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'create_user' for single users or 'assign_users_to_groups' for group management. It lacks context about prerequisites (e.g., CSV format details) or when not to use it (e.g., for small numbers of users).

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

create_groupC

Create a new group in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNoDescription of the group (optional)
nameYesName of the group

TDQS

C2.9/5.0
Behavior2/5

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 creates a group but lacks details on permissions required, whether the operation is idempotent, what happens on conflicts (e.g., duplicate names), or the response format. This is a significant gap for a mutation tool without 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.

Conciseness5/5

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'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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a group creation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions, idempotency, or error handling, nor does it explain what the tool returns. This leaves gaps for an AI agent to understand the tool fully.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents both parameters (name and description). The description adds no additional meaning beyond what's in the schema, such as format constraints or examples. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('new group in Okta'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'assign_users_to_groups' or 'list_groups' beyond the basic verb, missing specific distinctions about scope or constraints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., permissions needed), when not to use it (e.g., for updating existing groups), or refer to sibling tools like 'delete_group' or 'list_groups' for context, leaving usage entirely implicit.

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

create_userC

Create a new user in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
activateNoWhether to activate the user immediately (default: false)
emailYesUser's email address
firstNameYesUser's first name
lastNameYesUser's last name
loginNoUser's login (defaults to email if not provided)

TDQS

C2.9/5.0
Behavior2/5

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 'Create a new user' which implies a write operation, but doesn't cover critical aspects like required permissions, whether the user is provisioned with defaults, error handling, or what happens on success (e.g., returns a user ID). 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized and front-loaded, 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., user object, ID, or success status), error conditions, or behavioral nuances like how 'activate' parameter affects user state, leaving significant gaps for agent usage.

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

Parameters3/5

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

The schema description coverage is 100%, with all parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline score of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('new user in Okta'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'bulk_user_import' or 'run_onboarding_workflow', which might also create users in different contexts, 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.

Usage Guidelines2/5

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 (e.g., admin permissions), when to choose this over 'bulk_user_import' for multiple users, or how it relates to activation/deactivation tools, leaving the agent without usage context.

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

deactivate_userC

Deactivate a user in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe unique identifier of the Okta user

TDQS

C2.9/5.0
Behavior2/5

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 'Deactivate' implies a mutation, it lacks details on permissions required, reversibility, side effects (e.g., data retention), or response format. This is a significant gap for a potentially destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 insufficient. It fails to address critical aspects like behavioral traits, error handling, or return values, leaving gaps that could hinder effective tool use by an AI agent.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'userId' clearly documented in the schema. The description does not add any meaning beyond this, such as format examples or validation rules, so it meets the baseline for adequate but unenhanced parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Deactivate') and resource ('a user in Okta'), making the purpose immediately understandable. However, it does not differentiate this tool from its sibling 'suspend_user', which likely serves a similar but distinct function, preventing 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.

Usage Guidelines2/5

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 'suspend_user' or 'delete_user', nor does it mention prerequisites or context for deactivation. Without such information, users must infer usage from the tool name alone.

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

delete_groupC

Delete a group from Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesID of the group to delete

TDQS

C2.9/5.0
Behavior2/5

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. While 'Delete' implies a destructive operation, it doesn't specify whether this is permanent or reversible, what permissions are required, whether it cascades to group memberships, or what happens on success/failure. This leaves significant behavioral gaps for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single sentence with no wasted words. It's front-loaded with the core action and resource, making it immediately understandable despite its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'delete' means in this context (permanent removal?), what the response looks like, error conditions, or dependencies on other tools. Given the complexity and risk of group deletion, more context is needed.

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

Parameters3/5

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

The input schema has 100% description coverage, with the single parameter 'groupId' clearly documented. The description doesn't add any parameter semantics beyond what the schema provides, but with complete schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and target resource ('a group from Okta'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'delete_user' or specify what type of group deletion this performs (permanent vs soft).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (like needing group ID from 'list_groups' or 'get_group'), consequences of deletion, or when to choose other tools like 'remove_user_from_group' for different operations.

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

delete_userA

Delete a user from Okta (must be deactivated first)

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe unique identifier of the Okta user

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the prerequisite (deactivation first) but doesn't mention critical behavioral traits such as whether this operation is irreversible, what permissions are required, if it affects associated data (e.g., groups, applications), or what the response looks like. For a destructive mutation tool with zero annotation coverage, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste—it states the action, resource, and key prerequisite concisely. It's appropriately sized and front-loaded, 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a destructive mutation with no annotations and no output schema), the description is minimally adequate. It covers the purpose and a critical prerequisite but lacks details on behavioral outcomes, error handling, or return values. For a high-stakes operation like user deletion, more context would be beneficial to ensure safe usage.

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

Parameters3/5

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

Schema description coverage is 100% (the 'userId' parameter is fully documented in the schema), so the baseline is 3. The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or constraints, but it doesn't need to since the schema already covers it adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Delete') and resource ('a user from Okta'), distinguishing it from sibling tools like 'deactivate_user' or 'remove_user_from_group'. It explicitly mentions the target system (Okta) and the resource type (user), providing unambiguous purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context with the prerequisite 'must be deactivated first', which is essential guidance for correct usage. However, it doesn't explicitly mention when to use alternatives like 'deactivate_user' (for temporary removal) or 'suspend_user' (for temporary suspension), though the prerequisite implies a workflow relationship with 'deactivate_user'.

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

get_groupC

Get detailed information about a specific group

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesID of the group to retrieve

TDQS

C2.9/5.0
Behavior2/5

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 retrieving 'detailed information' but fails to specify what that includes, whether it requires permissions, or if it has side effects like rate limits. This leaves significant gaps for a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 appropriately sized and front-loaded, making it easy to understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficient. It does not explain what 'detailed information' includes, how results are structured, or any behavioral traits, leaving the agent with incomplete context for proper invocation.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly documenting the 'groupId' parameter. The description adds no additional meaning beyond the schema, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('detailed information about a specific group'), making the purpose evident. However, it does not differentiate from sibling tools like 'list_groups' or 'list_group_users', which would require more specificity about what 'detailed information' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'list_groups' for broader queries or 'get_user' for individual user details. The description lacks context on prerequisites or exclusions, leaving usage unclear.

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

get_userB

Retrieve detailed user information from Okta by user ID

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe unique identifier of the Okta user

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it retrieves information (implying read-only), but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what 'detailed information' entails. For a tool with zero annotation coverage, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to scan. Every word earns its place without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a single parameter with full schema coverage, the description is incomplete. It doesn't explain what 'detailed user information' includes, potential errors, or response format. For a retrieval tool in a context with many sibling tools, more guidance is needed to be fully helpful.

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

Parameters3/5

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

Schema description coverage is 100%, with the parameter 'userId' documented as 'The unique identifier of the Okta user'. The description adds that it retrieves by user ID, but doesn't provide additional semantics beyond what the schema already states. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieve') and resource ('detailed user information from Okta'), specifying it's by user ID. It distinguishes from siblings like list_users (which lists multiple users) but doesn't explicitly contrast with get_user_last_location (which retrieves location data). The purpose is specific but could be more precise about what 'detailed information' includes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need user details by ID, but doesn't explicitly state when to use this vs. alternatives like list_users (for multiple users) or get_user_last_location (for location data). No guidance on prerequisites, error conditions, or exclusions is provided. Usage is contextually implied but not clearly articulated.

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

get_user_last_locationC

Retrieve the last known location and login information for a user from Okta system logs

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe unique identifier of the Okta user

TDQS

C2.9/5.0
Behavior2/5

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 what data is retrieved but doesn't mention whether this requires special permissions, if there are rate limits, what format the location data is in, or whether this accesses real-time vs historical data. For a tool accessing sensitive location/login information, this is insufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. Every word contributes meaning - 'retrieve' (action), 'last known location and login information' (what), 'for a user' (target), 'from Okta system logs' (source). There's no wasted verbiage or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that retrieves sensitive location and login data with no annotations and no output schema, the description is incomplete. It doesn't explain what the return data looks like, whether it includes timestamps, geographic coordinates, IP addresses, or device information. Given the complexity of location/login data and absence of structured output documentation, the description should provide more context about the returned information.

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

Parameters3/5

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

Schema description coverage is 100% (the userId parameter is fully documented in the schema), so the baseline is 3. The description doesn't add any parameter-specific information beyond what's in the schema - it doesn't clarify format requirements, provide examples, or explain how to obtain the userId. The description simply reinforces that it retrieves data 'for a user' without parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieve') and resource ('last known location and login information for a user'), and specifies the source ('from Okta system logs'). It distinguishes from generic 'get_user' by focusing on location/login data rather than user profile information. However, it doesn't explicitly differentiate from other sibling tools that might access logs or user data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'get_user' (for profile data) or other logging tools. It doesn't mention prerequisites, permissions needed, or typical use cases. The agent must infer usage from the tool name and description alone.

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

list_groupsC

List user groups from Okta with optional filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoCursor for pagination, obtained from previous response
filterNoFilter expression for groups
limitNoMaximum number of groups to return (default: 50, max: 200)
searchNoFree-form text search across group fields
sortByNoField to sort results by
sortOrderNoSort order (asc or desc, default: asc)

TDQS

C2.9/5.0
Behavior2/5

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 mentions filtering and pagination but doesn't describe what the tool returns (group objects with what fields?), default behaviors, rate limits, authentication requirements, or error conditions. For a list operation with 6 parameters, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that immediately conveys the core functionality. Every word earns its place with no redundancy or unnecessary elaboration, making it optimally concise while still informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what data is returned (group objects structure), how pagination works in practice, what filtering expressions are supported, or how this tool fits within the broader Okta group management context alongside its many siblings.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds minimal value by mentioning 'optional filtering and pagination' which aligns with parameters like 'filter', 'search', 'after', and 'limit', but doesn't provide additional semantic context beyond what's in the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('user groups from Okta'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'list_group_users' or explain how it differs from 'get_group' for single group retrieval, missing full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'optional filtering and pagination' but provides no guidance on when to use this tool versus alternatives like 'list_group_users' (for users within groups) or 'get_group' (for single group details). No explicit when/when-not instructions or prerequisite context is given.

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

list_group_usersC

List all users in a specific group

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoCursor for pagination, obtained from previous response
groupIdYesID of the group
limitNoMaximum number of users to return (default: 50, max: 200)

TDQS

C2.9/5.0
Behavior2/5

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. While 'List' implies a read operation, it doesn't mention pagination behavior (though hinted in schema), rate limits, authentication requirements, or what happens with invalid group IDs. For a tool with 3 parameters and no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a straightforward listing tool and front-loads the core functionality without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the return format, pagination behavior, error conditions, or how it differs from similar listing tools. The agent would need to rely heavily on the input schema alone to understand this tool's full context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it mentions 'specific group' which aligns with 'groupId' but provides no extra context about format, validation, or relationships between parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('users in a specific group'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_users' or 'get_group', which could cause confusion about when to use this specific tool versus alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'list_users' or 'get_group'. There's no mention of prerequisites, context, or exclusions, leaving the agent to guess when this specific group-focused listing is appropriate.

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

list_usersB

List users from Okta with optional filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoCursor for pagination, obtained from previous response
filterNoSCIM filter expression to filter users
limitNoMaximum number of users to return (default: 50, max: 200)
searchNoFree-form text search across multiple fields
sortByNoField to sort results by
sortOrderNoSort order (asc or desc, default: asc)

TDQS

B3.1/5.0
Behavior2/5

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 'optional filtering and pagination' which gives some context about capabilities, but fails to describe important behaviors like authentication requirements, rate limits, error conditions, response format, or whether this is a read-only operation (implied by 'list' but not explicit).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core functionality upfront. Every word earns its place - 'List users from Okta' establishes the purpose, while 'with optional filtering and pagination' adds important contextual information without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list operation with 6 well-documented parameters but no output schema and no annotations, the description is minimally adequate. It identifies the tool's purpose and hints at key features, but doesn't provide enough context about the response format, error handling, or integration patterns that would be helpful for an AI agent to use this tool effectively.

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

Parameters3/5

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

The schema description coverage is 100%, providing complete documentation for all 6 parameters. The description adds minimal value beyond the schema by mentioning 'optional filtering and pagination' which aligns with the 'filter' and 'after/limit' parameters, but doesn't provide additional semantic context or usage examples beyond what's already in the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('users from Okta'), making the purpose immediately understandable. It distinguishes from siblings like 'get_user' by indicating it returns multiple users rather than a single one, though it doesn't explicitly contrast with other list operations like 'list_groups'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'get_user' (for single users) or 'list_group_users' (for users within a group). It mentions optional filtering and pagination but doesn't explain when these features are appropriate or what scenarios warrant this tool over others.

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

provision_applicationsC

Provision application access for multiple users

ParametersJSON Schema
NameRequiredDescriptionDefault
applicationIdsYesApplication IDs to provision
userIdsYesList of user IDs to provision access for

TDQS

C2.9/5.0
Behavior2/5

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 ('provision') but doesn't clarify whether this is a read-only or mutative operation, what permissions are required, whether it's idempotent, or what happens on failure. For a tool that likely modifies access rights, this lack of behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a tool with two parameters and no complex behavioral nuances to explain. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that likely performs user access provisioning (a potentially significant mutation), the description is incomplete. With no annotations, no output schema, and minimal behavioral context, the agent lacks crucial information about what the tool actually does, what it returns, and what side effects it might have. The description should provide more context about this operation's nature and consequences.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters clearly documented in the schema. The description adds no additional parameter information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('provision application access') and target ('for multiple users'), which is a specific verb+resource combination. It distinguishes from siblings like 'activate_user' or 'assign_users_to_groups' by focusing on application access provisioning rather than user status or group assignments. However, it doesn't explicitly differentiate from potential similar tools not in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, exclusions, or compare with siblings like 'run_onboarding_workflow' which might overlap. The agent must infer usage from the tool name alone, which is insufficient for optimal selection.

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

remove_user_from_groupC

Remove a user from a group in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
groupIdYesID of the group
userIdYesID of the user to remove from the group

TDQS

C2.9/5.0
Behavior2/5

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 'Remove' implies a destructive mutation, the description lacks details on permissions required, whether the action is reversible, error handling, or side effects. 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.

Conciseness5/5

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 appropriately sized and front-loaded, 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It lacks critical context such as return values, error conditions, or behavioral nuances, leaving significant gaps for an agent to operate safely and effectively.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both parameters ('groupId' and 'userId'). The description does not add any additional meaning beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and target ('a user from a group in Okta'), making the purpose immediately understandable. However, it does not differentiate this tool from similar sibling tools like 'assign_users_to_groups' or 'assign_user_to_group', which would require explicit comparison to achieve a score of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sibling tools like 'assign_users_to_groups' and 'assign_user_to_group' available, there is no indication of prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.

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

run_onboarding_workflowC

Run a complete onboarding workflow for multiple users from CSV data

ParametersJSON Schema
NameRequiredDescriptionDefault
activateUsersNoWhether to activate users immediately (default: true)
applicationIdsNoApplication IDs to provision for all users
csvDataYesCSV string with user information
defaultGroupsNoDefault group IDs to assign all users to
groupMappingsNoMapping of user attributes to group IDs (e.g., {"department": {"Engineering": "group1Id"}})
sendWelcomeEmailNoWhether to send welcome emails (default: true)

TDQS

C2.9/5.0
Behavior2/5

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. While 'run a complete onboarding workflow' implies a complex, multi-step operation, the description doesn't reveal important behavioral aspects like whether this is a synchronous or asynchronous operation, what permissions are required, whether it's idempotent, what happens on partial failures, or what the expected output format is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that clearly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information about what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex workflow tool with 6 parameters (including nested objects), no annotations, and no output schema, the description is insufficient. It doesn't explain what constitutes a 'complete onboarding workflow', what steps are involved, what happens when the workflow runs, or what the agent should expect as a result. The description leaves too many behavioral questions unanswered.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description mentions 'CSV data' which aligns with the 'csvData' parameter, but adds no additional semantic context beyond what's already in the parameter descriptions. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('run a complete onboarding workflow') and resource ('multiple users from CSV data'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'bulk_user_import' or 'activate_user', which appear to handle similar user management functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sibling tools like 'bulk_user_import', 'activate_user', 'assign_users_to_groups', and 'provision_applications' available, there's no indication of when this comprehensive workflow tool is preferable to using those individual tools separately.

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

suspend_userC

Suspend a user in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe unique identifier of the Okta user

TDQS

C2.9/5.0
Behavior2/5

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. 'Suspend' implies a write operation that modifies user state, but the description doesn't specify whether this requires admin permissions, is reversible, affects user access immediately, or has side effects. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and appropriately sized for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 insufficient. It doesn't explain what suspension entails, what the response looks like, or how it differs from similar operations. Given the complexity of user management and 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.

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'userId' clearly documented in the schema. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('suspend') and target resource ('a user in Okta'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'deactivate_user' or 'unsuspend_user', which would require more specificity about what suspension means in this context versus deactivation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'deactivate_user' or 'unsuspend_user'. It lacks context about prerequisites, consequences, or typical use cases, leaving the agent to infer usage from tool names alone.

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

unsuspend_userC

Unsuspend a user in Okta

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesThe unique identifier of the Okta user

TDQS

C2.9/5.0
Behavior2/5

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 but doesn't mention permissions required, whether this is reversible, what happens to the user's access, or any rate limits. For a user management tool with zero annotation coverage, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple tool with one parameter and is perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a user status mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'unsuspend' means in Okta's context, what the expected outcome is, or any error conditions. Given the complexity of user management operations, more context is needed.

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

Parameters3/5

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

The schema has 100% description coverage, with the single parameter 'userId' clearly documented in the schema. The description doesn't add any additional parameter information beyond what's already in the schema, so it meets the baseline for when schema coverage is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('unsuspend') and resource ('a user in Okta'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'activate_user' or 'deactivate_user' which also manage user status, leaving some ambiguity about when to choose this specific tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'activate_user' or 'deactivate_user', nor does it mention prerequisites such as needing a suspended user. It simply states what the tool does without contextual usage information.

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. Dates show when Glama detected each change.

  1. 20 tool updatesv1.0.0
    • First observedactivate_user
    • First observedassign_user_to_group
    • First observedassign_users_to_groups
    • First observedbulk_user_import
    • First observedcreate_group
    • First observedcreate_user
    • First observeddeactivate_user
    • First observeddelete_group
    • First observeddelete_user
    • First observedget_group
    • First observedget_user
    • First observedget_user_last_location
    • First observedlist_group_users
    • First observedlist_groups
    • First observedlist_users
    • First observedprovision_applications
    • First observedremove_user_from_group
    • First observedrun_onboarding_workflow
    • First observedsuspend_user
    • First observedunsuspend_user

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific resources (users, groups, applications) and actions (create, get, list, activate, assign, etc.). There is no significant overlap; for example, assign_user_to_group and assign_users_to_groups differ in scope but are clearly distinguished by their descriptions.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, using snake_case uniformly. Verbs like create, get, list, assign, delete, etc., are applied predictably to nouns like user, group, or specific operations, making the set highly readable and systematic.

Tool Count4/5

With 20 tools, the count is slightly high but reasonable for an Okta server covering user and group management, onboarding, and application provisioning. It includes core CRUD operations and specialized workflows, though it might be borderline heavy for some agents.

Completeness5/5

The tool surface provides comprehensive coverage for Okta's domain, including full CRUD/lifecycle operations for users and groups (e.g., create, get, list, activate/deactivate, suspend/unsuspend, delete), bulk operations, assignment workflows, and application provisioning, with no obvious gaps for core administrative tasks.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables LLM agents to manage Okta organizations through natural language, providing full CRUD operations for users, groups, applications, policies, and system logs via Okta's Admin Management APIs.
    57
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables management of Okta identity platform through natural language, allowing users to perform operations on applications, groups, and users with secure API token authentication.
    27
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to manage Okta organizations, including users, groups, and applications, via natural language.
    15
    7
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLM agents to manage Okta organizations through the Okta Admin Management APIs, supporting user provisioning, group management, and more via natural language.
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kapilduraphe/okta-mcp-server'

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