Skip to content

com.mart402/extract

by mart402.com · remote · no sign-in to list tools · v0.2.0 · published by com.mart402

Web extraction, OCR (Japanese-strong), invoice and company data for AI agents. x402, no API key.

Final · 2Changes · 29

35 tools: 2 do something that can't be undone, 29 change things and 4 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http extract https://mart402.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "meal_vision" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "analyze": a word for reading.

    What this check looks for

Tools

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

35 tools

Can't be undone 2Claude Code: ask
  • jp_business_daysJapanese holidays, business-day arithmetic, statutory filing deadlines with holiday shift, wareki conversion.No findings

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    Japanese holidays, business-day arithmetic, statutory filing deadlines with holiday shift, wareki conversion. $0.003/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Required by mode (default add): add -> from, days; between -> from, to; holidays -> year; deadline -> kind, base_date; wareki -> date.

    Annotations the server declares

    • title: Jp Business Days
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • pdf_mergeMerge 2-10 PDFs into one, in order.No findings

    Why it is in this group

    • The name "pdf_merge" says "merge": a word for a change that another call does not undo.
    Description, as the server wrote it
    Merge 2-10 PDFs into one, in order. Deterministic, $0.003.

    Annotations the server declares

    • title: Pdf Merge
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 29Claude Code: ask
  • document_pipelineOne call: PDF invoice to parse (hallucination-guarded OCR) + field extraction + arithmetic verification (+optional issuer enrich).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
    One call: PDF invoice to parse (hallucination-guarded OCR) + field extraction + arithmetic verification (+optional issuer enrich). Flat $0.05/document; inputs validated before payment. Choose this when a PDF is an invoice/receipt and you want parse + field extraction + arithmetic verification in one paid call; for text only use parse_document.

    Annotations the server declares

    • title: Document Pipeline
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • enrich_companyCompany name/domain/URL to a verified profile from primary sources + GLEIF LEI and Japan NTA corporate-number registries.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
    Company name/domain/URL to a verified profile from primary sources + GLEIF LEI and Japan NTA corporate-number registries. Per-field evidence + confidence, honest nulls; unresolved lookups never charged. $0.03/company. Choose this when you have a company NAME or DOMAIN and need a registry-grounded profile (GLEIF LEI / Japan NTA) with per-field evidence; pass country_hint 'jp' for Japanese companies.

    Annotations the server declares

    • title: Enrich Company
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • extract_urlExtract a web page to clean Markdown + metadata (auto JS rendering, robots.txt respected).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 a web page to clean Markdown + metadata (auto JS rendering, robots.txt respected). $0.005 fast / $0.01 rendered; cached results half price. Choose this when you need a web PAGE as clean Markdown to read yourself; to fill a schema use structured_extract, for a PDF use pdf_info then parse_document.

    Annotations the server declares

    • title: Extract Url
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_bonus_netBonus net pay: social insurance and withholding tax (official rate table, based on previous month salary).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
    Bonus net pay: social insurance and withholding tax (official rate table, based on previous month salary). $0.01/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Bonus Net
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_company_profileJapanese company site to a standard profile JSON (name, address, representative, capital, contact).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
    Japanese company site to a standard profile JSON (name, address, representative, capital, contact). $0.03/site. Choose this when you have the URL of a Japanese company's OWN site and want its standard profile fields read from the page; for name/domain lookups use enrich_company (country_hint: jp).

    Annotations the server declares

    • title: Jp Company Profile
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_consumption_taxConsumption tax: per-rate invoice rounding, qualified-invoice validation, simplified taxation, 20% special.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
    Consumption tax: per-rate invoice rounding, qualified-invoice validation, simplified taxation, 20% special. $0.01/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Required by mode (default invoice_totals): invoice_totals -> lines; validate_invoice -> document; simplified -> taxable_sales_excl_yen, category; two_percent -> taxable_sales_excl_yen, taxable_period_start, taxable_period_end.

    Annotations the server declares

    • title: Jp Consumption Tax
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_crypto_taxJapan crypto-asset tax: realized income under the NTA total-average or moving-average method (sell/spend/exchange as disposals, fees deductible), verified against the official NTA …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
    Japan crypto-asset tax: realized income under the NTA total-average or moving-average method (sell/spend/exchange as disposals, fees deductible), verified against the official NTA FAQ examples. $0.05/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Crypto Tax
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_dependent_thresholdIncome-wall analysis: tax, social insurance (1.06M/1.30M), spousal and student-dependent walls.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
    Income-wall analysis: tax, social insurance (1.06M/1.30M), spousal and student-dependent walls. $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Dependent Threshold
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_mortgageMortgage schedules (level payment/principal), total interest, prepayment effect.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
    Mortgage schedules (level payment/principal), total interest, prepayment effect. $0.005/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Mortgage
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_overtime_wageOvertime premium pay (Labor Standards Act Art.37, official rounding notice) and Article-36 limit check.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
    Overtime premium pay (Labor Standards Act Art.37, official rounding notice) and Article-36 limit check. $0.015/call. Deterministic, cites primary sources; errors and unverified rules are never billed. Required by mode (default pay): pay -> monthly_salary_yen, monthly_scheduled_hours, hours; check36 -> monthly_overtime_hours.

    Annotations the server declares

    • title: Jp Overtime Wage
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_payroll_netAnnual gross salary to net take-home (social insurance + income tax + resident tax).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
    Annual gross salary to net take-home (social insurance + income tax + resident tax). Exact NTA Beppyo-5 table. $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Payroll Net
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_payroll_suiteJapan payroll suite: net salary + social insurance + income walls (+bonus) 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
    Japan payroll suite: net salary + social insurance + income walls (+bonus) in one call. Flat $0.05.

    Annotations the server declares

    • title: Jp Payroll Suite
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_payslip_auditAudit a Japanese payslip: recompute statutory premiums and withholding tax from official tables and diff against the actual amounts, with per-item verdicts (match/explainable/misma…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
    Audit a Japanese payslip: recompute statutory premiums and withholding tax from official tables and diff against the actual amounts, with per-item verdicts (match/explainable/mismatch). $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Payslip Audit
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_retirement_taxRetirement income tax: deduction by years of service, half-taxation rules, exact withholding rounding.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
    Retirement income tax: deduction by years of service, half-taxation rules, exact withholding rounding. $0.02/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Retirement Tax
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • jp_social_insuranceMonthly social insurance premiums from the official Kyokai-Kenpo grade table (FY2026).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
    Monthly social insurance premiums from the official Kyokai-Kenpo grade table (FY2026). $0.01/call. Deterministic, cites primary sources; errors and unverified rules are never billed.

    Annotations the server declares

    • title: Jp Social Insurance
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • meal_visionAnalyze a meal photo to itemized nutrition JSON: dishes, portions, kcal, macros with per-item confidence, reference-object scale calibration, scene-complexity detection, a disclose…1 finding

    Why it is in this group

    • The description's first verb is "analyze": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "meal_vision" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "analyze": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Analyze a meal photo to itemized nutrition JSON: dishes, portions, kcal, macros with per-item confidence, reference-object scale calibration, scene-complexity detection, a disclosed calibrated kcal range, PFC balance ratios and alcohol-aware 4/4/9 cross-checks. Calibrated on 30 weighed meals (range contained truth in 26/30). Every call is a 3-run consensus with disclosed spread + item agreement. $0.05/image.

    Annotations the server declares

    • title: Meal Vision
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • ocr_imageOCR one image to text with dual-engine consensus, calibrated confidence and per-segment corroboration.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
    OCR one image to text with dual-engine consensus, calibrated confidence and per-segment corroboration. Japanese-strong. Flat $0.05/image. Choose this when the input is an IMAGE (photo, screenshot, receipt); for PDFs use parse_document.

    Annotations the server declares

    • title: Ocr Image
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • operator_historyFree 12-week measured score history for any x402 operator from the Market402 index (weekly series, trend, volatility, badge).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
    Free 12-week measured score history for any x402 operator from the Market402 index (weekly series, trend, volatility, badge). Check a seller's record before your agent pays an unfamiliar endpoint.

    Annotations the server declares

    • title: x402 operator track record (Market402)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • parse_documentParse a PDF to structured Markdown (hallucination-guarded OCR for scanned pages, Japanese-strong).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
    Parse a PDF to structured Markdown (hallucination-guarded OCR for scanned pages, Japanese-strong). Pass url (one step: the 402 quotes the exact price for that PDF) or quote_id from quote_parse (price fixed by the quote). One of the two is required. Choose this when the input is a PDF and you want its full text as Markdown; call pdf_info first if you do not know whether it is scanned, and use document_pipeline instead for invoices you also want verified.

    Annotations the server declares

    • title: Parse Document
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • pdf_infoPDF facts before you pay for parsing: pages, metadata, per-page text volume, scanned-or-not estimate.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
    PDF facts before you pay for parsing: pages, metadata, per-page text volume, scanned-or-not estimate. $0.001. Choose this first for any unknown PDF (cheapest real call); then parse_document, pdf_pages or document_pipeline.

    Annotations the server declares

    • title: Pdf Info
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • pdf_pagesExtract pages from a PDF by 1-based ranges (e.g.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 pages from a PDF by 1-based ranges (e.g. 1-3,7) into a new PDF. Deterministic, $0.002.

    Annotations the server declares

    • title: Pdf Pages
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • portrait_analysisPersonal color analysis from 1-3 portraits: measured pixel colorimetry (CIELAB/ITA) cross-checked against vision-model attributes, cross-photo lighting consistency, then a publishe…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
    Personal color analysis from 1-3 portraits: measured pixel colorimetry (CIELAB/ITA) cross-checked against vision-model attributes, cross-photo lighting consistency, then a published deterministic rule table gives the 4-season verdict with palette and style advice. No identification; images not stored. Flat $0.05/call.

    Annotations the server declares

    • title: Portrait Analysis
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • portrait_precheckFREE analyzability check before paying for portrait_analysis: is a face detectable, is the photo quality good enough (clipping/color cast)?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
    FREE analyzability check before paying for portrait_analysis: is a face detectable, is the photo quality good enough (clipping/color cast)? Deterministic, no LLM. 10/hour/IP.

    Annotations the server declares

    • title: Check a portrait photo (free)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • quote_parseFree quote for PDF parsing: page count, route (text/scan-OCR) and the exact final price, before any payment.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
    Free quote for PDF parsing: page count, route (text/scan-OCR) and the exact final price, before any payment. Use the returned quote_id with parse_document (on /mcp or /mcp/docs).

    Annotations the server declares

    • title: Quote a PDF parse (free, exact price)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • report_packVolume pricing for style_report: one $19.90 payment returns 10 single-use credit codes ($1.99/unit vs $2.99 single, en or ja, no expiry).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
    Volume pricing for style_report: one $19.90 payment returns 10 single-use credit codes ($1.99/unit vs $2.99 single, en or ja, no expiry). Treat codes like cash.

    Annotations the server declares

    • title: Report Pack
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • structured_extractFill YOUR JSON schema from any URL (hybrid LLM + deterministic canonicalization).No findings

    Why it is in this group

    • The description's first verb is "fill": a word for a change.
    Description, as the server wrote it
    Fill YOUR JSON schema from any URL (hybrid LLM + deterministic canonicalization). $0.03/call. Choose this when you have your OWN JSON schema to fill from any page; for company profiles use enrich_company or jp_company_profile.

    Annotations the server declares

    • title: Structured Extract
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • style_profileIntegrated styling verdict: seasonal color (measured colorimetry consensus) + face-impression zone (published geometry rules) + body frame + integration rules (palette subset, tast…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
    Integrated styling verdict: seasonal color (measured colorimetry consensus) + face-impression zone (published geometry rules) + body frame + integration rules (palette subset, taste, silhouette, modifiers). 1-3 face photos, optional full-body + questionnaire. Flat $0.05/call.

    Annotations the server declares

    • title: Style Profile
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • style_reportClient-ready deliverable: the style-profile analysis rendered as a finished English PDF report (palette with color names, style-aware outfit formulas, virtual draping boards with d…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
    Client-ready deliverable: the style-profile analysis rendered as a finished English PDF report (palette with color names, style-aware outfit formulas, virtual draping boards with disclosed candidate conflicts, honest confidence) returned as report_pdf_base64 + full profile JSON. For agents serving human end-clients. Flat $2.99/call, or $1.99/unit with a prepaid report_pack credit (pass pack_code).

    Annotations the server declares

    • title: Style Report
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • verify_invoiceVerify extracted invoice fields: arithmetic consistency, line-item totals, JP registration number check-digit + corporate-number existence observation (official Japan NTA registry)…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
    Verify extracted invoice fields: arithmetic consistency, line-item totals, JP registration number check-digit + corporate-number existence observation (official Japan NTA registry), accounting-ready JSON. $0.015/call. Choose this when you already HAVE invoice fields (from your own extraction) and only need them checked; to start from a PDF use document_pipeline.

    Annotations the server declares

    • title: Verify Invoice
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 4Claude Code: allow
  • get_catalogMart402 product catalog: all products, prices, payment config, error codes, rate limits.No findings

    Why it is in this group

    • The name "get_catalog" says "get": a word for reading.
    Description, as the server wrote it
    Mart402 product catalog: all products, prices, payment config, error codes, rate limits. Free.

    Annotations the server declares

    • title: Mart402 catalog (products, prices, policies)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_receiptRe-fetch a previously paid result for free by receipt id (every paid response carries receipt_id).No findings

    Why it is in this group

    • The name "get_receipt" says "get": a word for reading.
    Description, as the server wrote it
    Re-fetch a previously paid result for free by receipt id (every paid response carries receipt_id).

    Annotations the server declares

    • title: Re-fetch a paid result by receipt
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_sampleFree recorded sample response for a paid product (from real production runs, marked sample:true) - see the exact response shape before paying anything.No findings

    Why it is in this group

    • The name "get_sample" says "get": a word for reading.
    Description, as the server wrote it
    Free recorded sample response for a paid product (from real production runs, marked sample:true) - see the exact response shape before paying anything. Available: document-pipeline, enrich, extract, jp-bonus-net, jp-business-days, jp-company, jp-consumption-tax, jp-crypto-tax, jp-dependent-threshold, jp-mortgage, jp-overtime-wage, jp-payroll-net, jp-payroll-suite, jp-payslip-audit, jp-retirement-tax, jp-social-insurance, meal-vision, ocr, parse, pdf-info, pdf-merge, pdf-pages, portrait-analysis, report-pack, structured, style-profile, style-report, verify.

    Annotations the server declares

    • title: Mart402 sample output
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_x402_servicesSearch the Market402 verified index of the whole x402 economy by capability (e.g.No findings

    Why it is in this group

    • The name "search_x402_services" says "search": a word for reading.
    Description, as the server wrote it
    Search the Market402 verified index of the whole x402 economy by capability (e.g. 'ocr', 'market-data'). Every result is a real, probed resource with a measured 402 Score. Free.

    Annotations the server declares

    • title: Search x402 services (Market402 index)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: 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 0.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http extract https://mart402.com/mcp

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__extract__get_catalog",
      "mcp__extract__get_receipt",
      "mcp__extract__search_x402_services",
      "mcp__extract__get_sample"
    ],
    "ask": [
      "mcp__extract__quote_parse",
      "mcp__extract__portrait_precheck",
      "mcp__extract__operator_history",
      "mcp__extract__extract_url",
      "mcp__extract__parse_document",
      "mcp__extract__ocr_image",
      "mcp__extract__verify_invoice",
      "mcp__extract__enrich_company",
      "mcp__extract__structured_extract",
      "mcp__extract__jp_company_profile",
      "mcp__extract__document_pipeline",
      "mcp__extract__pdf_merge",
      "mcp__extract__pdf_pages",
      "mcp__extract__pdf_info",
      "mcp__extract__meal_vision",
      "mcp__extract__style_profile",
      "mcp__extract__style_report",
      "mcp__extract__report_pack",
      "mcp__extract__portrait_analysis",
      "mcp__extract__jp_payroll_net",
      "mcp__extract__jp_bonus_net",
      "mcp__extract__jp_social_insurance",
      "mcp__extract__jp_dependent_threshold",
      "mcp__extract__jp_consumption_tax",
      "mcp__extract__jp_business_days",
      "mcp__extract__jp_overtime_wage",
      "mcp__extract__jp_retirement_tax",
      "mcp__extract__jp_mortgage",
      "mcp__extract__jp_payslip_audit",
      "mcp__extract__jp_crypto_tax",
      "mcp__extract__jp_payroll_suite"
    ],
    "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 extract. Review it before you use it.