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 versionMCP工具
| # | 工具 | 类型 | 描述 |
|---|---|---|---|
| 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配置防火墙规则
许可证
麻省理工学院
