mcpField
O
Okta MCP Server

Okta MCP Server

本地服务
github.com/kapilduraphe开发工具2233 周前更新

关于 Okta MCP Server

Okta MCP Server 是一个 MCP 服务,使 Claude 能够与 Okta 用户管理系统交互,提供用户和群组管理以及入职自动化功能。适合需要通过对话管理 Okta 账户的 IT 或管理人员。

主要功能

  1. 01用户查询、按属性搜索与状态管理
  2. 02用户的激活、暂停、恢复与删除
  3. 03群组的创建、查询、删除及成员管理
  4. 04基于 CSV 的批量用户导入
  5. 05入职工作流(实验性功能)

适用场景

  1. 01按部门或职位搜索 Okta 用户
  2. 02通过 CSV 批量导入新员工并分配群组
  3. 03查看用户最近一次登录的位置

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露用于管理 Okta 用户、群组和入职流程的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai 安全评估徽章

Okta MCP 服务

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

Okta MCP 服务

前置条件

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

设置说明

1. 创建 Okta 开发者账户
  • 前往 Okta 开发者控制台
  • 创建新账户或登录现有账户
  • 记下你的 Okta 域名(例如,dev-123456.okta.com)
2. 创建 API 令牌
  • 在 Okta 开发者控制台中,前往 Security > API > Tokens
  • 点击“Create Token”
  • 为令牌起一个有意义的名称(例如,“MCP Server Token”)
  • 复制令牌值(之后将无法再次查看)
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 中的示例用法

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

用户管理
  • “显示 userId XXXX 对应用户的详细信息”
  • “查找工程部门的所有用户”
  • “搜索名字以 ‘John’ 开头的用户”
  • “查找电子邮件中包含 ‘gmail’ 的用户”
  • “显示所有已分配部门的用户”
  • “列出职务为 ‘Manager’ 的用户”
  • “用户 [email protected] 的状态是什么?”
  • “用户 [email protected] 上次登录是什么时候?”
  • “查找上个月创建的用户”
  • “激活 ID 为 XXXX 的用户”
  • “暂停 ID 为 XXXX 的用户”
  • “删除 ID 为 XXXX 的已停用用户”
  • “用户 XXXX 上次从哪里登录?”
高级用户搜索
  • “查找 Sales 部门的所有用户” → 使用 find_users_by_attribute,条件为 department eq "Sales"
  • “显示电子邮件以 ‘admin’ 开头的用户” → 使用 email sw "admin"
  • “查找已分配任意经理的用户” → 使用 manager pr
  • “列出姓氏中包含 ‘smith’ 的用户” → 使用 lastName co "smith"
群组管理
  • “显示我的 Okta 组织中的所有群组”
  • “列出包含 ‘admin’ 一词的群组”
  • “创建一个名为 ‘Marketing Team’ 的新群组”
  • “获取 ID 为 XXXX 的群组的详细信息”
  • “删除 ID 为 XXXX 的群组”
  • “将用户 XXXX 添加到群组 YYYY”
  • “将用户 XXXX 从群组 YYYY 中移除”
  • “列出 ‘Finance’ 群组中的所有用户”
入职自动化
  • “从以下 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

搜索问题:

  • 某些搜索运算符不适用于所有属性(例如,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 Admin Console 中监控 API 使用情况
  • 对 API 调用实施速率限制
  • 为 API 令牌使用所需的最低权限
  • 已为敏感搜索参数启用 PII 屏蔽

搜索运算符兼容性

不同的 Okta 属性支持不同的搜索运算符:

Attribute Typeeqswewcopr
firstName, lastName✅✅✅✅✅
email, login✅✅✅✅✅
department, title✅✅❌❌*✅
division, organization✅✅❌❌*✅
All attributes✅✅⚠️⚠️✅

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

注意: 如果不支持某个运算符,服务会自动回退到客户端筛选,以确保兼容性。

类型

服务包含用于 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,[email protected],Engineering,Senior Developer,+1-555-123-4567
Jane,Smith,[email protected],Marketing,Director,+1-555-987-6543

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

支持

如果遇到任何问题:

  • 查看上方的故障排除部分
  • 查看 Claude Desktop 日志
  • 检查服务的错误输出
  • 查看 Okta 开发者文档

注意:欢迎提交 PR!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。