PaperCut MCP协议服务

基于TypeScript的MCP协议服务器,通过PaperCut NG/MF XML Web Services (XML-RPC) API提供工具支持。

  • by jpg486-ual
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jpg486-ual/papercut-mcp

使用说明

剪纸mcp

TypeScript MCP(模型上下文协议)服务器公开由PaperCut NG/MF XML Web Services(XML‑RPC)API支持的工具。

现状:积极发展。欢迎问题和拉取请求!

需求

  • Node.js 18+
  • 启用Web服务的PaperCut NG/MF
    • 集 auth.webservices.auth-token 在管理界面中
    • 如果不是本地主机,请在“允许的XML Web服务调用者”下添加您的调用者IP

安装

# On PowerShell (Windows)
Set-Location "c:\Users\jeperez\repos\papercut-mcp"
Copy-Item .env.example .env
# Edit .env to set PAPERCUT_XMLRPC_URL and PAPERCUT_AUTH_TOKEN
npm install
npm run build

本地运行

npm run start

服务器通过stdio进行通信(无侦听端口)。它通常由MCP客户端(例如Cursor)启动。

光标配置(示例)

在游标用户设置(JSON)中,添加以下内容:

{
  "mcpServers": {
    "papercut": {
      "command": "node",
      "args": [
        "c:\\Users\\jeperez\\repos\\papercut-mcp\\dist\\index.js"
      ],
      "env": {
        "PAPERCUT_XMLRPC_URL": "http://localhost:9191/rpc/api/xmlrpc",
        "PAPERCUT_AUTH_TOKEN": "REPLACE_WITH_YOUR_TOKEN",
        "PAPERCUT_TIMEOUT_MS": "10000"
      }
    }
  }
}

可用工具

  • papercut_get_total_users:通过返回用户总数 api.getTotalUsers.退货 { totalUsers }.
  • papercut_get_user_property:通话 api.getUserProperty(username, property).退货 { value }.
  • papercut_get_user_properties:通话 api.getUserProperties(username, properties[]).退货 { values: { property: value } }.
  • papercut_list_user_properties:返回记录的用户属性的本地列表(无服务器调用)。
  • papercut_list_printers:列出具有分页功能的打印机 api.listPrinters(offset, limit).退货 { printers: string[] } 每个条目在哪里 ServerName\PrinterName.
  • papercut_get_user_stats_total:使用以下公式返回用户(页面、作业)的生存期总计 api.getUserProperties.
  • papercut_get_user_account_balance:通过以下方式返回用户帐户余额(默认为主要) api.getUserAccountBalance.
  • papercut_list_user_accounts:通过以下方式在页面中列出用户帐户 api.listUserAccounts(offset, limit).
  • papercut_get_user_groups:通过以下方式返回用户的组 api.getUserGroups(username).
  • papercut_get_printer_property:通过以下方式获取打印机属性 api.getPrinterProperty(serverName, printerName, property).
  • papercut_get_group_members:通过以下方式列出组的成员(分页) api.getGroupMembers(groupName, offset, limit).

注意:确切的属性名称和权限取决于您的安装。官方文件:https://www.papercut.com/help/manuals/ng-mf/common/tools-web-services/

环境变量

  • PAPERCUT_XMLRPC_URL (例如。, http://localhost:9191/rpc/api/xmlrpc 或 https://<host>:9192/rpc/api/xmlrpc)
  • PAPERCUT_AUTH_TOKEN (必填)
  • PAPERCUT_TIMEOUT_MS (可选,默认 10000)

发展

npm run dev

编辑文件 src/.MCP工具已上线 src/tools/papercut.api.tool.ts 以及中的XML-RPC客户端 src/papercut.ts.