README
🚀 打印机MCP服务器
这是一个全面的模型上下文协议(MCP)服务器,专为销售和服务团队提供企业打印机信息。通过该服务器,可获取主要企业打印机品牌的详细规格、价格、故障排除和设置信息。
🚀 快速开始
本MCP服务器通过标准输入输出进行通信,设计用于与MCP兼容的客户端(如Claude Desktop)配合使用。
独立测试
npm start
与Claude Desktop配合使用
将以下配置添加到Claude Desktop配置文件中:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"printer-info": {
"command": "node",
"args": [
"C:/users/brian/printerMCP/dist/index.js"
]
}
}
}
添加此配置后,重启Claude Desktop。
✨ 主要特性
支持的制造商
- 惠普(Hewlett - Packard)
- 佳能
- 京瓷
- 柯尼卡美能达
- 夏普
- 利盟
- 理光
- 兄弟
- 爱普生
10个智能工具
本服务器为销售和服务团队提供了专业工具:
销售团队工具
- printer_search:通过规格、预算、功能或关键字查找打印机。
- printer_get_details:获取包括规格、价格和功能在内的完整型号信息。
- printer_compare:对多个型号进行并排比较。
- printer_calculate_tco:分析打印机随时间的总体拥有成本。
- printer_find_consumables:查找兼容的碳粉/耗材,包括零件编号和成本。
- printer_recommend:基于业务需求提供人工智能推荐。
- printer_get_stats:获取数据库覆盖范围和统计信息。
服务团队工具
- printer_search:按规格查找打印机。
- printer_get_details:获取完整的型号和技术信息。
- printer_troubleshoot:处理错误代码并解决问题。
- printer_setup:按型号和制造商提供设置说明。
- printer_find_consumables:查找兼容的耗材和零件编号。
- printer_get_config:打印配置页面并访问Web界面。
- printer_get_stats:获取数据库信息。
📦 安装指南
前提条件
- Node.js 18或更高版本
- npm或yarn
安装步骤
- 克隆或下载此存储库到本地机器。
- 安装依赖项:
cd printerMCP
npm install
- 构建项目:
npm run build
此命令将执行以下操作:
- 将TypeScript编译为JavaScript。
- 从JSON源文件构建SQLite数据库。
- 准备好服务器以供使用。
💻 使用示例
基础用法
# 独立测试启动服务器
npm start
高级用法
# 在Claude Desktop配置文件中添加服务器配置
{
"mcpServers": {
"printer-info": {
"command": "node",
"args": [
"C:/users/brian/printerMCP/dist/index.js"
]
}
}
}
📚 详细文档
工具参考
1. printer_search
根据特定条件搜索打印机。
参数:
manufacturer(字符串,可选):按制造商过滤(如惠普、佳能、京瓷等)。formFactor(字符串,可选):台式、工作组、部门级、生产型。type(字符串,可选):激光、喷墨、LED。color(布尔值,可选):是否具备彩色打印功能。functions(数组,可选):所需功能(如["打印", "复印", "扫描", "传真"])。minSpeed(数字,可选):最小打印速度(每分钟页数)。maxSpeed(数字,可选):最大打印速度(每分钟页数)。minPrice(数字,可选):最低价格(美元)。maxPrice(数字,可选):最高价格(美元)。maxDutyMonthly(数字,可选):每月最大工作负荷要求。keywords(字符串,可选):全文搜索关键字。
示例:
{
"manufacturer": "惠普",
"formFactor": "工作组",
"color": false,
"maxPrice": 2000,
"minSpeed": 40
}
2. printer_get_details
获取特定打印机型号的完整信息。
参数:
printerId(字符串,必需):打印机ID(如 "hp - m527f", "kyocera - m2640idw")。
返回值:
- 完整的打印机规格。
- 销售信息和价格。
- 每页成本和耗材信息。
- 设置说明。
- 故障排除指南。
- 固件信息。
- 保修详情。
3. printer_compare
并排比较多个打印机型号。
参数:
printerIds(字符串数组,必需):要比较的打印机ID数组。
示例:
{
"printerIds": ["hp - m527f", "kyocera - m2640idw", "epson - et5850"]
}
4. printer_calculate_tco
计算打印机的总体拥有成本。
参数:
printerId(字符串,必需):打印机ID。monthlyVolume(数字,必需):预计每月打印页数。years(数字,可选):使用年限(默认值:3年)。powerCostPerKwh(数字,可选):每千瓦时电费(默认值:0.12美元)。
返回值:
- 硬件成本。
- 耗材随时间的成本。
- 维护成本。
- 电力成本。
- 总成本和每页成本。
5. printer_find_consumables
查找打印机的所有兼容耗材。
参数:
printerId(字符串,必需):打印机ID。
返回值:
- 带有零件编号和打印量的碳粉/墨盒。
- 硒鼓单元。
- 维护套件。
- 废粉盒。
- 每页成本信息。
6. printer_recommend
根据需求获取智能打印机推荐。
参数:
userCount(数字,必需):用户数量。monthlyVolume(数字,必需):预计每月打印页数。colorNeeded(布尔值,可选):是否需要彩色打印。budget(数字,可选):预算限制。mustHaveFunctions(数组,可选):必需的功能。environment(字符串,可选):使用环境描述。
返回值:
- 推荐的顶级型号。
- 推荐理由。
- 找到的匹配总数。
7. printer_get_stats
获取数据库统计信息和覆盖范围信息。
参数:无
返回值:
- 数据库中打印机的总数。
- 制造商列表。
- 按打印机类型分类的明细。
- 按外形规格分类的明细。
8. printer_troubleshoot
获取打印机问题的故障排除帮助。
参数:
printerId(字符串,必需):打印机ID。issueType(字符串,必需):错误、质量、卡纸、网络问题。errorCode(字符串,可选):显示的特定错误代码。description(字符串,可选):问题描述。
返回值:
- 相关的故障排除指南。
- 错误代码解释和解决方案。
- 逐步解决程序。
- 维修所需的零件。
示例:
{
"printerId": "hp - m527f",
"issueType": "错误",
"errorCode": "49.XX.XX"
}
9. printer_setup
获取设置和安装说明。
参数:
printerId(字符串,必需):打印机ID。setupType(字符串,必需):拆箱、网络、驱动程序、全部。networkType(字符串,可选):以太网、Wi - Fi、USB(用于网络设置)。os(字符串,可选):Windows、Mac、Linux(用于驱动程序设置)。
返回值:
- 逐步设置说明。
- 网络配置指南。
- 驱动程序安装程序。
- 常见设置问题和解决方案。
示例:
{
"printerId": "kyocera - m2640idw",
"setupType": "网络",
"networkType": "Wi - Fi"
}
10. printer_get_config
获取打印配置页面和访问Web界面的说明。
参数:
printerId(字符串,必需):打印机ID。pageType(字符串,可选):计量、配置、网络、全部(默认值:全部)。
返回值:
- 打印计量页面(页面计数)的说明。
- 配置页面打印。
- 网络配置页面。
- Web界面访问说明。
数据库结构
服务器采用混合方法:
- 源数据:
data/printers/中的人类可读JSON文件。 - 运行时数据库:从JSON编译的SQLite数据库,用于快速查询。
- 全文搜索:内置FTS5搜索,用于关键字查询。
添加新打印机
- 在
data/printers/中创建一个新的JSON文件,遵循src/types.ts中的架构。 - 运行
npm run build重新构建数据库。 - 重启MCP服务器。
架构
printerMCP/
├── src/
│ ├── types.ts # TypeScript接口和类型
│ ├── build - database.ts # JSON到SQLite编译器
│ └── index.ts # MCP服务器实现
├── data/
│ └── printers/ # JSON源文件
│ ├── hp - laserjet - m527f.json
│ ├── kyocera - ecosys - m2640idw.json
│ └── epson - ecotank - et5850.json
├── dist/ # 编译后的JavaScript(自动生成)
├── printers.db # SQLite数据库(自动生成)
├── package.json
├── tsconfig.json
└── README.md
数据覆盖范围
当前数据库包含以下类型打印机的全面信息:
- 企业A3/A4多功能一体机。
- 工作组激光和喷墨设备。
- 小型办公室/家庭办公室(SOHO)打印机。
- 生产型数字印刷机。
每个打印机条目包括:
- 完整的技术规格。
- 定价信息(建议零售价和市场价格)。
- 带有零件编号和打印量的耗材。
- 每页成本计算。
- 详细的设置说明。
- 全面的故障排除指南。
- 网络配置程序。
- 维护计划。
开发
构建
npm run build
开发模式(监听文件变化)
npm run watch
添加更多打印机
要扩展数据库,请在 data/printers/ 中添加遵循以下结构的JSON文件:
{
"id": "manufacturer - model",
"manufacturer": "惠普",
"model": "LaserJet Pro MFP M428fdw",
"series": "LaserJet Pro",
"formFactor": "工作组",
"type": "激光",
"color": false,
"functions": ["打印", "复印", "扫描", "传真"],
"specifications": { ... },
"sales": { ... },
"costs": { ... },
"setup": { ... },
"troubleshooting": { ... }
}
完整的架构定义请参考 src/types.ts。
使用场景
销售团队
- 快速找到符合客户要求的打印机。
- 并排比较竞争型号。
- 计算并向客户展示总体拥有成本。
- 提供准确的耗材成本和零件编号。
- 根据使用模式生成推荐。
服务团队
- 快速查找错误代码并解决问题。
- 遵循逐步故障排除指南。
- 获得网络设置和配置帮助。
- 识别和订购耗材。
- 遵循维护计划和程序。
IT部门
- 评估打印机以进行批量部署。
- 进行总体拥有成本分析以进行预算规划。
- 获取采购所需的技术规格。
- 获取设置和配置文档。
- 利用故障排除知识库。
🔧 技术细节
服务器使用Node.js和SQLite构建,通过标准输入输出与MCP兼容的客户端进行通信。它将JSON源文件编译为SQLite数据库,以实现快速查询,并利用内置的FTS5进行全文搜索。
📄 许可证
本项目采用MIT许可证。
贡献说明
若要贡献额外的打印机数据,请遵循以下步骤:
- 遵循
src/types.ts中的JSON架构。 - 添加全面的故障排除和设置信息。
- 包含准确的零件编号和规格。
- 通过重新构建数据库来测试数据。
支持说明
若遇到问题或有疑问,请按以下步骤操作:
- 查看打印机数据中的故障排除指南。
- 参考上述工具参考文档。
- 使用
npm run build验证数据库是否成功构建。
版本历史
1.0.0(2025 - 01 - 13)
- 初始版本发布。
- 为销售和服务团队提供10个智能工具。
- 支持9个主要制造商。
- 提供全面的打印机数据库。
- 具备全文搜索功能。
- 包含总体拥有成本计算引擎。
- 提供故障排除知识库。
Scan to join WeChat group