项目简介

'auth0-fastmcp' 是一个基于 'FastMCP' 框架构建的 MCP 服务器示例,它演示了如何集成 Auth0 实现安全的身份认证和 API 访问。该服务器能够为大型语言模型 (LLM) 客户端提供受保护的资源访问和工具调用能力。

主要功能点

  • 安全认证: 通过 Auth0 提供 OAuth2/OIDC 认证流程,确保只有经过授权的 LLM 客户端才能访问服务器功能。
  • JWT 验证: 服务器端验证 Auth0 颁发的 JSON Web Token (JWT),保障 API 调用的安全性和用户身份的合法性。
  • 工具托管: 支持注册和执行自定义工具,例如示例中的 'get_user_status',允许 LLM 调用外部功能以获取动态信息或执行特定操作。
  • OpenAPI 规范集成 (可选): 可以从 OpenAPI 规范加载并暴露工具和资源,便于与现有 API 或服务集成,无需手动定义每个工具。
  • HTTPS 安全连接: 使用 SSL 证书提供安全的 HTTPS 连接,保护客户端与服务器之间的数据传输。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/hemdagem/auth0-fastmcp.git
    cd auth0-fastmcp
  2. 创建 '.env' 文件: 从 '.env.example' 文件复制一份,并将其重命名为 '.env'。然后编辑 '.env' 文件,填入您的 Auth0 凭据和服务器 URL。

    cp .env.example .env

    请务必配置以下环境变量:

    • 'AUTH0_CLIENT_ID': 您的 Auth0 应用程序客户端 ID。
    • 'AUTH0_CLIENT_SECRET': 您的 Auth0 应用程序客户端 Secret。
    • 'AUTH0_DOMAIN': 您的 Auth0 域(例如 'your-tenant.auth0.com')。
    • 'SERVER_BASE_URL': 此 MCP 服务器的公共基础 URL(例如 'https://localhost:8000')。
    • 如果您打算运行 'server_openapi.py',还需要配置 'OPENAPI_SPEC_URL' (外部 OpenAPI 规范的 URL) 和 'OPENAPI_BASE_URL' (该 OpenAPI API 的基础 URL)。
  3. 创建并激活虚拟环境:

    python3 -m venv env
    source env/bin/activate
  4. 安装依赖:

    pip install -r requirements.txt
  5. macOS SSL 证书 (如果需要在 macOS 上运行): 如果您在 macOS 上运行此项目,必须安装开发 SSL 证书,以便浏览器和 VS Code 信任 MCP 服务器的安全连接。

    ./install-cert.sh

服务器配置 (供 MCP 客户端使用)

MCP 客户端连接此服务器时,通常需要提供以下 JSON 格式的配置信息。请根据您的实际部署情况替换其中的占位符。

{
  "name": "Auth0 FastMCP Server",
  "command": "python",
  "args": [
    "path/to/auth0-fastmcp/server.py" 
  ],
  "env": {
    "AUTH0_CLIENT_ID": "您的Auth0客户端ID",
    "AUTH0_CLIENT_SECRET": "您的Auth0客户端Secret",
    "AUTH0_DOMAIN": "您的Auth0域",
    "SERVER_BASE_URL": "您的服务器公共URL,例如https://localhost:8000"
  },
  "base_url": "您的服务器公共URL,例如https://localhost:8000",
  "path": "/mcp"
}
  • 'name': MCP 服务器的显示名称。
  • 'command': 启动 MCP 服务器进程的命令,此处为 'python'。
  • 'args': 传递给 'command' 的参数列表,其中应包含服务器脚本 'server.py' 的绝对或相对路径。请将 'path/to/auth0-fastmcp/server.py' 替换为实际路径。
  • 'env': 启动服务器时需要设置的环境变量。请替换为 '.env' 文件中配置的实际 Auth0 凭据和服务器 URL。
  • 'base_url': MCP 服务器的公共基础 URL,客户端将通过此 URL 连接服务器。
  • 'path': MCP 协议端点的相对路径,服务器的 MCP 请求将在此路径下处理。

如果您选择运行 'server_openapi.py',请将 'args' 中的文件名更改为 'server_openapi.py',并确保 'env' 中包含了 'OPENAPI_SPEC_URL' 和 'OPENAPI_BASE_URL' 的值。

基本使用方法

  1. 运行服务器: 在命令行中,激活虚拟环境后,根据您要运行的服务器类型执行以下命令:

    • 运行包含示例工具的服务器:
      python server.py
    • 运行基于 OpenAPI 规范的服务器:
      python server_openapi.py

    服务器将在 'https://localhost:8000'(或您 '.env' 中配置的 'SERVER_BASE_URL')启动。

  2. 通过 MCP 客户端交互: 一旦服务器运行,任何支持 MCP 协议的 LLM 客户端都可以使用上述“服务器配置”信息连接到该服务器。客户端将通过 JSON-RPC 协议与服务器进行交互,调用注册的工具(例如 'get_user_status')并获取上下文信息。由于集成了 Auth0,客户端在调用受保护的工具时,将需要通过 Auth0 完成认证流程以获取访问令牌,并将其传递给 MCP 服务器进行验证。

信息

分类

网页与API