项目简介

本项目 'mcp-server-pad' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供与纸质分析设备 (Paper Analytical Devices, PAD) 系统交互的桥梁。通过此服务器,LLM 能够以标准化的方式访问和处理 PAD 系统的数据,从而实现更智能的分析和应用。

主要功能点

  • PAD 卡片管理: 检索和列出 PAD 测试卡片,获取详细的元数据信息,包括卡片ID、样品信息、相机类型等。支持按ID查询特定卡片的详细信息。
  • 神经网络集成: 列出可用的神经网络,并获取神经网络的配置信息。这些神经网络用于分析 PAD 卡片产生的图像数据。
  • 项目组织: 管理 PAD 项目和卡片组,跟踪问题和样品信息。
  • 图像处理: 提供图像加载和处理工具,包括高质量的图像缩放和优化,以及卡片几何信息的处理。
  • 数据访问: 通过 MCP 协议向客户端提供对 PAD 数据的结构化访问,方便 LLM 进行理解和利用。

安装步骤

  1. 安装 Python 3.12 或更高版本: 确保您的系统已安装 Python 3.12 或更高版本。
  2. 克隆仓库: 使用 Git 克隆 'mcp-server-pad' 仓库到本地:
    git clone https://github.com/psaboia/mcp-server-pad
  3. 配置 MCP 客户端: 本服务器主要设计与 Claude Desktop 等 MCP 客户端配合使用。您无需手动安装依赖,配置客户端即可自动管理。

服务器配置

为了使 MCP 客户端(例如 Claude Desktop)能够连接到 'mcp-server-pad' 服务器,您需要配置客户端的 MCP 服务器设置。以下是 Claude Desktop 的配置示例,其他 MCP 客户端的配置方式类似:

{
  "mcpServers": {
    "pad": {
      "command": "<path-to-uv>",
      "args": [
        "--directory",
        "<path-to-repository>",
        "run",
        "main.py"
      ],
      "env": {
        "FILESYSTEM_STORAGE": "<path-to-storage-directory>"
      }
    }
  }
}

配置参数说明:

  • 'server name': 'pad' (服务器名称,可以自定义,用于在客户端中标识该服务器)
  • 'command': '<path-to-uv>' (指向 'uv' 可执行文件的路径。'uv' 是一个 Python 包安装和运行工具,通常位于 '~/.local/bin/uv',请根据您的实际安装路径填写)
  • 'args': 启动服务器的参数列表:
    • '--directory': '<path-to-repository>' (指向您克隆的 'mcp-server-pad' 仓库的绝对路径)
    • 'run': uv 的运行命令
    • 'main.py': 服务器主程序文件名
  • 'env': 环境变量配置:
    • 'FILESYSTEM_STORAGE': '<path-to-storage-directory>' (指定服务器存储 PAD 文件的目录。如果留空,默认使用 '~/Documents/pad_storage')

请根据您的实际环境修改 '<path-to-uv>'、'<path-to-repository>' 和 '<path-to-storage-directory>' 的值。

基本使用方法

  1. 启动服务器: 配置好 MCP 客户端后,启动客户端,客户端会自动根据配置启动 'mcp-server-pad' 服务器。您也可以在仓库目录下手动运行命令 'uv run python main.py' 启动服务器。

  2. 在 LLM 中使用工具: 服务器成功启动后,您可以在连接到该 MCP 服务器的 LLM 应用中使用以下工具来访问 PAD 数据:

    • 'get_v2_cards()': 获取 PAD 卡片列表。
    • 'get_v2_card_by_id(card_id)': 获取指定 ID 的 PAD 卡片详细信息。
    • 'get_v2_neural_networks()': 获取神经网络列表。
    • 'get_v2_neural_network_by_id(nn_id)': 获取指定 ID 的神经网络详细信息。
    • 'get_v2_projects()': 获取 PAD 项目列表。
    • 'get_card_image_by_id(card_id)': 获取指定 ID 的 PAD 卡片图像。
    • 'load_image(path)': 加载本地图像文件。
    • 'load_card_geometry()': 加载 PAD 卡片几何信息。
    • 'multiply_coordinates(data, factor)': 缩放坐标数据。

    具体工具的使用方法和参数请参考 'main.py' 文件中每个工具函数的文档字符串 (docstring)。

通过这些工具,LLM 可以查询 PAD 系统中的卡片、神经网络和项目信息,并获取卡片图像进行分析,从而实现更深入的 PAD 数据应用。

信息

分类

桌面与硬件