# ScanNow MCP contract

This local stdio server is authorized by and resolves all capture content through
ScanNow Desktop Agent. IDs are opaque. Resources never map to local paths.

## Tools

| Tool | Purpose |
| --- | --- |
| `list_scanners` | List available scanners. |
| `get_scanner_capabilities` | Read supported scanner settings. |
| `capture_document` | Start a capture; explicit settings override intent. |
| `get_capture_status` / `cancel_capture` | Manage capture lifecycle safely. |
| `get_document_metadata` / `delete_document` | Inspect or explicitly confirmed-delete a temporary document. |
| `get_document_capabilities` | List Desktop Agent processing/export support. |
| `process_document` / `export_document` | Request only supported processing or export. |

Policy, confirmation, and unsupported-setting failures are returned as actionable
errors; the MCP server does not bypass Desktop Agent policy.

## Resources

| URI | MIME type | Authorization behavior |
| --- | --- | --- |
| `scannow://documents/{documentId}` | Agent-provided document MIME type | Desktop Agent authorizes content access. |
| `scannow://documents/{documentId}/metadata` | `application/json` | Agent authorizes metadata access. |
| `scannow://documents/{documentId}/text` | `text/plain` | Available only for authoritative OCR output. |
| `scannow://documents/{documentId}/thumbnail` | `image/png` | Available only when thumbnails are supported and authorized. |
| `scannow://documents/{documentId}/pages/{pageNumber}` | Agent-provided page MIME type | Page access is authorized by the Desktop Agent. |

Expired or deleted documents return a clear error. The website documentation
workflow publishes this file with the rest of `docs/`.
