Arena MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,使用 FastMCP 框架搭建,通过 JSON-RPC/HTTP 等传输协议与 LLM 客户端通信。核心功能是对 Arena PLM 的 REST API 进行封装,向客户端提供可执行的“工具”(Tools),以及对 PART/DATA 的检索与展示能力,并提供健康检查接口与可选的认证机制。
  • 主要功能点

    • 基于 MCP 的后端服务器,处理并响应客户端请求,提供标准化的上下文服务。
    • 通过工具暴露 Arena PLM 的查询与数据访问能力,例如:
      • search_items: 按名称/编号/描述等进行部件检索
      • get_item: 获取指定项的详细信息
      • get_item_bom: 获取装配件的 BOM
      • get_item_where_used: 查找部件被使用的装配件
      • get_item_revisions: 获取版本历史
      • get_item_files: 获取关联文件
      • get_item_sourcing: 获取供应商信息
      • get_categories: 获取分类信息
    • 支持健康检查端点(healthz)
    • 可选开启/关闭认证(使用 Google OAuth 2.0 提供者;也可通过 DISABLE_AUTH 设置禁用)
    • 会话管理:Arena 登录/登出,基于 arena_session_id 的会话维持
    • 支持多传输协议(http、sse,具体由 MCP_TRANSPORT 配置)
  • 安装步骤

      1. 准备环境:确保系统已安装 Python 3.10+、pip
      1. 获取源码:克隆仓库并进入项目目录
      1. 安装依赖:安装项目所需的依赖(通常通过 requirements.txt 或 Poetry 安装)
      1. 配置环境变量(见下文配置要点)
      1. 启动服务器:运行 main 入口,自动启动 MCP 服务器
  • 服务器配置(MCP 客户端需要的最小配置) 说明:MCP 客户端在连接 MCP 服务器时,需要提供 server 的启动命令与参数。以下为根据仓库信息生成的示例配置信息,实际使用时请按环境调整。 { "server_name": "arena-mcp-server", "command": ["python", "-m", "arena_mcp_server.server"], "args": [] } 注释说明:

    • server_name: 服务器在客户端中的名称标识,建议与实际部署名称保持一致。
    • command: 启动服务器的命令。此处使用模块化启动方式,假设环境中通过 Python 运行 arena_mcp_server.server 模块来启动。
    • args: 启动时所需的额外参数(此实现依赖环境变量来配置大部分行为,当前默认不通过命令行传递额外参数,因此此处留空)。 重要配置点(环境变量,客户端不需要):
    • ARENA_EMAIL: Arena 登录邮箱(必填)
    • ARENA_PASSWORD: Arena 登录密码(必填)
    • ARENA_WORKSPACE_ID: Arena 工作空间ID(可选,未设置时使用默认)
    • MCP_HOST: 服务器绑定地址,默认 0.0.0.0
    • MCP_PORT: 服务器监听端口,默认 8080
    • MCP_TRANSPORT: 传输协议,支持 http 或 sse,默认 http
    • DISABLE_AUTH: 是否禁用认证,若为 true 将跳过 OAuth 验证 注:MCP 客户端连接时通常只需要知道服务器的地址、端口及传输方式即可。
  • 基本使用方法

      1. 设置 Arena 的账户信息(环境变量 ARENA_EMAIL、ARENA_PASSWORD)以及可选的工作空间
      1. 启动 MCP 服务器(如通过命令:python -m arena_mcp_server.server;也可通过 Docker Compose 启动)
      1. LLM 客户端与 MCP 服务器建立连接,调用工具:
      • search_items(name="电阻", limit=10) -> 获取匹配项的摘要与 GUID
      • get_item(guid) -> 获取选定项的完整详情
      • get_item_bom(guid) -> 查看装配件的 BOM
      • get_item_where_used(guid) -> 查找该部件被使用的装配件
      1. 通过健康端点 healthz 监控服务状态
      1. 如需自定义认证策略,可通过 DISABLE_AUTH 控制开关,或配置 Google OAuth2 提供者
  • 使用提示

    • 在实际对话中先通过 search_items 获取候选项,再使用 get_item 与其他工具获取更细粒度信息
    • 注意 Arena 的 API 使用可能存在速率限制,请在应用中实现合理的限流与错误处理

服务器信息