打印机控制服务器

一个基于Deno的Memobird打印机控制服务器,通过MCP协议提供文本、图像和URL打印功能。

  • by DrayChou
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 draychou/mcp-memobird.deno

使用说明

Memobird Printer Server (Deno)

这是一个使用 Deno 编写的 Model Context Protocol (MCP) 服务器,用于通过其 API 控制 Memobird 咕咕机。

它提供了通过 MCP 工具发送文本、图像 (Base64 编码) 和 URL 到 Memobird 打印机的功能。

特性

  • MCP 集成: 作为 MCP 服务器运行,允许兼容的客户端 (如 Cline) 连接和使用其工具。
  • 多种传输方式: 支持 stdio (标准输入/输出) 和 sse (Server-Sent Events over HTTP) 两种传输协议。
  • 灵活配置: 可以通过命令行参数或环境变量配置 Memobird API 凭据。
  • 基本打印功能: 提供打印文本、Base64 编码图像和 URL 内容的工具。

安装

  1. 安装 Deno: 确保您的系统上安装了 Deno (版本 1.x 或更高)。请参考官方 Deno 安装指南。

  2. 克隆仓库 (如果适用): 如果您是从 Git 仓库获取代码,请克隆它:

    git clone <your-repo-url>
    cd mcp-memobird.deno
    
  3. 依赖: Deno 会在首次运行时自动下载和缓存依赖项。主要依赖包括:

    • @modelcontextprotocol/sdk: 用于实现 MCP 服务器。
    • zod: 用于输入验证。
    • @std/cli: 用于解析命令行参数。

配置

您需要提供 Memobird API 的 Access Key (AK) 和设备 ID (Device ID)。可以通过以下两种方式配置:

  1. 环境变量 (推荐):

    export MEMOBIRD_AK="YOUR_ACCESS_KEY"
    export MEMOBIRD_DEVICE_ID="YOUR_DEVICE_ID"
    

    (在 Windows PowerShell 中使用 $env:MEMOBIRD_AK = "YOUR_ACCESS_KEY")

  2. 命令行参数: 在运行命令时添加 --ak (或 --access_key) 和 --did (或 --device_id) 参数:

    deno task start --ak YOUR_ACCESS_KEY --did YOUR_DEVICE_ID
    

    注意:命令行参数会覆盖环境变量。

运行服务器

项目提供了 deno.jsonc 文件来管理任务。

  • 使用 Stdio 传输: 这是默认模式,适用于 Cline 等通过标准输入/输出连接的客户端。

    deno task start
    # 或者带凭据:
    # deno task start --ak YOUR_ACCESS_KEY --did YOUR_DEVICE_ID
    
  • 使用 SSE 传输: 这将启动一个 HTTP 服务器,允许客户端通过 Server-Sent Events 连接。默认端口为 8001。

    deno task start:sse
    # 指定不同端口:
    # deno task start:sse --port 8002
    # 带凭据:
    # deno task start:sse --ak YOUR_ACCESS_KEY --did YOUR_DEVICE_ID
    

    服务器将在 http://localhost:<port> 上监听。SSE 端点是 http://localhost:<port>/sse。

  • 开发模式 (使用 Stdio): 此模式下,文件更改时服务器会自动重启。

    deno task dev
    

MCP 工具

服务器提供以下 MCP 工具供客户端调用:

  1. print_text

    • 描述: 发送纯文本内容到 Memobird 打印机。
    • 参数:
      • text (string, required): 要打印的文本内容。
    • 示例 (假设使用 Cline):
      /use Memobird Printer Server (Deno).print_text text="Hello from Deno MCP!"
      
  2. print_image

    • 描述: 发送 Base64 编码的图像数据到 Memobird 打印机。
    • 重要: 当前实现期望输入是已经是 Memobird 可接受格式 (通常是 1 位 BMP) 的 Base64 编码数据。它不执行图像格式转换或从文件路径加载。
    • 参数:
      • image_base64 (string, required): Base64 编码的图像数据字符串。
    • 示例:
      /use Memobird Printer Server (Deno).print_image image_base64="data:image/bmp;base64,Qk0..."
      
  3. print_url

    • 描述: 指示 Memobird 服务器从指定的 URL 获取内容并打印。
    • 参数:
      • url (string, required): 要打印内容的 URL。必须是有效的 URL。
    • 示例:
      /use Memobird Printer Server (Deno).print_url url="https://example.com/printable_content.html"
      

许可证

本项目采用 MIT 许可证。# mcp-memobird.deno