项目简介

Blaxel Python SDK 是一个用于连接您的 Agent 或外部工具与 Blaxel 平台的开发工具包。它不仅提供了与 Blaxel 平台交互的功能,还包含了用于构建和运行符合 Model Context Protocol (MCP) 标准的服务器的组件。通过这些组件,开发者可以轻松地创建自己的 AI 后端服务,托管自定义的工具和资源,并使其可以通过 MCP 协议被 LLM 客户端调用。

主要功能点

  • MCP 服务器构建: 提供 'FastMCP' 等核心组件,简化 MCP 服务器的开发过程。
  • 工具 (Tools) 托管: 允许注册和公开自定义的工具函数,供 Agent 调用执行特定任务。
  • 资源 (Resources) 托管: 支持定义和管理可访问的数据资源,为 Agent 提供上下文信息。
  • 多种传输协议支持: 内置 WebSocket 传输协议处理(代码示例主要展示了 WebSocket),符合 MCP 标准。
  • 与 Blaxel 平台集成: 构建的 MCP 服务器可以方便地连接到 Blaxel 平台,利用其部署和管理能力。

安装步骤

  1. 安装 Python: 确保您的系统安装了 Python 3.10 或更高版本。
  2. 安装 Blaxel CLI: 按照 Blaxel 官方文档或 README 中的说明安装 Blaxel CLI 工具。这是与 Blaxel 平台交互和管理应用的前提。
    curl -fsSL https://raw.githubusercontent.com/beamlit/toolkit/preview/install.sh | BINDIR=$HOME/.local/bin sh
  3. 登录 Blaxel 平台: 使用 Blaxel CLI 登录您的 Blaxel 工作区。
    bl login YOUR-WORKSPACE
  4. 创建 MCP 服务器项目: 使用 Blaxel CLI 命令快速创建一个 MCP 服务器项目模板。
    bl create-mcp-server my-mcp-server
    cd my-mcp-server
  5. 安装 Python 依赖: 进入项目目录后,根据项目中的 'requirements.txt' 或 'pyproject.toml' 文件安装所需的 Python 依赖。通常包括 'blaxel' 本身及其依赖。

服务器配置 (供 MCP 客户端参考)

使用此 SDK 构建的 MCP 服务器通常会以独立进程运行,并通过特定的地址和协议(如 WebSocket)对外提供服务。一个 MCP 客户端需要知道如何启动这个服务器进程以及连接到它。

以下是一个示例配置格式,描述了如何为一个名为 "My Weather MCP server" 的服务启动一个基于 Python 脚本的 MCP 服务器,并使用 WebSocket 协议连接到 'localhost:8080':

{
  "My Weather MCP server": {
    "command": "python", // 启动服务器进程的命令
    "args": [
      "my_mcp_server.py" // 启动服务器脚本的参数(假设脚本名为 my_mcp_server.py)
    ],
    "transport": "ws", // MCP 通信协议:WebSocket (ws), Stdio (stdio), SSE (sse)
    "address": "localhost:8080", // 服务器监听的地址和端口
    "protocol": "ws" // 实际连接时使用的网络协议,与 transport 对应
  }
  // ... 可能还有其他服务器配置项 ...
}

请注意,实际的 'address' 和 'args' 可能根据您的项目结构和部署环境有所不同。

基本使用方法

  1. 定义工具和资源: 在您的 MCP 服务器代码(例如,在 'my_mcp_server.py' 文件中)中,使用 'blaxel.mcp.server.FastMCP' 类的装饰器来定义工具和资源。
    from blaxel.mcp.server import FastMCP
    
    mcp = FastMCP("My Weather MCP server")
    
    @mcp.tool()
    def weather(city: str) -> str:
        """Get the weather for a city"""
        return f"The weather in {city} is sunny"
    
    @mcp.resource("greeting://{name}")
    def get_greeting(name: str) -> str:
        """Get a personalized greeting"""
        return f"Hello, {name}!"
    
    # 添加其他工具和资源定义
  2. 运行 MCP 服务器: 在主执行块中调用 'mcp.run()' 方法来启动服务器。选择适合您的传输协议(如 "ws")。
    if __name__ == "__main__":
        # 根据环境选择传输协议,例如检查是否存在 Blaxel 提供的端口环境变量
        import os
        if os.getenv("BL_SERVER_PORT"):
            mcp.run(transport="ws")
        else:
            mcp.run(transport="stdio") # 或其他适合本地开发的协议
  3. 通过 Blaxel CLI 运行: 在项目目录中执行 Blaxel CLI 命令来运行您的服务器(通常用于本地开发或部署)。
    bl serve --hotreload
  4. 部署到 Blaxel: 如果您想将 MCP 服务器部署到 Blaxel 平台,可以按照 Blaxel 文档中的部署流程进行。

使用此工具包,您可以专注于实现工具和资源的业务逻辑,而无需从头构建 MCP 协议的通信和会话管理层。

信息

分类

AI与计算