printer-mcp-server (DaisukeHori/printer-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 52 out of 100, grade D. It declares 11 tools. No publisher has claimed this listing.
MCP server for network printer control via CUPS + Mac Office PDF conversion (Kyocera TASKalfa 6054ci)
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
DaisukeHori
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
print_urlDownload a file from a URL and print it. Supports the same formats as print_document. Useful for printing files from OneDrive, SharePoint, S3 presigned URLs, or any public URL. The filename parameter is used for format detection (e.g. 'report.docx').
list_printersList all CUPS-configured printers with name, state, URI, and default flag.
get_printer_statusDetailed status: state, active jobs, device URI, supply/media levels (IPP).
get_printer_capabilitiesList PPD/CUPS options. MUST call before using cups_options in print_document. Use filter to narrow: 'staple', 'punch', 'fold', 'tray', 'media', 'booklet', 'insert'.
get_print_jobsList active/pending jobs. Set completed=true for recent completed jobs too.
get_job_statusDetailed status for a specific job: IPP attributes + CUPS error log. Use after print_document.
cancel_print_jobCancel an active or pending print job.
get_supported_formatsList all file formats that can be printed or converted. Shows which formats go directly to CUPS and which require Mac Office conversion.
validate_print_optionsCheck if cups_options are valid and compatible with the installed hardware BEFORE printing. Three-level validation: 1. Value check: Is each option name and value recognized by the PPD? 2. PPD constraint check: Does the Kyocera PPD prohibit this combination? (3192 hardware rules) 3. Soft warni…
print_uploadedPrint a file that was uploaded via /upload endpoint. NO base64 needed — zero token cost. WORKFLOW: 1. User uploads file to Claude.ai 2. Claude uses bash_tool: curl -sF "file=@/mnt/user-data/uploads/FILE" https://printer-mcp.appserver.tokyo/upload → Returns: {"file_id":"abc123","filename":"…
list_uploadsShow files uploaded via /upload endpoint that are available for print_uploaded.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
multer vulnerable to Denial of Service via oversized array index in field names
Multer vulnerable to Denial of Service via deeply nested field names
multer vulnerable to Denial of Service via crafted multipart field names
Multer vulnerable to Denial of Service via incomplete cleanup of aborted uploads
multer vulnerable to file size limit bypass via async fileFilter race condition
GRAPH_CLIENT_IDOffice変換時のみGRAPH_CLIENT_SECRETOffice変換時のみGRAPH_TENANT_IDOffice変換時のみGRAPH_USER_IDOffice変換時のみMAC_CONVERT_DIRMAC_HOSTMAC_SCRIPT_PATHMAC_SSH_KEYMAC_USERMCP_API_KEYはい(推奨)UPLOAD_DIRPORTopenWorldHint matches behaviour
1 tool claims openWorldHint=false but make outbound HTTP — print_url → dynamic (line 157)
Either flip openWorldHint to true (acknowledging external reach) or refactor the handler to avoid outbound HTTP. If the only network calls are to a known fixed endpoint that you consider part of the tool itself, document that and keep openWorldHint=false; otherwise true is honest.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Shell command execution
3 calls in production code run through a shell (src/services/converter.ts:112, src/services/cups.ts:16, src/services/cups.ts:29)
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
Secrets stay with their owner
1 secret sent to a request target we could not resolve (GRAPH_CLIENT_SECRET → dynamic) — often a configured endpoint, not necessarily third-party
Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.
Production dependencies are patched
0 critical, 3 high severity in production deps — multer@2.1.1 (high), multer@2.1.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/daisukehori/printer-mcp-server)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check