此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>dev-123456.okta.com)安装依赖项:
npm install
打开你的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桌面应用。
该服务器提供了以下工具:
从Okta检索详细的用户信息,包括:
通过任何个人资料属性进行高级过滤搜索用户:
eq(精确匹配) - 对所有属性有效sw(以...开头) - 对所有属性有效ew(以...结尾) - 对大多数属性有效co(包含) - 对某些属性有效(firstName, lastName, email)pr(存在) - 对所有属性有效(查找具有该属性任意值的用户)列出Okta中的用户,可选过滤和分页:
在Okta中激活用户:
在Okta中暂停用户
在Okta中解除暂停之前被暂停的用户
从Okta中删除用户(注意:用户必须先被停用)
从Okta系统日志中检索用户的最后已知位置和登录信息
列出Okta中的用户组,可选过滤和分页:
在Okta中创建一个新的组,带有名称和可选描述
检索特定组的详细信息
从Okta中删除组
将用户分配给Okta中的组
从Okta中的组中移除用户
列出特定组中的所有用户,支持分页
注意:入职自动化工具是实验性的,并可能根据Okta的API约束而有所变化或限制。在生产环境中使用时需谨慎。
从CSV字符串导入多个用户:
基于属性映射将多个用户分配给组:
为多个用户提供应用程序访问权限:
根据CSV数据运行完整的入职工作流:
设置完成后,你可以使用如下命令:
find_users_by_attribute与department eq "Sales"email sw "admin"manager prlastName co "smith"服务器包括强大的错误处理机制:
工具未出现在Claude中:
tail -f ~/Library/Logs/Claude/mcp*.log认证错误:
服务器连接问题:
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
如果你遇到环境变量错误,请验证:
OKTA_ORG_URL:应为完整URL(例如,“https://dev-123456.okta.com”)OKTA_API_TOKEN:应为有效的API令牌不同的Okta属性支持不同的搜索操作符:
| 属性类型 | eq | sw | ew | co | pr |
|---|---|---|---|---|---|
| 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应包含这些标题:
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文件。
如果你遇到任何问题:
注:欢迎PR!