sane-based physical document scanning with hardware control
Interfaces with SANE (Scanner Access Now Easy) daemon to directly control physical scanner hardware, enabling capture of documents via ADF (automatic document feeder) or flatbed with configurable page sizes and duplex modes. Uses Node.js bindings to the SANE C library, abstracting low-level scanner device enumeration, parameter negotiation, and pixel-stream capture into typed MCP tool calls with JSON Schema validation for all inputs and outputs.
Unique: Direct SANE daemon integration via Node.js bindings with typed MCP tool schema validation, enabling AI agents to control physical scanner hardware with full parameter negotiation (duplex, page size, ADF) rather than wrapping command-line tools or REST APIs
vs alternatives: More direct and lower-latency than cloud-based scanning APIs (no network round-trips) and more flexible than simple CLI wrappers, with full type safety and schema validation for all scanner parameters
multi-page document assembly and sequencing
Orchestrates sequential scanning of multiple pages through SANE, collecting individual page captures and assembling them into a coherent multi-page document output. Implements page ordering, duplex mode handling (front/back page pairing), and optional page numbering or metadata tagging. Uses in-memory buffering to track page sequence and supports both ADF auto-feed and manual page-by-page scanning workflows.
Unique: Implements page assembly as a stateful MCP tool that maintains scan sequence across multiple tool invocations, with explicit duplex mode handling that pairs front/back pages rather than treating them as separate documents
vs alternatives: More intelligent than simple page concatenation — understands duplex scanning semantics and can pair front/back pages automatically, vs. generic image stitching tools that treat pages as independent
json schema–validated scanner parameter configuration
Exposes all scanner parameters (page size, resolution, color mode, duplex, ADF settings) through strictly typed MCP tools with JSON Schema validation on both input and output. Validates parameter values against scanner hardware capabilities before sending to SANE, preventing invalid configurations and providing clear error messages for unsupported combinations. Uses schema-based function calling to ensure AI agents can only request valid scanner states.
Unique: Implements JSON Schema validation as a first-class MCP pattern for hardware control, ensuring all scanner parameters are validated before SANE invocation rather than relying on SANE error handling alone
vs alternatives: Provides validation at the MCP layer (before hardware calls) vs. reactive error handling, reducing failed hardware operations and enabling AI agents to understand valid parameter ranges upfront
scanner device enumeration and capability discovery
Queries the SANE daemon to enumerate all connected scanner devices and discover their capabilities (supported page sizes, color modes, resolutions, duplex support, ADF availability). Returns structured metadata about each device including manufacturer, model, and available parameters. Uses SANE device enumeration API to build a capability registry that informs parameter validation and user-facing configuration options.
Unique: Exposes SANE device enumeration as a typed MCP tool with structured capability metadata, enabling AI agents to query available hardware and adapt workflows dynamically rather than requiring pre-configured device lists
vs alternatives: More dynamic than hardcoded device lists and more structured than raw SANE CLI output, providing AI agents with machine-readable capability data for intelligent device selection
adf (automatic document feeder) mode scanning with auto-feed control
Configures and controls SANE scanner ADF mode, enabling automatic page feeding for high-volume document capture. Handles ADF-specific parameters like auto-feed enable/disable, page detection, and jam recovery. Abstracts ADF state management so AI agents can request 'scan N pages with ADF' without managing individual page feed commands. Supports both continuous ADF feeding and page-by-page manual feed fallback.
Unique: Abstracts ADF state and feed control as high-level MCP operations ('scan N pages with ADF') rather than exposing low-level feed commands, enabling AI agents to request batch scanning without managing mechanical feed state
vs alternatives: Higher-level abstraction than raw SANE ADF parameters, with built-in handling for ADF-specific concerns like jam detection and page counting, vs. generic scanning tools that treat ADF as just another parameter
typed mcp tool schema generation and validation
Generates strongly-typed MCP tool definitions with JSON Schema for all scanner operations, ensuring type safety across the MCP protocol boundary. Implements schema-based function calling that validates all inputs against defined schemas before execution and validates outputs to ensure consistency. Uses TypeScript or similar for compile-time type checking, with runtime schema validation as a safety layer. Enables IDE autocomplete and type hints for MCP clients calling scanner tools.
Unique: Implements end-to-end typed tool definitions with compile-time TypeScript types and runtime JSON Schema validation, enabling both IDE-level type safety and runtime guardrails for MCP scanner tools
vs alternatives: Combines compile-time type checking with runtime validation, vs. either pure TypeScript (no runtime safety) or pure schema validation (no IDE hints), providing defense-in-depth for hardware control