mcpField
O
Okta Mcp Server

Okta Mcp Server

本地服务
fctr.io开发工具3827 周前更新

关于 Okta Mcp Server

Okta MCP Server 是一个 MCP 服务,让 AI 模型直接查询和分析 Okta 环境中的用户、群组、应用和日志。它面向 IAM 工程师、安全团队和 Okta 管理员,并提供访问分析与登录风险评估等专用工具。

主要功能

  1. 01查询用户、群组、应用及策略等 Okta 资源
  2. 02访问权限分析工具 analyze_user_app_access
  3. 03登录风险评估工具 analyze_login_risk
  4. 04支持 STDIO 与 HTTP 传输方式

适用场景

  1. 01排查用户为何无法访问某个应用
  2. 02检查可疑登录活动的风险
  3. 03通过 AI 助手批量查询已锁定用户等信息

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 Okta 的用户、群组、应用、策略、网络区域和系统日志等工具。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

Okta MCP Server(v0.1.1-BETA)

🔥 注意!!!全新重构的 MCP Server 现已推出

基于 Anthropic 全新的 MCP 架构模式全面重写,支持双模式运行、上下文工程、增强型安全沙箱以及可用于生产环境的 Docker 支持。

→ 探索 TAKO MCP Server

Okta MCP Server 是一款开创性的工具,可让 AI 模型使用 Model Context Protocol(MCP)直接与您的 Okta 环境交互。它专为 IAM 工程师、安全团队和 Okta 管理员打造,实现了 MCP 规范,改变了 AI 助手帮助管理和分析 Okta 资源的方式。
快速演示

Okta MCP Server 演示

🎉 v0.1.1-BETA 有哪些新内容——企业级专用工具!

此版本推出了强大的专用工具,彻底革新 Okta 日常管理任务:

🔥 全新:专用工具——Okta 管理员的得力助手
  • 🎯 全面访问分析:帮助解答 Okta 管理员最常遇到的问题:用户 X 能否访问应用 Y?
  • 🛡️ 高级登录风险评估:通过行为分析检测 VPN/Tor,并检查地理位置上的不可能情况,有助于处理可疑活动报告邮件。

💡 实际示例——访问分析:

❓ Question: "Can user [email protected] access the application Salesforce?"

🤖 AI Response (30 seconds): "User John Smith can access Salesforce because: 
1) User is ACTIVE ✅
2) User is assigned via group 'Sales Team' ✅, 
3) Policy allows access with 2FA from corporate network or requires PUSH factor from external locations - user has PUSH enrolled ✅"

⏱️ Manual Process: Navigate Users → Find John → Check Status → Check App 
Assignments → Check Group Memberships → Check Salesforce Assignments → 
Review Access Policies → Check MFA Factors → Correlate Network Rules (10-15 min)

💡 实际示例——登录风险评估:

❓ Question: "Is [email protected]'s recent login activity suspicious?"

🤖 AI Response (30 seconds): "LOW RISK - Dan exhibits excellent login 
security patterns: consistent geographic area, same residential ISP, 
stable device fingerprints, normal browser patterns, zero VPN/proxy 
usage, all Okta risk scores LOW ✅"

⏱️ Manual Process: System Logs → Filter User → Check Locations → Review 
IP Addresses → Cross-reference Network Zones → Analyze Device Patterns → 
Check Geographic Impossibility → Review Behavioral Flags (15+ min)
🏗️ 核心架构
  • 🚀 FastMCP 2.0:从旧版 MCP 包迁移至 FastMCP 2.0,采用前沿的协议功能
  • 🧹 更简洁的代码:移除 tool_registry.py 依赖,让代码库更简单、更易维护
  • ⚡ 更出色的性能:采用现代异步模式并优化请求处理
🛠️ 增强型工具
  • 📝 全面重写:重写所有工具,改进注释和描述,便于 AI 理解
  • 🛡️ 改进验证:增强所有操作的错误处理和输入验证
🔐 高级安全性
  • 🎫 Bearer Token:全面支持 JWT bearer token,并验证 jwks_uri
  • 🏢 企业级身份验证:支持企业身份验证流程和基于范围的访问
🚀 面向未来
  • 🔌 支持中间件:可扩展的中间件系统,支持自定义处理
  • 📡 协议演进:可使用最新开发和标准化的 MCP 功能

📝 注意:由于与 pydantic-ai 的依赖冲突(安全漏洞),CLI 客户端和 AI 采样功能已移至 _Archived/ 文件夹。详情请参阅 _Archived/README.md。

📋 目录

 

🔍 什么是模型上下文协议?

模型上下文协议(MCP)是一种开放标准,可让 AI 模型以结构化、安全的方式与外部工具和服务交互。它提供了统一的接口,供 AI 系统发现并使用服务端公开的功能,从而让 AI 助手能够将功能扩展到训练数据之外。

可以把 MCP 看作“AI 集成领域的 USB-C”——正如 USB-C 提供了通用标准,让各种设备不受制造商限制地连接和通信,MCP 也为 AI 模型提供了标准化方式,使其能够发现并与不同服务交互,而无需针对每项服务进行定制集成。这种“即插即用”的方式意味着开发者只需构建一次工具,即可让它们适用于多个 AI 助手;用户也能享受无缝集成,无需担心兼容性问题。

示例:“找出我们 Okta 租户中所有被锁定的用户,并在 Google Drive 的 IT Operations 文件夹中创建一个电子表格,列出他们的姓名、电子邮件地址和上次登录日期。” AI 使用 Okta MCP Server 查询被锁定的用户,然后将数据传递给 Google Drive MCP Server 来创建电子表格——全程无需编写定制代码。

⚠️ 重要:安全性与限制

使用 Okta MCP Server 前,请仔细阅读本节。

🔄 数据流与隐私

发起请求时,交互会直接发生在大模型与 Okta MCP 工具之间,客户端应用不再处于中间环节。这些工具返回的所有数据(包括完整的用户档案、群组成员信息等)都会在整个会话事务期间发送到大模型的上下文中并存储其中。

主要隐私注意事项:

  • 大模型(Claude、GPT 等)会接收并处理工具检索到的所有 Okta 数据
  • 在整个会话期间,这些数据都会保留在大模型的上下文中
  • 你必须能够接受 Okta 用户数据由大模型提供商的系统处理
  • 使用这些工具前,请确认你能够接受 Okta 数据被发送到 AI 模型的服务器
📊 上下文窗口限制

MCP 面向类似 Zapier 的轻量级工作流设计,而非批量数据操作。

建议: 将每次事务的请求限制在少于 100 个实体。避免需要获取大型数据集或进行多次 API 调用的操作。

示例:

❌ 避免这类请求:

  • “从我们的 Okta 租户中获取全部 10,000 个用户,并分析他们的登录模式”
  • “查找未将 Okta Verify 注册为验证因素的用户”

✅ 更好的做法:

  • “获取最近创建的 20 个用户”
  • “查找超过 90 天未登录的用户,结果限制为前 50 个”

💡 对于较大的数据集和复杂查询: 对于较大规模的查询和数据集,可考虑使用 Okta AI Agent。该 Agent 正在增强类似的“可执行”功能,以便在不久的将来处理更大的数据集和更复杂的场景。

🚨 HTTP 传输安全警告

HTTP 传输模式(包括 Streamable HTTP 和 SSE)存在严重的安全风险:

  • 它们会开启未经身份验证的 HTTP 服务,并使其能够完全访问你的 Okta 租户
  • 不提供身份验证或授权
  • 任何能够访问网络端口的人都可以向你的 Okta 环境发出命令
  • 通过 mcp-remote 远程访问 HTTP 时,极其危险

最佳实践: 除非你已设置特定的安全控制措施并了解相关风险,否则仅使用 STDIO 传输方式(默认模式)。

🛠️ 可用工具

Okta MCP 服务目前提供以下工具:

🔥 特殊工具 — 企业管理加速器

访问分析与故障排查

  • analyze_user_app_access - 全面的用户应用访问评估与策略分析(可替代 10-15 分钟的 Okta Admin Console 手动导航操作)

安全与风险评估

  • analyze_login_risk - 全面的登录行为分析,包含 VPN/Tor 检测和地理位置异常检查(即时回答“此用户是否已遭入侵?”)

⚡ 这些工具为何重要:Okta 管理员每天最常遇到的两个问题是“用户 X 为什么无法访问应用 Y?”和“这项登录活动是否可疑?”。这些特殊工具可立即提供全面的答案,而原本需要在多个 Okta 管理页面中进行大量手动调查、策略审查和日志分析才能得出答案。这些工具将原本需要 15 分钟以上的调查,转变为由 AI 驱动、仅需 30 秒的洞察。

📊 标准工具

用户管理

  • list_okta_users - 根据筛选、搜索和分页选项检索用户
  • get_okta_user - 按 ID 或登录名获取特定用户的详细信息
  • list_okta_user_groups - 列出特定用户所属的所有群组
  • list_okta_user_applications - 列出特定用户的所有应用程序链接(已分配的应用程序)
  • list_okta_user_factors - 列出特定用户注册的所有身份验证因子

群组操作

  • list_okta_groups - 根据筛选、搜索和分页选项检索群组
  • get_okta_group - 获取特定群组的详细信息
  • list_okta_group_members - 列出特定群组的所有成员
  • list_okta_assigned_applications_for_group - 列出分配给特定群组的所有应用程序

应用程序管理

  • list_okta_applications - 根据筛选、搜索和分页选项检索应用程序
  • list_okta_application_users - 列出分配给特定应用程序的所有用户
  • list_okta_application_group_assignments - 列出分配给特定应用程序的所有群组

策略与网络管理

  • list_okta_policy_rules - 列出特定策略的所有规则,并提供详细的条件和操作信息
  • get_okta_policy_rule - 获取特定策略规则的详细信息
  • list_okta_network_zones - 列出所有网络区域及其 IP 范围和配置详情

系统日志事件

  • get_okta_event_logs - 检索 Okta 系统日志事件,支持按时间筛选和搜索

日期与时间工具

  • get_current_time - 获取 ISO 8601 格式的当前 UTC 时间
  • parse_relative_time - 将自然语言时间表达式转换为 ISO 8601 格式

应用程序、身份验证因子、策略和更多高级操作的其他工具已列入路线图,将在未来版本中添加。

🚀 快速开始

前提条件

✅ 计算机上已安装 Python 3.8+
✅ 拥有具备适当 API 访问权限的 Okta 租户
✅ 兼容 MCP 的 AI 客户端(Claude Desktop、Microsoft Copilot Studio 等)

⚠️ 重要的模型兼容性说明:
并非所有 AI 模型都能与此 MCP 服务配合使用。目前仅针对以下模型进行了测试:

  • GPT-4.0
  • Claude 3.7 Sonnet
  • Google-2.5-pro

必须使用明确支持工具调用/函数调用能力的最新模型版本。较旧的模型或不支持工具调用的模型将无法与 Okta MCP Server 交互。

🧠 支持的 AI 提供商

Okta MCP Server 通过灵活的配置系统支持多个 AI 提供商。你可以根据具体需求和现有访问权限,连接各种大模型。

当前支持的提供商:
提供商环境变量描述
OpenAIAI_PROVIDER=openai连接 OpenAI API,使用 GPT-4o 等模型。需要 OpenAI API 密钥。
Azure OpenAIAI_PROVIDER=azure_openai使用由 Azure 托管的 OpenAI 模型,享受增强的安全性和合规功能。
AnthropicAI_PROVIDER=anthropic连接 Anthropic 的 Claude 模型(主要使用 Claude 3.7 Sonnet 进行了测试)。
Google Vertex AIAI_PROVIDER=vertex_ai通过 Vertex AI 使用 Google 的 Gemini 模型。需要 Google Cloud 服务账号。
兼容 OpenAI 的服务AI_PROVIDER=openai_compatible连接任何兼容 OpenAI API 的端点,例如 Fireworks.ai、Ollama,或其他实现 OpenAI API 规范的提供商。
安装
# Clone the repository
git clone https://github.com/fctr-id/okta-mcp-server.git
cd okta-mcp-server

# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows use: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

⚠️ 注意: 如果重新克隆此仓库或拉取更新,请务必重新运行 pip install -r requirements.txt,以确保所有依赖项均为最新版本。

配置与使用

创建包含 Okta 设置的配置文件:

📝 注意:独立 CLI 客户端已归档。对于 MCP 主机集成(Claude Desktop、VS Code 等),请直接使用服务器,并采用下面的 JSON 配置。

支持的传输方式与启动

Okta MCP Server 支持多种传输协议:

1. 标准输入/输出(STDIO)- 推荐
  • 安全性:✅ 通过标准输入/输出流直接通信
  • 适用场景:非常适合 Claude Desktop 等桌面 AI 助手
  • 性能:✅ 轻量且高效
  • 配置:对于 Claude Desktop,请添加到 claude_desktop_config.json:
    {
      "mcpServers": {
        "okta-mcp-server": {
          "command": "DIR/okta-mcp-server/venv/Scripts/python",
          "args": [
            "DIR/okta-mcp-server/main.py"
          ],
          "env": {
            "OKTA_CLIENT_ORGURL": "https://dev-1606.okta.com",
            "OKTA_API_TOKEN": "OKTA_API_TOKEN"
          }
        }
      }
    }
    
    将 DIR 替换为绝对目录路径,并将 OKTA_API_TOKEN 替换为实际令牌
2. Streamable HTTP 传输 - 现代且当前标准

当前标准 - 基于 HTTP 的现代传输方式,具备高级功能:

  • 功能:✅ 实时事件流、会话管理、支持恢复
  • 性能:✅ 可扩展性和连接处理能力更强
  • 适用场景:支持 HTTP 流式传输的现代 Web 应用和客户端
  • 安全性:⚠️ 本地 HTTP 服务器 - 在受控环境中安全

启动 Streamable HTTP 服务器:

# Start server with explicit risk acknowledgment
python main.py --http --iunderstandtherisks

# Server will start on http://localhost:3000/mcp
# Connect using streamable HTTP compatible clients

功能:

  • ✅ 实时流式传输 - 操作期间实时更新进度
  • ✅ 会话管理 - 保持连接状态
  • ✅ 事件流 - 通过服务器发送事件提供实时通知
  • ✅ 更好的错误处理 - 提供详细的错误响应
  • ✅ 现代协议 - 基于最新的 MCP 规范
3. 远程 HTTP 访问 - 仅限高风险高级用途

⚠️ 极其危险 - 请仔细阅读

对于原生不支持远程连接的 MCP 客户端,可以通过 NPX 使用 mcp-remote:

前提条件:

  • 已安装 Node.js 和 NPM
  • Okta MCP Server 正在 HTTP 模式下运行

设置:

# 1. Install mcp-remote globally
npm install -g @anthropic/mcp-remote

# 2. Start your Okta MCP Server in HTTP mode
python main.py --http --iunderstandtherisks

# 3. Configure your MCP client (e.g., Claude Desktop)

Claude Desktop 配置:

{
  "mcpServers": {
    "okta-mcp-server": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:3000/mcp"
      ],
      "env": {
        "OKTA_CLIENT_ORGURL": "https://dev-1606.okta.com",
        "OKTA_API_TOKEN": "your_actual_api_token"
      }
    }
  }
}

🚨 关键安全警告:

  • 切勿在生产环境中使用
  • 切勿将 HTTP 端口(3000)暴露给公共网络
  • 任何能够访问网络的人都可以控制你的 Okta 租户
  • 没有身份验证或授权保护
  • 所有 Okta 操作都不受限制地开放
  • 仅在隔离且安全的开发环境中使用
  • 仅当绝对无法使用 STDIO 传输时,才考虑采用此方式

哪些情况下可能需要采用此方式:

  • 测试需要 HTTP 传输的 MCP 集成
  • 无法使用 STDIO 的特定客户端应用
  • 需要通过 HTTP 进行调试的开发场景
  • 绝不可用于生产环境或共享环境
4. 服务器发送事件(SSE)- 已弃用

**⚠️ 已弃用:**SSE 传输已弃用,不建议在新实现中使用。

# Run in SSE mode (requires explicit risk acknowledgment)
python main.py --sse --iunderstandtherisks
  • 适用场景:明确要求使用 SSE 的旧版 MCP 客户端(不推荐)
  • 安全性:⚠️ 与 Streamable HTTP 相同的 HTTP 安全风险
  • 建议:所有新的实现都改用 Streamable HTTP 传输

5. Docker 部署

Okta MCP Server 为所有传输类型提供 Docker 镜像,支持容器化部署。

运行 Docker 容器

STDIO 传输(推荐): 对于 Claude Desktop 或其他 MCP 客户端,请配置为使用 Docker 容器:

{
  "mcpServers": {
    "okta-mcp-server": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "OKTA_CLIENT_ORGURL",
        "-e", "OKTA_API_TOKEN",
        "fctrid/okta-mcp-server:stdio"
      ],
      "env": {
        "OKTA_CLIENT_ORGURL": "https://your-org.okta.com",
        "OKTA_API_TOKEN": "your_api_token"
      }
    }
  }
}

Streamable HTTP 传输(当前标准):

# Start the HTTP container
docker run -d --name okta-mcp-http \
  -p 3000:3000 \
  -e OKTA_API_TOKEN=your_api_token \
  -e OKTA_CLIENT_ORGURL=https://your-org.okta.com \
  fctrid/okta-mcp-server:http

# Configure your MCP client to connect to http://localhost:3000/mcp

SSE 传输(已弃用 - 不推荐):

# Start the SSE container (deprecated)
docker run -d --name okta-mcp-sse \
  -p 3000:3000 \
  -e OKTA_API_TOKEN=your_api_token \
  -e OKTA_CLIENT_ORGURL=https://your-org.okta.com \
  fctrid/okta-mcp-server:sse

# Configure your MCP client to connect to http://localhost:3000/sse

在本地构建镜像:

# Build all variants
docker build --target stdio -t okta-mcp-server:stdio .
docker build --target http -t okta-mcp-server:http .
docker build --target sse -t okta-mcp-server:sse .

⚠️ 温馨提示

Beta 版发布 🧪
  • 采用 FastMCP 2.0 对架构进行了全面重写
  • 与之前的 Alpha 版相比,稳定性和性能均有所提升
  • 提供更完善的工具系统,并改进了 AI 集成
  • 更适合开发和测试环境
  • 正在评估其生产就绪情况,并增强安全功能
安全至上 🛡️
  • 专为遵循最小权限原则而设计
  • 默认只读访问 Okta 资源
  • 未来的写入操作将需要明确的审批流程
当前限制 🔍
  • 初期仅提供一组面向用户和群组的只读工具
  • 计划在后续版本中快速扩展 API 覆盖范围
  • 尚未公开某些复杂的 Okta 关系
  • 尚未针对超大型 Okta 实例优化性能
  • 需要直接访问 Okta API 端点

🗺️ 路线图

v0.1.0-BETA - 当前版本(重大架构改造!)

  • 完成向 FastMCP 2.0 架构的迁移
  • 全面重写所有工具,并增强注释
  • 推出支持多种传输方式的新统一 CLI 客户端
  • 移除对 tool_registry.py 的依赖,让代码库更简洁
  • 增强 Bearer 令牌支持,并验证 jwks_uri
  • 大幅增强错误处理和验证
  • 优化性能并采用现代异步模式

v0.3.0 - 之前的版本

  • 支持 Streamable HTTP 传输
  • 实时事件流
  • 会话管理与恢复
  • 增强客户端应用

未来计划包括:

  • 完整的用户生命周期操作
  • 应用分配管理
  • 群组成员关系操作
  • 身份验证因素的注册与验证
  • 策略和规则管理
  • 敏感操作的审批工作流
  • 多渠道审批选项(Web、电子邮件、Slack)
  • 审计日志记录与合规报告
  • 系统日志集成
  • 安全洞察生成
  • 多租户支持
  • 基于角色的访问控制

🆘 需要帮助?

提交问题前,请检查:

  1. 📝 服务配置
  2. 🔑 Okta API 权限
  3. 🔌 MCP 客户端兼容性
  4. 📊 服务日志

仍有问题?请在 GitHub 上提交 issue,或发送电子邮件至 [email protected](响应时间可能有所不同)。

💡 功能请求与想法

有想法或建议?请在 GitHub 上提交功能请求!

👥 贡献者

有兴趣参与贡献吗?我们非常欢迎!请联系 [email protected],了解合作机会。

⚖️ 法律信息

请查看 License.md 了解详细条款。


🌟 © 2025 Fctr Identity。保留所有权利。为 Okta 和 AI 社区倾心打造 ❤️。

评论

支持 Markdown

第一次接触 MCP?

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

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