Each certificate and bill has an extractor that already knows that document's fields, so what comes back is a field key, a human-readable name and a confidence score you can threshold on. The trade is that routing matters: send an ID card to the vehicle-certificate tool and it reports an extraction failure, so pick by document type first and fall back to parse_document only when the type is genuinely unknown. Two practical notes — the tool list is generated from the apps initialised on your account, so refresh it once after the first connection if a certificate tool is missing, and run large files with wait=false and collect them with query_task and get_result rather than holding a call open for five minutes.
The MCP endpoint for Laiye's Agentic Document Processing platform. One tool parses any PDF, image or Office file into structured blocks with page coordinates; the rest are purpose-built extractors for Chinese bills and certificates, overseas and Southeast Asian invoices, and purchase orders. There are no templates to define, no fields to label and no rules to maintain.
- parse_document handles PDF, image, Word, Excel and PPT, returning text blocks, tables and pictures in reading order with four-corner bounding boxes and per-element OCR confidence
- extract_china_invoice covers 30+ Chinese bill types — fully-digitalised e-invoices, general and special VAT invoices, taxi receipts, train tickets, air itineraries, fiscal invoices — and can also judge whether an invoice is genuine
- extract_global_invoice reads number, date, amount, tax, currency and line items from overseas invoices and receipts; extract_global_invoice_fast and extract_sea_invoice_fast skip the OCR stage and go straight to the vision model for latency-sensitive batches, the Southeast Asian one adding withholding-tax fields
- Chinese identity and company documents each get their own extractor: extract_id_card, extract_business_license, extract_driver_license, extract_vehicle_license, extract_vehicle_cert, extract_passport_cn, extract_hk_macao_permit, extract_household_book, extract_bank_card, extract_account_permit and extract_org_code_cert
- extract_purchase_order pulls order number, both parties, order date, item details, quantity, unit price, total and shipping address out of purchase and sales orders
- Every extraction answers with field_key, field_name and a field_confidence between 0 and 1 per value; table fields arrive as table_values, a two-dimensional array of cells you can tell apart because plain fields have only field_values
- Local files go up through upload_temporary_file, which returns a data.download_url to pass as the file parameter; a plain URL or Base64 content works without that step
- list_custom_extract_apps and execute_custom_extract_app run the extraction apps you built on the platform yourself, using the output field definitions each app declares
- query_task and get_result collect work that was started asynchronously
Runs over stdio as npx -y @laiye-adp/mcp and needs Node.js 20+ locally. ADP_API_KEY comes from the My MCP page in the ADP console, is bound to one user's apps and data, and is passed only as an environment variable — it never appears in request bodies or responses. ADP_ACCEPT_LANGUAGE switches between zh and en and defaults to zh. Calls wait for the result by default and time out at 300 seconds; timeout_seconds accepts up to 900, or wait=false returns a task_id to poll. New accounts receive 100 free credits a month, and the service is billed by usage after that.
One command plus a key — npx -y @laiye-adp/mcp, then supply credentials
