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 内容的工具。
安装
- 安装 Deno:
确保您的系统上安装了 Deno (版本 1.x 或更高)。请参考官方 Deno 安装指南。
- 克隆仓库 (如果适用):
如果您是从 Git 仓库获取代码,请克隆它:
git clone
cd mcp-memobird.deno- 依赖:
Deno 会在首次运行时自动下载和缓存依赖项。主要依赖包括: * @modelcontextprotocol/sdk: 用于实现 MCP 服务器。 * zod: 用于输入验证。 * @std/cli: 用于解析命令行参数。
配置
您需要提供 Memobird API 的 Access Key (AK) 和设备 ID (Device ID)。可以通过以下两种方式配置:
- 环境变量 (推荐):
export MEMOBIRD_AK="YOUR_ACCESS_KEY"
export MEMOBIRD_DEVICE_ID="YOUR_DEVICE_ID"(在 Windows PowerShell 中使用 $env:MEMOBIRD_AK = "YOUR_ACCESS_KEY")
- 命令行参数:
在运行命令时添加 --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: 上监听。SSE 端点是 http://localhost: /sse。
- 开发模式 (使用 Stdio):
此模式下,文件更改时服务器会自动重启。
deno task devMCP 工具
服务器提供以下 MCP 工具供客户端调用:
print_text
* 描述: 发送纯文本内容到 Memobird 打印机。 * 参数: * text (string, required): 要打印的文本内容。 * 示例 (假设使用 Cline):
/use Memobird Printer Server (Deno).print_text text="Hello from Deno MCP!"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..."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
