O

Okta用户管理工具

@kapilduraphe/okta-mcp-server
0 Stars 288 次浏览 kapilduraphe 更新于 2026-08-23

启用 Claude 与 Okta 的用户管理系统交互,提供检索用户详细信息、列出带有过滤选项的用户以及管理用户组的功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

该服务需要配置环境变量:OKTA_API_TOKEN、OKTA_ORG_URL

服务介绍

Okta MCP 服务器

该MCP服务器使Claude能够与Okta的用户管理系统进行交互,提供用户和组管理功能。

先决条件

  • 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、状态)
  • 账户日期(创建、激活、最后登录等)
  • 个人信息(姓名、电子邮件)
  • 工作信息
  • 联系信息
  • 地址
  • 偏好设置

list_users

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

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

list_groups

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

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

Claude中的示例使用

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

  • “显示userId为XXXX的用户的详细信息”
  • “john.doe@company.com的状态是什么”
  • “jane.smith@organization.com最后一次登录是什么时候”
  • “列出市场部门的所有用户”
  • “查找过去一个月内创建的用户”
  • “显示我Okta组织中的所有组”
  • “列出包含'admin'一词的组”

错误处理

服务器包含了针对以下情况的强大错误处理机制:

  • 找不到用户或组(404错误)
  • API认证问题
  • 缺失或无效的用户资料
  • 一般API错误

故障排除

常见问题

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

查看日志

要查看服务器日志:

对于 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;
  };
}

许可证

MIT 许可证 - 请参阅 LICENSE 文件以获取详细信息。

支持

如果您遇到任何问题:

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

注意:欢迎提交 PR!

相关 MCP 服务