Skip to content

io.github.peter-schout/bol-ai

by peter-schout · remote · no sign-in to list tools · v1.0.0 · published by GitHub user peter-schout

Extract structured data from Bills of Lading: parties, ports, containers, incoterms. EU-hosted.

Changes · 4

8 tools: 4 change things and 4 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http bol-ai https://bol.ai/api/mcp --header 'Authorization: <your-authorization>'

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

8 tools

Changes things 4Claude Code: ask
  • export_documentsExport completed extractions as TMS/ERP-ready normalized line rows (one row per container / invoice line / package / goods line), newest first.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Export completed extractions as TMS/ERP-ready normalized line rows (one row per container / invoice line / package / goods line), newest first. Optional doc_type filter and max_rows cap. Corrected data wins over the original extraction. For CSV/XLSX files use GET /api/bol/export on the REST API.

    Annotations the server declares

    • readOnlyHint: true
  • extract_batchExtract up to 10 freight documents in one call.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Extract up to 10 freight documents in one call. Provide an array of fetchable URLs; each document is processed and billed independently, and the response reports a per-document outcome so partial success (e.g. running out of credits mid-batch) is explicit.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • extract_bolExtract structured data from a freight document (PDF, PNG or JPG, max 10 MB): Bill of Lading, commercial invoice, packing list, or CMR road waybill.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Extract structured data from a freight document (PDF, PNG or JPG, max 10 MB): Bill of Lading, commercial invoice, packing list, or CMR road waybill. The document type is detected automatically and returned as `doc_type`. Provide either a fetchable `url` or `base64` file content. Fields not present in the document are null — never guessed. Each successful extraction bills one document.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • save_correctionsSave corrected field values for an extracted document.No findings

    Why it is in this group

    • The name "save_corrections" says "save": a word for a change.
    Description, as the server wrote it
    Save corrected field values for an extracted document. The original extraction is kept alongside the corrections; corrected data takes precedence in get_document, exports and reconciliation. Pass the complete corrected fields object (same shape as returned by get_document).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
Only reads 4Claude Code: allow
  • get_documentGet the extraction result for a document by id: doc_type, extracted fields, user corrections (when present), and deterministic verification warnings (ISO 6346 container check digit…No findings

    Why it is in this group

    • The name "get_document" says "get": a word for reading.
    Description, as the server wrote it
    Get the extraction result for a document by id: doc_type, extracted fields, user corrections (when present), and deterministic verification warnings (ISO 6346 container check digits, plausibility flags). `fields` is the best available data (corrections win); `original_fields` and `corrected_fields` show both sides.

    Annotations the server declares

    • readOnlyHint: true
  • get_usageCheck this account's remaining prepaid credits and subscription status.No findings

    Why it is in this group

    • The name "get_usage" says "get": a word for reading.
    Description, as the server wrote it
    Check this account's remaining prepaid credits and subscription status. Call this before large batches to avoid running out of credits mid-workflow. When the account cannot bill more documents, a human can top up at the returned buy_credits_url.

    Annotations the server declares

    • readOnlyHint: true
  • list_documentsList the 100 most recent documents for this account with id, filename, status (pending/done/failed), doc_type and primary reference number.No findings

    Why it is in this group

    • The name "list_documents" says "list": a word for reading.
    Description, as the server wrote it
    List the 100 most recent documents for this account with id, filename, status (pending/done/failed), doc_type and primary reference number.

    Annotations the server declares

    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http bol-ai https://bol.ai/api/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__bol-ai__list_documents",
      "mcp__bol-ai__get_document",
      "mcp__bol-ai__get_related_documents",
      "mcp__bol-ai__get_usage"
    ],
    "ask": [
      "mcp__bol-ai__extract_bol",
      "mcp__bol-ai__extract_batch",
      "mcp__bol-ai__save_corrections",
      "mcp__bol-ai__export_documents"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as bol-ai. Review it before you use it.