返回市场
奥克塔-MCP服务器

奥克塔-MCP服务器

作者:kapilduraphe19 星标更新:2025-08-20

项目介绍

MseeP.ai 安全评估徽章

Okta MCP 服务器

此MCP服务器使Claude能够与Okta的用户管理系统进行交互,提供全面的用户和组管理功能以及入职自动化。

<a href="https://glama.ai/mcp/servers/@kapilduraphe/okta-mcp-server"> <img width="380" height="200" src="https://gips1.baidu.com/it/u=3226331134,1988030324&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Okta 服务器 MCP 服务器" /> </a>

预备条件

  • Node.js(v16或更高版本)
  • Claude 桌面应用
  • Okta 开发者账户
  • Okta 的管理员API令牌

设置说明

1. 创建Okta开发者账户

  • 访问 Okta 开发者控制台
  • 创建新账户或登录现有账户
  • 记录你的Okta域名(例如:dev-123456.okta.com

2. 创建API令牌

  • 在Okta开发者控制台中,进入安全 > API > 令牌
  • 点击“创建令牌”
  • 给你的令牌一个有意义的名字(例如:“MCP服务器令牌”)
  • 复制令牌值(你将无法再次看到它)

3. 初始项目设置

安装依赖项:

npm install

4. 配置Claude桌面应用

打开你的Claude桌面配置文件:

对于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桌面应用。

可用工具

该服务器提供了以下工具:

用户管理

get_user

从Okta检索详细的用户信息,包括:

  • 用户详情(ID、状态)
  • 账户日期(创建、激活、最后登录等)
  • 个人信息(姓名、电子邮件)
  • 就职详情
  • 联系信息
  • 地址
  • 偏好设置

find_users_by_attribute

通过任何个人资料属性进行高级过滤搜索用户:

  • 支持的属性:firstName, lastName, email, manager, department, title, division, organization, employeeNumber, costCenter, userType, city, state
  • 搜索操作符
    • eq(精确匹配) - 对所有属性有效
    • sw(以...开头) - 对所有属性有效
    • ew(以...结尾) - 对大多数属性有效
    • co(包含) - 对某些属性有效(firstName, lastName, email)
    • pr(存在) - 对所有属性有效(查找具有该属性任意值的用户)
  • 特性
    • 使用Okta的原生搜索以获得最佳性能
    • 自动回退到客户端过滤,以支持不支持的操作符
    • 在搜索结果中对敏感属性进行PII屏蔽
    • 状态过滤(包括/排除非活动用户)
    • 支持分页,可自定义限制

list_users

列出Okta中的用户,可选过滤和分页:

  • 支持SCIM过滤表达式(例如,'profile.firstName eq "John"')
  • 跨多个字段的自由文本搜索
  • 排序选项(按状态、创建日期等)
  • 支持分页,可自定义限制

activate_user

在Okta中激活用户:

  • 选择发送激活邮件
  • 更新用户状态为活跃

suspend_user

在Okta中暂停用户

unsuspend_user

在Okta中解除暂停之前被暂停的用户

delete_user

从Okta中删除用户(注意:用户必须先被停用)

get_user_last_location

从Okta系统日志中检索用户的最后已知位置和登录信息

组管理

list_groups

列出Okta中的用户组,可选过滤和分页:

  • 组的过滤表达式(例如,'type eq "OKTA_GROUP"')
  • 跨组字段的自由文本搜索
  • 排序选项(按名称、类型等)
  • 支持分页,可自定义限制

create_group

在Okta中创建一个新的组,带有名称和可选描述

get_group

检索特定组的详细信息

delete_group

从Okta中删除组

assign_user_to_group

将用户分配给Okta中的组

remove_user_from_group

从Okta中的组中移除用户

list_group_users

列出特定组中的所有用户,支持分页

入职自动化(实验性)

注意:入职自动化工具是实验性的,并可能根据Okta的API约束而有所变化或限制。在生产环境中使用时需谨慎。

bulk_user_import

从CSV字符串导入多个用户:

  • 根据CSV数据创建用户账户
  • 可选激活用户
  • 可选电子邮件通知
  • 分配到默认组

assign_users_to_groups

基于属性映射将多个用户分配给组:

  • 映射用户属性(部门、职位等)到特定组
  • 基于属性的大批量用户分配

provision_applications

为多个用户提供应用程序访问权限:

  • 将用户分配到应用程序
  • 支持批量配置

run_onboarding_workflow

根据CSV数据运行完整的入职工作流:

  • 从CSV导入用户
  • 自动激活
  • 根据属性分配组
  • 应用程序配置
  • 欢迎邮件配置

示例用法在Claude中

设置完成后,你可以使用如下命令:

用户管理

  • "显示用户ID为XXXX的用户详情"
  • "查找工程部门的所有用户"
  • "搜索名字以'John'开头的用户"
  • "查找电子邮件包含'gmail'的用户"
  • "显示所有已分配部门的用户"
  • "列出职位为'Manager'的用户"
  • "john.doe@company.com的状态是什么"
  • "jane.smith@organization.com最后一次登录是什么时候"
  • "查找上个月创建的用户"
  • "激活ID为XXXX的用户"
  • "暂停ID为XXXX的用户"
  • "删除已停用的ID为XXXX的用户"
  • "用户XXXX上次从哪里登录?"

高级用户搜索

  • "查找销售部门的所有用户" → 使用find_users_by_attributedepartment eq "Sales"
  • "显示电子邮件以'admin'开头的用户" → 使用email sw "admin"
  • "查找已分配经理的用户" → 使用manager pr
  • "列出姓氏包含'smith'的用户" → 使用lastName co "smith"

组管理

  • "显示我Okta组织中的所有组"
  • "列出包含单词'admin'的组"
  • "创建名为'Marketing Team'的新组"
  • "获取ID为XXXX的组详情"
  • "删除ID为XXXX的组"
  • "将用户XXXX添加到组YYYY"
  • "从组YYYY中移除用户XXXX"
  • "列出'Finance'组中的所有用户"

入职自动化

  • "从这些CSV数据导入用户:[CSV内容]"
  • "根据他们的部门属性将用户分配到组"
  • "为这5个用户提供应用程序访问权限"
  • "为这些新员工运行完整的入职工作流:[CSV内容]"

错误处理

服务器包括强大的错误处理机制:

  • 用户或组未找到(404错误)
  • API认证问题
  • 缺失或无效的用户档案
  • 通用API错误
  • CSV解析问题
  • 用户属性映射失败
  • 应用程序配置错误
  • 不支持的搜索操作符(自动回退到替代方法)

故障排查

常见问题

工具未出现在Claude中:

  • 检查Claude桌面日志:tail -f ~/Library/Logs/Claude/mcp*.log
  • 验证所有环境变量是否正确设置
  • 确保index.js的路径绝对且正确

认证错误:

  • 验证你的API令牌是否有效
  • 检查OKTA_ORG_URL是否包含完整的URL,包括https://
  • 确保你的Okta域名正确

服务器连接问题:

  • 检查服务器是否成功构建
  • 验证build/index.js上的文件权限(应为755)
  • 尝试直接运行服务器:node /path/to/build/index.js

搜索问题:

  • 某些搜索操作符不适用于所有属性(例如,contains不适用于department
  • 服务器在需要时会自动回退到替代搜索方法
  • 检查响应消息以了解使用了哪种搜索方法

查看日志

要查看服务器日志:

对于MacOS/Linux:

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

对于Windows:

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

环境变量

如果你遇到环境变量错误,请验证:

安全考虑

  • 保护好你的API令牌
  • 不要在版本控制系统中提交凭据
  • 使用环境变量存储敏感数据
  • 定期轮换API令牌
  • 在Okta管理控制台监控API使用情况
  • 实现API调用速率限制
  • 使用API令牌所需的最小权限
  • 对敏感搜索参数启用PII屏蔽

搜索操作符兼容性

不同的Okta属性支持不同的搜索操作符:

属性类型eqswewcopr
firstName, lastName
email, login
department, title❌*
division, organization❌*
所有属性⚠️⚠️

*❌ = 不支持,⚠️ = 可能不支持所有属性

注意:当操作符不支持时,服务器会自动回退到客户端过滤以确保兼容性。

类型

服务器包括用于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桌面日志
  • 检查服务器的错误输出
  • 查看Okta的开发者文档

注:欢迎PR!