使用说明

项目简介

OpenFGA MCP Server 是一个实验性的 MCP 服务器,它允许大型语言模型(LLM)读取、搜索和操作 OpenFGA 授权服务的 stores。该服务器旨在为 Agentic AI 应用提供权限管理能力,并支持人类进行细粒度的权限控制。简单来说,它充当 LLM 和 OpenFGA 之间的桥梁,让 LLM 能够利用 OpenFGA 的权限管理功能。

主要功能点

  • 工具 (Tools):提供了一系列预定义的工具,允许 LLM 调用 OpenFGA 的功能,例如:
    • 'check': 检查用户是否对某个对象具有特定关系。
    • 'list_objects': 列出用户有权访问的特定类型的对象。
    • 'write_tuples': 向 OpenFGA store 写入权限元组(关系)。
    • 'read_tuples': 从 OpenFGA store 读取权限元组。
    • 'get_authorization_model': 获取当前 OpenFGA 授权模型。
  • 资源 (Resources)Prompt 模板 (Prompts):虽然仓库描述中提及,但在当前版本中可能尚未明确实现资源和 Prompt 模板的管理功能,主要聚焦于通过工具集成 OpenFGA 的能力。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.12 或更高版本。
    • 确保已运行 OpenFGA 服务器 (根据仓库 'README.md' 链接安装和配置)。
  2. 安装 OpenFGA MCP Server:

    • 推荐使用 UVX 运行服务器。如果尚未安装 UVX,请先安装 UVX。
    • 使用 UVX 运行 OpenFGA MCP Server,命令如下:
    uvx openfga-mcp@latest

服务器配置 (MCP 客户端配置)

对于 MCP 客户端(例如 Claude Desktop, Raycast, Cursor, Windsurf),需要配置连接到 OpenFGA MCP Server 的信息。配置格式通常为 JSON,以下是 Claude Desktop 的配置示例,其他客户端配置方式类似,请参考各自客户端的 MCP 服务器配置文档。

{
    "mcpServers": {
        "openfga-mcp": {
            "command": "uvx",
            "args": [
                "openfga-mcp@latest",
                // 以下为 OpenFGA MCP Server 的启动参数,根据实际 OpenFGA 环境配置
                // "--openfga_url", "http://127.0.0.1:8000",  // OpenFGA 服务器 URL (必填)
                // "--openfga_store", "your-store-id",      // OpenFGA Store ID (必填)
                // "--openfga_model", "your-model-id"       // OpenFGA Authorization Model ID (可选)
                // "--openfga_token", "YOUR_API_TOKEN"        // OpenFGA API Token 认证 (可选)
                // 或者使用 Client Credentials 认证
                // "--openfga_client_id", "YOUR_CLIENT_ID",
                // "--openfga_client_secret", "YOUR_CLIENT_SECRET",
                // "--openfga_api_issuer", "YOUR_API_ISSUER",
                // "--openfga_api_audience", "YOUR_API_AUDIENCE"
            ]
        }
    }
}

配置说明:

  • '"server name": "openfga-mcp"': 为 MCP 服务器指定一个名称,客户端通过此名称引用。
  • '"command": "uvx"': 运行 MCP 服务器的命令,这里使用 'uvx'。
  • '"args": [...]': 传递给 'uvx' 命令的参数列表。
    • '"openfga-mcp@latest"': 指定要运行的 OpenFGA MCP Server。
    • '--openfga_url': (可选,但通常必填) OpenFGA 服务器的 URL 地址。请替换为你的 OpenFGA 服务器地址
    • '--openfga_store': (可选,但通常必填) OpenFGA Store 的 ID。请替换为你的 OpenFGA Store ID
    • '--openfga_model': (可选) OpenFGA Authorization Model 的 ID。如果需要指定模型,请配置。
    • '--openfga_token': (可选) 用于 API Token 认证。如果你的 OpenFGA 服务器需要 API Token 认证,请配置。
    • '--openfga_client_id', '--openfga_client_secret', '--openfga_api_issuer', '--openfga_api_audience': (可选) 用于 Client Credentials 认证。如果你的 OpenFGA 服务器使用 Client Credentials 认证,请配置这些参数。

重要提示:

  • 请根据你的 OpenFGA 服务器配置,取消注释并填写 'args' 数组中相应的参数值。
  • 你可能需要指定 'uvx' 可执行文件的完整路径,可以使用 'which uvx' 命令查找。
  • 修改客户端配置后,通常需要重启客户端应用才能生效。

基本使用方法

  1. 启动 OpenFGA MCP Server (根据上述安装和配置步骤)。
  2. 配置 MCP 客户端 (例如 Claude Desktop, Raycast, Cursor, Windsurf) 连接到 OpenFGA MCP Server (根据上述服务器配置部分)。
  3. 在 MCP 客户端中,你可以通过自然语言指令或特定方式调用 OpenFGA MCP Server 提供的工具,例如询问 "用户 Alice 是否可以查看文档 Document-123?",客户端会将请求转换为对 'check' 工具的调用,并返回 OpenFGA 的授权结果。

注意: 具体的使用方式和工具调用方法取决于你使用的 MCP 客户端的功能和操作方式。请参考你所用 MCP 客户端的文档。

信息

分类

AI与计算