项目简介

本项目是基于 Model Context Protocol (MCP) 开发的应用后端,专注于连接大型语言模型 (LLM) 客户端与佳能相机。它通过封装佳能 Camera Control API (CCAPI) 的功能,将相机操作转化为 LLM 可调用的 工具,从而允许用户通过 LLM 以自然语言指令的方式实现对佳能相机的远程控制、状态查询和图像获取。

主要功能点

该 MCP 服务器提供以下主要功能,LLM 客户端可以通过调用相应的工具来使用:

  • 连接和初始化与指定 IP 地址的佳能相机的连接。
  • 通过 LLM 指令控制相机拍摄照片。
  • 获取相机的当前拍摄设置,如光圈、快门速度、ISO、对焦模式等。
  • 更改相机的拍摄模式和各项设置参数。
  • 查询相机的设备状态,包括电量、存储空间、温度和当前时间。
  • 获取相机实时取景(Live View)的图像和相关信息。
  • 启动或停止按指定间隔连续拍摄照片的功能。
  • 获取间隔拍摄的当前状态。

安装步骤

本项目需要 Node.js 环境(建议 v18 或更高版本)。

  1. 确保你的计算机上安装了 Node.js 和 npm。
  2. 克隆本项目代码库到本地。
  3. 打开命令行终端,进入项目目录。
  4. 运行 'npm install' 安装项目依赖。
  5. 编译 TypeScript 代码:运行 'npm run build'。这会生成可执行的 JavaScript 文件,通常位于 'mcp/build' 或 'dist' 目录下。

服务器配置

MCP 服务器主要通过标准输入/输出 (Stdio) 与 MCP 客户端通信。LLM 客户端需要配置 MCP 服务器的启动命令才能与之建立连接。

配置信息通常是一个 JSON 对象,MCP 客户端需要这些信息来启动并连接到 MCP 服务器进程。关键的配置项包括:

  • 'name': MCP 服务器的名称,例如 "canon"。
  • 'command': 用于启动 MCP 服务器进程的命令。通常是 'node' 后面跟上编译后的服务器脚本路径。
  • 'args': 传递给 'command' 的命令行参数列表。本项目 MCP 服务器启动时不需要额外的命令行参数,因此此列表为空。

根据项目结构和编译输出,一个典型的 MCP 客户端配置中的 'command' 和 'args' 部分可能如下所示:

  • 'command': 指定 'node' 可执行文件的路径(如果 'node' 在系统的 PATH 环境变量中,可以直接写 "node")。
  • 'args': 指定编译后的服务器脚本路径,例如 '"mcp/build/index.js"'。

请注意,相机连接所需的 IP 地址、端口等参数不是作为服务器启动参数,而是作为调用 'connect-canon' 工具时的参数传递给服务器。

基本使用方法

一旦 MCP 客户端配置并连接到本 MCP 服务器,LLM 客户端就可以通过向服务器发送 JSON-RPC 请求来调用上面列出的各种相机控制 工具

例如,LLM 可能会根据用户指令,向服务器发送一个请求,要求调用 'connect-canon' 工具,并提供相机的 IP 地址、端口等信息作为工具的输入参数。服务器接收到请求后,会执行对应的 JavaScript 代码,与相机进行实际通信,并将结果(如连接成功信息、相机状态、拍摄的图像数据等)通过 JSON-RPC 响应返回给 LLM 客户端。LLM 客户端随后可以将这些信息整合到与用户的对话中。其他相机操作(如拍照、获取设置)也是通过调用相应的工具实现。

信息

分类

桌面与硬件