Skip to main content
Glama
steveclarke

MCP Printer Server

by steveclarke

Print File

print_file

Print files including PDFs and text documents to a specified printer. Choose number of copies and additional print options like duplex or landscape orientation.

Instructions

Print a file to a specified printer. Supports PDF, text, and other common formats. Can specify number of copies and print options.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filesYesArray of files to print (use single-element array for one file)

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed8 schema fields changedv1.0.0
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / copies
      Removed value: -{
      -  "default": 1,
      -  "description": "Number of copies to print (default: 1)",
      -  "type": "number"
      -}
    • removedInput schema / properties / file_path
      Removed value: -{
      -  "description": "Full path to the file to print",
      -  "type": "string"
      -}
    • addedInput schema / properties / files
      Added value: +{
      +  "description": "Array of files to print (use single-element array for one file)",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "color_scheme": {
      +        "description": "Syntax highlighting color scheme for code files (e.g., 'github', 'monokai', 'atom-one-light')",
      +        "type": "string"
      +      },
      +      "copies": {
      +        "default": 1,
      +        "description": "Number of copies to print (default: 1)",
      +        "minimum": 1,
      +        "type": "number"
      +      },
      +      "file_path": {
      +        "description": "Full path to the file to print",
      +        "type": "string"
      +      },
      +      "font_size": {
      +        "description": "Font size for code files (e.g., '8pt', '10pt', '12pt')",
      +        "type": "string"
      +      },
      +      "force_code_render": {
      +        "description": "Force code rendering to PDF with syntax highlighting (true=always render, false=never render, undefined=use config)",
      +        "type": "boolean"
      +      },
      +      "force_markdown_render": {
      +        "description": "Force markdown rendering to PDF (true=always render, false=never render, undefined=use config)",
      +        "type": "boolean"
      +      },
      +      "line_numbers": {
      +        "description": "Show line numbers when rendering code files (overrides global setting)",
      +        "type": "boolean"
      +      },
      +      "line_spacing": {
      +        "description": "Line spacing for code files (e.g., '1', '1.5', '2')",
      +        "type": "string"
      +      },
      +      "options": {
      +        "description": "Additional CUPS options (e.g., 'landscape', 'sides=two-sided-long-edge')",
      +        "type": "string"
      +      },
      +      "printer": {
      +        "description": "Printer name (use list_printers to see available printers). Optional if default printer is set.",
      +        "type": "string"
      +      },
      +      "skip_confirmation": {
      +        "description": "Skip page count confirmation check (bypasses MCP_PRINTER_CONFIRM_IF_OVER_PAGES threshold)",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "file_path"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / options
      Removed value: -{
      -  "description": "Additional CUPS options (e.g., 'landscape', 'sides=two-sided-long-edge')",
      -  "type": "string"
      -}
    • removedInput schema / properties / printer
      Removed value: -{
      -  "description": "Printer name (use list_printers to see available printers). Optional if default printer is set.",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "file_path"
      -]New value: +[
      +  "files"
      +]
  2. First observed

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavior. It mentions supporting common formats but does not explain what happens with unsupported formats, whether the action is destructive, or what the confirmation behavior (implied by skip_confirmation parameter) entails. The description is too brief to give adequate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, and contains no superfluous words. Every sentence provides essential information without repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (many parameters for code rendering, confirmation bypass, etc.), the description is too sparse. It does not explain the purpose of features like skip_confirmation, line_numbers, or force_markdown_render. Without annotations, the description fails to provide a complete picture of when and how to use these options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters described in schema), so baseline is 3. The description adds minor context: 'Supports PDF, text, and other common formats' and 'Can specify number of copies and print options,' but does not explain relationships between parameters or provide usage examples beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool prints a file to a specified printer, lists supported formats, and mentions ability to set copies and options. It distinguishes itself from sibling tools (get_config, list_printers, etc.) which deal with configuration, printer listing, or queue management, not printing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., selecting a printer) or when not to use it. The only hint is in the input schema for the 'printer' parameter referencing list_printers, but that is not in the description itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steveclarke/mcp-printer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server