远程打印机管理服务

一个基于HTTP的远程MCP服务器,用于Windows打印机管理,提供30种MCP工具,支持VPN环境下的打印机配置、监控和管理。

  • by JeremyProffittOrg
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 JeremyProffitt/go-mcp-printer-windows

使用说明

go mcp打印机窗口

用于Windows打印机管理的远程MCP(模型上下文协议)服务器。作为Windows服务运行,具有系统托盘管理UI和HTTP传输(专为VPN环境设计)。

特性

  • 30个MCP工具 用于发现、配置、监视和管理打印作业
  • HTTP传输 专为VPN/专用网络环境设计
  • Windows服务 具有自动启动和故障恢复功能
  • 系统托盘 图标便于管理
  • 管理员Web UI 用于配置、打印机状态和日志
  • MSI 安装程序 具有服务、“开始”菜单快捷方式和防火墙规则
  • 2外部依赖 仅限(golang.org/x/sys、fyne.io/systray)

快速开始

# Build
bash build.sh

# Run in foreground
./dist/go-mcp-printer-windows-amd64.exe serve

# Open admin UI
http://localhost:8787/admin/

# Health check
curl http://localhost/health

命令

go-mcp-printer-windows.exe serve      # HTTP server (tray icon when interactive)
go-mcp-printer-windows.exe install    # Install as Windows service (admin required)
go-mcp-printer-windows.exe uninstall  # Remove Windows service (admin required)
go-mcp-printer-windows.exe version    # Print version

MCP工具

# 工具 类型 描述
1 list_printers 只读 列出所有已安装的打印机
2 get_printer_details 只读 获取打印机功能和详细信息
3 get_default_printer 只读 获取默认打印机名称
4 print_file write 打印PDF、图像、文本、Office文档
5 print_text write 打印原始文本内容
6 print_image 写入 使用照片优化设置打印图像
7 get_print_queue 只读 获取队列中的打印作业
8 get_print_job_status 只读 获取单个作业状态
9 cancel_print_job 破坏性 取消打印作业
10 pause_printer write 暂停打印机
11 resume_printer write 恢复暂停的打印机
12 set_default_printer write 设置默认打印机
13 print_test_page write 打印Windows测试页
14 get_printer_server_status 只读 服务器版本、正常运行时间、配置
15 list_printer_paper_sizes 只读 列出所有支持纸张尺寸(mm/in)的打印机
16 print_all_test_pages write 在每台打印机上打印测试页
17 get_ink_toner_levels 只读 获取墨水/碳粉供应水平(网络打印机的SNMP)
18 get_print_history 只读 从Windows事件日志中获取打印历史记录
19 test_printer_connectivity 只读 测试打印机连接:WMI、ping、端口9100
20 purge_print_queue destructive 从打印机队列中删除所有作业
21 restart_print_job write 重新启动特定打印作业
22 add_network_printer write 按UNC路径或IP地址添加网络打印机
23 remove_printer disruptive 删除已安装的打印机
24 set_print_defaults write 设置默认打印配置(纸张、彩色、双面)
25 share_printer write 启用或禁用打印机共享
26 print_html write 通过Windows内置渲染器打印HTML内容
27 print_url write 下载并打印网页
28 print_md write 打印Markdown(转换为样式化HTML)
29 print_multiple_files write 批量打印多个文件(最多50个)
30 get_printer_errors 只读 获取错误状态和最近的错误事件

配置

配置文件: C:\ProgramData\go-mcp-printer-windows\config.json

{
  "domain": "printer.example.com",
  "port": 80,
  "logLevel": "info",
  "defaultPrinter": "HP LaserJet",
  "allowedPrinters": [],
  "blockedPrinters": [],
  "photoPrinters": ["DP-DS820", "DP-QW410"],
  "allowedPaths": [],
  "adminPort": 8787,
  "rateLimitCalls": 10,
  "rateLimitWindow": 20
}

API路线

MCP:
  POST /mcp

Admin (port 8787, localhost or session auth):
  GET  /admin/*
  GET  /admin/api/config
  POST /admin/api/config
  GET  /admin/api/printers
  GET  /admin/api/printers/paper-sizes
  POST /admin/api/printers/test-all
  GET  /admin/api/logs
  GET  /admin/api/status

Health (no auth):
  GET  /health

建筑

# Build for Windows
bash build.sh

# Run tests
go test -v ./...

# Build MSI (requires WiX v4+, included automatically in build.sh)
dotnet tool install --global wix
wix extension add WixToolset.Firewall.wixext/6.0.2
bash build.sh  # builds binaries + MSI

通过MSI安装

MSI安装程序:

  • 将二进制文件安装到 C:\Program Files\Go MCP Printer\
  • 在以下位置创建数据目录 C:\ProgramData\go-mcp-printer-windows\
  • 安装Windows服务 GoMCPPrinter (自动启动)
  • 为交互模式添加“开始”菜单快捷方式
  • 为端口80配置防火墙规则

许可证

麻省理工学院