项目简介
Okta MCP服务器是一个基于Model Context Protocol (MCP) 的后端应用,旨在连接大型语言模型(LLM)代理与Okta管理API。它允许LLM代理通过自然语言指令与您的Okta组织进行交互,执行管理任务。
主要功能点
- LLM驱动的Okta管理: 允许LLM代理根据自然语言指令在Okta环境中执行管理任务。
- Okta API集成: 利用Okta官方Go SDK与Okta组织进行安全可靠的交互。
- 工具注册与执行: 将Okta的各项操作(如创建用户、查询用户等)封装为MCP工具,供LLM调用执行。
- 灵活的工具集: 支持按需启用或禁用特定的Okta工具集,增强安全性和控制。
- 支持Stdio传输: 通过标准输入输出流与MCP客户端通信。
安装步骤
该项目使用Go语言编写。请确保您已安装Go环境。
- 获取Okta API凭据: 在您的Okta组织中创建一个API Token,并确保其拥有执行所需操作的权限。详情请参阅Okta开发者文档。
- 克隆仓库:
git clone https://github.com/radar07/mcp-server-okta.git cd mcp-server-okta - 构建可执行文件:
这将在当前目录生成名为 'mcp-server-okta' 的可执行文件。go build -o mcp-server-okta ./cmd/mcp-server-okta
服务器配置
MCP客户端(通常是您的LLM代理应用)需要知道如何启动并连接到此MCP服务器。连接配置通常包含服务器名称、可执行文件路径和启动参数。本服务器通过命令行参数接收Okta凭据、日志路径、启用的工具集和是否只读模式。
一个典型的MCP客户端配置(例如JSON格式)可能需要以下信息:
-
'name': 服务器的标识名称,例如 '"okta"'。
-
'command': 服务器可执行文件的路径,例如 '"/path/to/your/mcp-server-okta"'。
-
'args': 传递给服务器的命令行参数列表。
- 'stdio': 指定使用Stdio传输协议。
- '--api_token YOUR_OKTA_API_TOKEN': 指定用于连接Okta API的Token。请务必妥善保管您的API Token。
- '--org_url YOUR_OKTA_ORG_URL': 指定您的Okta组织的URL,例如 'https://your-org.okta.com'。
- '--log_file /path/to/server.log': (可选) 指定服务器日志的输出文件路径。
- '--toolsets users,groups': (可选) 指定要启用的工具集列表,多个工具集用逗号分隔。如果留空,将启用所有可用的工具集。
- '--read_only': (可选) 如果指定此参数,服务器将只启用读取操作的工具,禁用写入操作工具。
-
'transport': 指定使用的传输协议,例如 '"stdio"'。
注意: MCP客户端的具体配置格式取决于您使用的客户端实现。上述参数是本'mcp-server-okta'服务器在启动时所需要的。
基本使用方法
- 启动服务器: 按照上述配置,通过您的MCP客户端启动'mcp-server-okta'进程,并建立Stdio连接。
- 客户端交互: MCP客户端会与服务器进行能力协商(Capability Negotiation),发现服务器提供的工具(如'create_user', 'fetch_users'等)及其参数定义。
- LLM调用工具: 您的LLM代理接收到用户的自然语言指令(例如“创建一个新Okta用户叫John Doe,邮箱是[email protected]”)后,分析指令并根据服务器声明的工具定义,构造一个MCP Tool Call请求(包含工具名称和参数)。
- 服务器执行: MCP服务器接收到Tool Call请求后,调用相应的Okta API执行操作,并将结果或错误通过MCP Tool Result响应返回给客户端。
- LLM处理结果: LLM代理接收到Tool Result后,将结果信息(成功消息、查询到的用户数据、错误信息等)以自然语言的形式呈现给用户。
例如,LLM代理可能会生成一个调用'create_user'工具的请求,参数包含用户的first_name, last_name, email, login等。服务器收到请求后,调用Okta API创建用户,并将创建成功后的用户对象(或错误信息)返回。
信息
分类
商业系统