项目简介
本项目是基于 Model Context Protocol (MCP) 开发的应用后端,专注于连接大型语言模型 (LLM) 客户端与佳能相机。它通过封装佳能 Camera Control API (CCAPI) 的功能,将相机操作转化为 LLM 可调用的 工具,从而允许用户通过 LLM 以自然语言指令的方式实现对佳能相机的远程控制、状态查询和图像获取。
主要功能点
该 MCP 服务器提供以下主要功能,LLM 客户端可以通过调用相应的工具来使用:
- 连接和初始化与指定 IP 地址的佳能相机的连接。
- 通过 LLM 指令控制相机拍摄照片。
- 获取相机的当前拍摄设置,如光圈、快门速度、ISO、对焦模式等。
- 更改相机的拍摄模式和各项设置参数。
- 查询相机的设备状态,包括电量、存储空间、温度和当前时间。
- 获取相机实时取景(Live View)的图像和相关信息。
- 启动或停止按指定间隔连续拍摄照片的功能。
- 获取间隔拍摄的当前状态。
安装步骤
本项目需要 Node.js 环境(建议 v18 或更高版本)。
- 确保你的计算机上安装了 Node.js 和 npm。
- 克隆本项目代码库到本地。
- 打开命令行终端,进入项目目录。
- 运行 'npm install' 安装项目依赖。
- 编译 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 客户端随后可以将这些信息整合到与用户的对话中。其他相机操作(如拍照、获取设置)也是通过调用相应的工具实现。
信息
分类
桌面与硬件