Tools and workflow

The server exposes a small, standard MCP tool set. Read tools never spend credits; the only paid action is skavio_submit_job.

Discovery and accounting (free)

ToolPurpose
skavio_capabilitiesLive operations and pricing metadata.
skavio_pricingCurrency, credit prices and credit packs.
skavio_paid_catalogPaid operations with per-unit USD price, credit price and the enforced margin band.
skavio_billing_plansSubscription plans (no payment is started).
skavio_payment_historyCompany payment history.
skavio_walletAuthoritative company credit balance.
skavio_usageAuthoritative monthly usage.
skavio_budgetsCompany and key budget ceilings.
skavio_adapter_usageThis adapter's reserved and charged credits.
skavio_billing_portalAuthenticated dashboard handoff; no checkout or purchase.

Files (free, but they reserve an upload intent)

ToolPurpose
skavio_uploadMeasured multipart upload of a file that an operator has placed in the configured input directory (arguments: filename, idempotency_key).
skavio_upload_bytesUpload small inline content as base64 (≤ 48 KiB; arguments: filename, data_base64, idempotency_key).
skavio_download_resultDownload a completed result for the authenticated company (job_id, result_id).

Uploads have no upstream idempotency guarantee. An upload intent is persisted before dispatch; an uncertain upload is never repeated automatically.

Paid work

ToolPurpose
skavio_estimateAuthoritative, nonbillable quote for a spec.
skavio_submit_jobPaid. Reserve a credit cap and dispatch the job.
skavio_get_jobRead job state and reconcile credits.
skavio_list_jobsList jobs for the company.
skavio_cancel_jobCancel an unstarted job; running work may still charge.
skavio_reconcileOperator/agent view of ambiguous admissions.
skavio_cleanupLocal result retention cleanup.

The paid sequence

  1. Upload — skavio_upload/skavio_upload_bytes returns uploads[0].id.
  2. Estimate — skavio_estimate with the spec and upload_ids.
  3. Submit — skavio_submit_job with the spec, your idempotency_key and

max_credits set to the quote. The reservation is the immutable hard cap and is persisted *before* dispatch, so a crash or restart cannot double-charge.

  1. Poll — skavio_get_job until completed or failed.
  2. Download — skavio_download_result for the signed result.
  3. Reconcile — skavio_adapter_usage and skavio_wallet show the settled

charge.

Submit example

{"spec":{"operation":"document_ocr","upload_ids":["UPLOAD_ID"],"max_credits":8},"idempotency_key":"invoice-batch-2026-10-13-0007"}

Idempotency and recovery

exact same arguments on retry.

not create or charge a second job.

idempotency_conflict; it never overwrites the original intent.

unknown, the server keeps a conservative reservation and marks the admission for reconciliation; it never resubmits an ambiguous job.

What a tool call can never do