Skip to main content
Glama
nohosa001-pixel

Critical Raw Minerals & Urban Mining Oracle (x402)

EV Battery Critical Minerals & Provenance Oracle (minerals-oracle-x402)

PyPI Version Tests Spec Version FastMCP Polygon Network License: MIT

Autonomous Machine-to-Machine (M2M) Compliance & On-Chain Battery Passport Oracle for Critical Minerals (Lithium, Nickel, Cobalt, Copper, Silver).
Verifies real-world mining extraction, stoichiometric mass balances, US IRA Section 30D 50% FTA value thresholds, strict Foreign Entity of Concern (FEOC) taint propagation, EU Battery Regulation (2023/1542) & 2028 Downstream CBAM carbon footprints, ASTM B115 HVDC copper grid standards, LBMA TOPCon solar PV silver purity, and issues cryptographic Merkle Root EIP-712 master attestations on Polygon.


๐Ÿ–ฅ๏ธ Live Web Observatories & Dashboards


Related MCP server: hyperd-mcp

โšก Key Architectural Capabilities (v2.4.0)

1. Composite EV Battery Master Passport Orchestrator (app/composite_battery_pipeline.py)

Synthesizes the 3 primary battery critical minerals into a unified cell/pack compliance attestation:

  • Cathode Chemistries: NCM 811 (80% Ni, 10% Co, 10% Mn), NCM 622, NCM 523.

  • US IRA 30D Critical Minerals $3,750 Tax Credit Formula: $$\text{Procurement Value} = (\text{Li Tons} \times $18,500) + (\text{Ni Tons} \times $17,000) + (\text{Co Tons} \times $32,000)$$ $$\text{FTA Qualifying Ratio} = \frac{\text{Value}{\text{AUS (FTA)}}}{\text{Value}{\text{Total}}} \times 100% \ge 50.0%$$

  • Strict Zero-Tolerance FEOC Taint Propagation: If any mineral component carries $\ge 25%$ covered nation (China/Russia/Iran/North Korea) equity or operational control, the entire battery pack is disqualified (FLAG_COMPOSITE_FEOC_TAINT).

  • EU Battery Regulation (2023/1542) & CBAM Scope 1-3 Carbon Footprint:

    • Captive coal power smelting in Indonesian HPAL triggers FLAG_EU_BATTERY_CBAM_SURCHARGE (+26.5 kg COโ‚‚e/kWh penalty).

  • Cryptographic Merkle Tree & Polygon EIP-712 Master Signature: $$\text{Merkle Root} = \text{0x} + \text{SHA256}(\text{Leaf}{\text{Li}} + \text{Leaf}{\text{Ni}} + \text{Leaf}_{\text{Co}})$$ Signs typed structured data binding battery_pack_id, chemistry, merkle_root, composite score, and legal disclaimer terms.


2. Dedicated Provenance Pipelines for Core Minerals

flowchart TD
    subgraph Mining["1. Global Extraction & Geofencing"]
        Li["๐Ÿ‡ฆ๐Ÿ‡บ Australia (Greenbushes / Pilgangoora)<br/>WA MINEDEX GIS Geofencing"]
        Ni["๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia (IMIP Morowali / IWIP)<br/>Sulawesi/Halmahera Geofencing"]
        Co["๐Ÿ‡จ๐Ÿ‡ฉ DRC (Kamoto KCC / Tenke / Mutanda)<br/>Katanga Copperbelt Geofencing"]
    end

    subgraph Processing["2. Stoichiometric Mass Balance & Traps"]
        LiProc["Spodumene to LiOH (7.5:1 Yield)<br/>Anti-Transshipment Geofencing"]
        NiProc["Limonite to MHP (31.34:1 Yield)<br/>ESDM SIMBARA NTPN Tax Clear<br/>EU CBAM Coal Smelting Audit"]
        CoProc["Heterogenite to Hydroxide (23.53:1 Yield)<br/>CEEC Barcode Seal Verification<br/>ILO 138/182 Zero Child Labor Audit"]
    end

    subgraph Composite["3. Composite Battery Orchestrator"]
        Master["NCM 811 Pack Synthesis<br/>IRA FTA Value Ratio (>= 50%)<br/>FEOC Taint Propagation (< 25%)<br/>EU Cradle-to-Gate Carbon Footprint"]
    end

    subgraph Attestation["4. Cryptographic Proof & Settlement"]
        Merkle["Merkle Tree Synthesis<br/>sha256(Leaf_Li + Leaf_Ni + Leaf_Co)"]
        Onchain["Polygon EIP-712 Master Signature<br/>x402 0.10 USDC Gasless Settlement"]
    end

    Li --> LiProc --> Master
    Ni --> NiProc --> Master
    Co --> CoProc --> Master
    Master --> Merkle --> Onchain

๐Ÿ‡ฆ๐Ÿ‡บ Australian Spodumene Lithium Pipeline (app/lithium_pipeline.py)

  • GIS Geofencing: Validates WA DMIRS MINEDEX tenement boundaries (e.g. Greenbushes M01/03, Pilgangoora M45/1256).

  • Stoichiometric Mass Balance: Enforces strict theoretical yield ratio ($7.5 \pm 0.8\text{t}$ Spodumene concentrate $\rightarrow$ $1.0\text{t}$ Battery-Grade LiOHยทHโ‚‚O).

  • Defenses: Defends against Trap 13 (Chinese transshipment relabeling) and Trap 14 (non-linear recovery exaggeration).

๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian Nickel MHP Pipeline (app/nickel_pipeline.py)

  • Concession Geofencing: Monitors Central Sulawesi (IMIP Morowali) and North Maluku (IWIP Weda Bay) mining polygons.

  • Fiscal Verification: Validates Ministry of Energy (ESDM) SIMBARA NTPN tax receipt codes and Bank Indonesia 30% forex export deposits (DHE BI).

  • EU CBAM & Carbon Duty: Detects captive coal power plant usage and flags European Carbon Border Adjustment liabilities.

๐Ÿ‡จ๐Ÿ‡ฉ DRC Cobalt Hydroxide Pipeline (app/cobalt_pipeline.py)

  • Artisanal Segregation (Trap 1): Blocks uncertified artisanal mining (ASM) co-mingling via Entreprise Gรฉnรฉrale du Cobalt (EGC) custody validation.

  • CEEC Security Seals: Cryptographically authenticates Centre d'Expertise (CEEC) tamper-proof barcode export seals.

  • ILO Human Rights Diligence: Enforces mandatory independent audits for ILO Convention 138 (Minimum Age) and 182 (Worst Forms of Child Labor).

๐Ÿ‡จ๐Ÿ‡ฑ Chilean Copper Cathode Pipeline (app/copper_pipeline.py)

  • Concession Geofencing: Monitors major porphyry operations (Codelco Chuquicamata, El Teniente, Andina, BHP Escondida, Antofagasta Los Pelambres, Cerro Verde).

  • Smelter Acid Balance (Trap 16): Validates sulfuric acid ($H_2SO_4$) reagent supply balance ($\le 5.0%$ deficit tolerance).

  • Grid & Purity Standard: Certifies ASTM B115 Grade 1 electrolytic cathode purity ($\ge 99.9935%$) for AI datacenter HVDC power grids and COCHILCO export clearances.

๐Ÿ‡ฒ๐Ÿ‡ฝ Mexican Silver Dorรฉ Pipeline (app/silver_pipeline.py)

  • Concession Geofencing: Monitors high-grade silver operations (Endeavour Silver Terronera, Fresnillo, Antamina, Uchucchacua, Los Pelambres).

  • N-Type TOPCon Solar Standard (Trap 16): Enforces ultra-pure $\ge 99.99%$ silver powder certification for next-gen solar PV metallization paste.

  • Security & LBMA Assurance: Defends against cartel-tainted artisanal extraction and validates LBMA Good Delivery refiner accreditation.


3. Interactive Web Observatory & Verification Simulator

The built-in browser UI (app/static/ko.html and app/static/index.html) provides a live 4-tab compliance cockpit:

Tab

Key Features

๐Ÿ”‹ NCM 811 Composite Master Passport

Real-time IRA 30D eligibility, FTA value progress bar, EU Battery Passport approval status, Carbon Footprint gauge, on-chain Merkle Root & EIP-712 JSON terminal

๐Ÿ‡ฆ๐Ÿ‡บ Australian Lithium Observatory

Hard-rock mine selection (Greenbushes, Pilgangoora, Mt Marion), ore feed vs LiOH yield calculation

๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian Nickel MHP Observatory

IMIP/IWIP concession verification, ESDM SIMBARA tax receipt verification, captive coal power toggle

๐Ÿ‡จ๐Ÿ‡ฉ DRC Cobalt Hydroxide Observatory

Kamoto KCC/Tenke concession check, CEEC barcode verification, ILO 138/182 child labor audit toggle

One-Click Real-World Scenario Presets

  • โœ… Clean Baseline (clean): Australia Greenbushes + Indonesia Clean IMIP + DRC Kamoto KCC $\rightarrow$ IRA Eligible ($3,750), EU Passport Approved, Low Carbon (51.5 kg COโ‚‚e/kWh).

  • โš ๏ธ FEOC Taint Trap (feoc): Injects 80% Chinese state ownership into DRC Cobalt $\rightarrow$ Entire battery pack disqualified under FEOC 25% threshold.

  • โš ๏ธ Captive Coal CBAM Trap (cbam): Injects captive coal power smelting in Indonesia $\rightarrow$ EU CBAM carbon tariff liabilities triggered.

  • โŒ Child Labor Trap (child): Injects uncertified artisanal pit ore in DRC $\rightarrow$ EU Battery Passport immediate rejection.

  • ๐Ÿšจ Trap 15 Tech Defense (trap15): Evaluates Chinese Mineral Resources Law extraterritorial licensing taint ($>50%$ SX tech dependency without MOFCOM clearance).

  • โšก Copper HVDC Grid Ready (copper): Codelco Chuquicamata copper cathode audit, $H_2SO_4$ acid balance, and ASTM B115 Grade 1 HVDC power grid certification.

  • โ˜€๏ธ Silver TOPCon Solar PV (silver): Endeavour Silver Terronera dorรฉ audit, LBMA Good Delivery, and N-Type TOPCon $\ge 99.99%$ solar paste verification.


๐Ÿค– Model Context Protocol (FastMCP) Tools

Integrates natively with Claude Desktop, Cursor, Gemini, and autonomous AI agents:

{
  "mcpServers": {
    "minerals-oracle-x402": {
      "command": "python",
      "args": ["-m", "app.mcp_stdio"],
      "env": {
        "ORACLE_API_KEY": "YOUR_AGENT_KEY"
      }
    }
  }
}

Supported MCP Tools:

  1. verify_composite_battery_passport: Evaluates end-to-end NCM EV battery packs and generates Master Merkle EIP-712 attestations.

  2. verify_lithium_origin: Verifies Australian hard-rock spodumene extraction and conversion.

  3. verify_nickel_origin: Verifies Indonesian laterite limonite HPAL MHP provenance and SIMBARA tax clearance.

  4. verify_cobalt_origin: Verifies DRC Katanga heterogenite cobalt hydroxide provenance, CEEC seals, and child labor audits.

  5. verify_copper_origin: Verifies Chilean/South American copper cathode provenance, COCHILCO quotas, H2SO4 acid balance, and ASTM B115 HVDC compliance.

  6. verify_silver_origin: Verifies Mexican/South American silver dorรฉ provenance, LBMA certification, N-Type TOPCon solar PV 99.99% purity, and cartel defense.

  7. verify_mineral_compliance: Legacy 7-pillar compliance audit engine for individual mineral lots.

  8. minerals_submit_agent_feedback: Zero-fee protocol feedback submission for autonomous agent evolution.


๐Ÿ’ณ Autonomous x402 Web3 Settlement on Polygon

All M2M API invocations support micro-payments in USDC on Polygon (Chain ID 137):

  • Composite Battery Master Verification: 0.10 USDC (PricingTier.STANDARD)

  • Dedicated Mineral Lot Verification: 0.05 USDC (PricingTier.LIGHT)

  • Polygon USDC Address: 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359

  • Treasury Recipient: 0x255F9991233f86B29dB847c8d5b8CB9915e80dCf

  • Agent Vault Fast-Path: Zero-latency verification via pre-funded X-Agent-Vault-Key headers.


๐Ÿš€ Quick Start & Local Execution

1. Clone & Install Dependencies

git clone https://github.com/nohosa001-pixel/minerals-oracle-x402.git
cd minerals-oracle-x402

python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate

pip install -e .

2. Run Tests (102 Automated Tests)

# Run with -s flag on Windows
pytest -s tests/

3. Launch Local Server & Web Observatory

uvicorn app.main:app --host 127.0.0.1 --port 8000 --reload

Navigate to:


๐Ÿ“œ Full Technical Specifications

For full mathematical formulations, threshold constants, legal citations, and EIP-712 type declarations, consult the Global Battery Minerals Compliance Specification v2.4.0.


๐Ÿ“„ License

MIT License. Copyright (c) 2026 Minerals Oracle x402 Project Contributors.

Available Tools

9 tools
get_compliance_statusA

Check current regulatory monitoring status across 10 jurisdictions and 12-trap defenses.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. The verb 'check' implies a read-only operation, but the description does not explicitly state that there are no side effects, nor does it mention any rate limits, data freshness, or other behavioral traits. It is an implied safe read, but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise and front-loaded with the verb and resource. It states the scope (10 jurisdictions, 12-trap defenses) without fluff, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should clarify what the agent will receive, but it does not. It only states the action and scope, not the return format or content. For a status-check tool, an agent needs to know if it gets a list, a summary, or a pass/fail. This is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides complete coverage (100%). The description does not need to explain parameter meaning since none exist. The baseline of 4 for no parameters is appropriate; the description adds no conflicting information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Check' with a specific resource ('current regulatory monitoring status') and scopes it to '10 jurisdictions and 12-trap defenses', making the tool's purpose clear. It distinguishes itself from siblings like verify_mineral_lot_compliance (specific lot) and list_trade_precedents (historical listings) by focusing on current status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. No exclusions, prerequisites, or conditions are mentioned. The description does not hint at what problem it solves relative to sibling tools, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_trade_precedentsA

Query international trade jurisprudence precedents embedded in the oracle: WTO DS592 (Indonesia Raw Materials), WTO DS431 (China Rare Earths), ICSID ARB/15/31 (Gabriel Resources), and US CIT Superior Wire (Origin Laundering).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Query' implies a read operation, and listing the embedded precedents gives content context, but the description does not disclose the return format, pagination, or any limitations, leaving the agent guessing at output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence that front-loads the verb and resource and packs the enumerated precedents efficiently. Each element earns its place, though listing four full case citations adds length without much extra decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 0-parameter list tool this is reasonably complete, but with no output schema and no annotations, the description should clarify what the returned data looks like (e.g., case summaries, citation lists, rulings). That gap leaves the agent uncertain about the call's result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema offers nothing to document. The description compensates by naming exactly what the tool returns access to (the four precedents), which is the meaningful semantic content an agent needs. Baseline 4 is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Query') and resource ('international trade jurisprudence precedents embedded in the oracle'), then enumerates the exact precedents available (WTO DS592, WTO DS431, ICSID ARB/15/31, US CIT Superior Wire). This clearly distinguishes it from the compliance-verification and feedback siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys its purpose and content scope, so an agent can infer it is for retrieving precedent case law, but it never explicitly states when to use it versus alternatives, nor does it name exclusions or routing conditions to sibling tools like verify_mineral_lot_compliance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

minerals_list_evolution_proposalsB

List active autonomous agent evolution proposals and improvement requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of proposals to fetch
mineral_focusNoOptional filter by mineral

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral context. It clearly implies a read-only list operation with no side effects, but it does not disclose what 'active' means, pagination behavior, error handling, or what fields are returned. For a simple list tool this is borderline adequate, but additional clarity would help.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It states the action and resource directly, though it could benefit from a brief mention of usage or parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two optional parameters and no output schema, the description is minimally sufficient but lacks details like the meaning of 'active', return format, or any filtering nuances. It does not actively mislead, but leaves room for interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters (limit and mineral_focus) with descriptions, so schema coverage is 100%. The tool description adds no extra meaning or context about how these parameters behave or interact, so it does not improve beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action (List) and resource (active autonomous agent evolution proposals and improvement requests), making it distinct from siblings like verify_mineral_lot_compliance or list_trade_precedents. It does not explicitly name alternatives, but the resource is specific enough to avoid confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus siblings. There is no mention of alternatives, prerequisites, or context where this tool is the right choice, leaving the agent to infer from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

minerals_submit_agent_feedbackB

Allows an autonomous AI agent or bot operator to submit an evolution proposal, mineral dataset addition request, regulatory edge case, or protocol improvement to continuously evolve the Minerals Oracle engine.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesSummary of proposed improvement or edge case
contentYesDetailed description, legal context, or observed issue
agent_idYesUnique identifier of the calling AI agent or operator (e.g. 'tesla-procure-agent-09')
caller_modelNoOptional underlying model (e.g. 'claude-3-5-sonnet', 'gemini-1.5-pro')
feedback_typeNoClassification categoryFEATURE_REQUEST
mineral_focusNoRelevant mineral commodityALL
contact_channelNoOptional agent webhook, ENS domain, or wallet address
proposed_solutionNoOptional suggested technical or architectural fix

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool submits feedback, but does not disclose side effects (e.g., whether submission persists, if it triggers review, idempotency, rate limits, or auth requirements). For a write operation with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the purpose and lists the main use cases. It is concise with no fluff, though it could be slightly shorter without losing meaning. It earns a 4 for efficient delivery.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters (3 required) and no output schema, the description provides a high-level purpose but does not mention expected return values, submission confirmation, or any side effects. The schema covers parameter details, and the description covers the intent, but for a submission tool with no annotations, one might expect more context on what happens after submission. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters, including enums with descriptions. The description mentions 'evolution proposal, mineral dataset addition request, regulatory edge case, or protocol improvement,' which loosely maps to the feedback_type enum but adds little beyond what the schema already states. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: an agent or operator submits evolution proposals, dataset additions, edge cases, or protocol improvements to evolve the Minerals Oracle engine. It uses a specific verb (submit) and resource (feedback to the engine), and the listed types distinguish it from sibling read/check tools like verify_mineral_lot_compliance or list_trade_precedents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for submitting improvement ideas, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. There is no mention of sibling tools like minerals_list_evolution_proposals (which likely lists existing proposals) or when not to submit. Usage context is clear enough, but no alternative routing is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_cobalt_originA

Verifies DRC Katanga heterogenite-to-cobalt hydroxide supply-chain provenance. Evaluates Katanga Copperbelt concession geofencing (Tenke Fungurume, Kamoto KCC, Mutanda, Metalkol), CEEC tamper-proof barcode seal, ASM co-mingling segregation & EGC custody (Trap 1), ILO 138/182 zero child labor due diligence, RMI RMAP smelter certification, stoichiometric mass balance (~23.5t ore to 1t hydroxide <= 2.5% loss), and US IRA FEOC 25% screening.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoCrude Cobalt Hydroxide
provinceNoLualaba
trace_idYesTraceability batch ID (e.g. COB-COD-2026-HYD01)
mine_typeNoLSM or ASMLSM
coordinatesYes[Lat, Lon] centroid
ceec_seal_idYesDRC CEEC barcode export seal ID
asm_comingledNoTrue if uncertified ASM ore co-mingled
refinery_nameYesRefinery name (e.g. Luilu Metallurgical Plant)
concession_nameYesConcession name (e.g. Kamoto Copper Company, Tenke Fungurume)
egc_custody_refNoEGC artisanal custody receipt (optional)
feoc_equity_pctNoCovered nation equity % (cap < 25%)
ore_grade_co_pctNoOre Co % (default 1.50%)
refinery_countryNoRefinery country codeCOD
rmi_rmap_smelter_idNoRMI RMAP audited smelter ID (optional)
hydroxide_grade_co_pctNoHydroxide Co % (default 30.0%)
zero_child_labor_audit_refNoILO 138/182 zero child labor audit reference
heterogenite_ore_input_tonsYesGross heterogenite ore input in metric tons
cobalt_hydroxide_output_tonsYesRefined crude hydroxide output in metric tons

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does so by disclosing the concrete evaluation logic: concession geofencing, CEEC barcode seal validation, ASM co-mingling segregation, ILO 138/182 checks, RMI RMAP certification, and mass-balance tolerance (<=2.5% loss). It does not, however, disclose failure modes, permissions, or what the result conveys, so it stops short of full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first clause, followed by a compact enumeration of checks. It is jargon-dense and one long sentence, which slightly hurts readability, but essentially every clause corresponds to a distinct validation the agent should expect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 18-parameter, no-output-schema tool, the description covers what is evaluated well but never indicates the return shape (pass/fail, findings, scores) or how a non-compliant lot is reported. Given there is no output schema, that outcome context is a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 89%, so the schema already documents the parameters (baseline 3). The description adds genuine semantic context by tying parameters to evaluation logic, e.g. geofencing maps to coordinates/concession, FEOC equity cap to feoc_equity_pct, and the ~23.5t:1t ratio to the ore/hydroxide mass-balance inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise verb and resource (verifies DRC Katanga heterogenite-to-cobalt hydroxide supply-chain provenance) and enumerates the exact domain checks performed. It is unmistakably distinct from the cobalt-adjacent siblings such as verify_lithium_origin, verify_nickel_origin, and verify_mineral_lot_compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the tight domain scoping (DRC Katanga cobalt hydroxide), so an agent can infer it is the cobalt-specific verifier. However, it never states when to prefer this over verify_mineral_lot_compliance or the other verify_* siblings, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_composite_battery_passportA

Evaluates end-to-end composite EV battery pack compliance and issues a Master Passport on Polygon. Orchestrates Australian Lithium, Indonesian Nickel, and DRC Cobalt streams; computes US IRA Section 30D critical mineral 50% FTA value-added ratio; enforces zero FEOC taint across all component streams; audits EU Battery Regulation 2023/1542 blended carbon footprint and CSDDD due diligence; and binds all proofs into a cryptographic Merkle Root EIP-712 Master Signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
cobalt_lotYesCobaltOriginVerifyRequest payload
nickel_lotYesNickelOriginVerifyRequest payload
lithium_lotYesLithiumOriginVerifyRequest payload
cell_chemistryNoCathode chemistry (NCM811, NCM622, NCM523)NCM811
battery_pack_idYesUnique battery pack serial (e.g. BATT-NCM811-2026-PACK01)
pack_capacity_kwhNoPack capacity in kWh

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose substantial behavior: it writes a Master Passport on Polygon (an on-chain write with implicit irreversibility), enforces 'zero FEOC taint', and cryptographically binds proofs into a Merkle Root EIP-712 signature. It omits auth/permission needs, cost, and failure modes, which is why it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and outcome are front-loaded in the first clause, followed by the compliance regimes it enforces. It is a dense single run-on sentence heavy with stacked jargon and semicolons, but every clause carries a distinct regulatory/technical fact, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity, multi-nested-object tool with no annotations and no output schema, the description covers the domain well: it names the regimes (IRA 30D, EU Battery Regulation 2023/1542, CSDDD), the outputs (Master Passport, Merkle Root EIP-712 signature), and the streams. It stops short of describing the return payload structure or error conditions, which an output-less tool could have benefited from.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters (including the nested origin-verify payloads and defaults); baseline is 3. The description only loosely maps to the three mineral lot parameters via 'Orchestrates Australian Lithium, Indonesian Nickel, and DRC Cobalt streams' and adds no format or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource ('Evaluates end-to-end composite EV battery pack compliance and issues a Master Passport on Polygon') and the keyword 'composite'/'end-to-end' clearly distinguishes it from the single-mineral siblings (verify_lithium_origin, verify_nickel_origin, verify_cobalt_origin). An agent can tell this is the aggregating multi-stream tool without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The text describes capabilities but never states when to choose this tool over verify_mineral_lot_compliance or the per-mineral verify tools, nor any prerequisite ordering (e.g. lots must be verified first). No exclusions or conditions are given, so the agent must infer routing from the word 'composite' alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_lithium_originB

Verifies Australian hard-rock Spodumene to Lithium Hydroxide supply-chain provenance. Evaluates WA MINEDEX GIS geofencing (Greenbushes, Pilgangoora, Mt Marion), stoichiometric mass balance (SC6.0 to LiOH <= 2.5% loss), and US IRA Section 30D FEOC 25% clean origin.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoLithium Hydroxide Monohydrate
trace_idYesTraceability lot ID (e.g., LIT-AU-2026-X091)
mine_nameYesHard-rock mine name (e.g. Greenbushes, Pilgangoora)
coordinatesYes[Lat, Lon] centroid
mine_countryNoAU
refinery_countryNoRefinery country code (AU, US, CHN)AU
refinery_facilityYesRefining facility name (e.g. Kwinana Plant)
minedex_tenement_idNoWA MINEDEX permit ID (optional)
spodumene_grade_pctNoLi2O grade % (default 6.0%)
refined_output_tonnageYesFinished product output in metric tons
refinery_feoc_equity_pctNoCovered nation equity % (cap < 25%)
spodumene_tonnage_extractedYesGross spodumene input in metric tons

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It does add real value by revealing the evaluation logic and thresholds (SC6.0 to LiOH <= 2.5% loss, FEOC cap < 25% clean origin), but it says nothing about read-vs-write behavior, what a failure result looks like, or whether a verification is recorded or stateful. Some behavioral substance, significant gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the verification target before the evaluation criteria. No filler, though the stacked acronyms (SC6.0, IRA 30D, FEOC) compress a lot into one line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, 6-required tool with no annotations and no output schema, the description covers the domain well but omits what the verification returns, how pass/fail is signaled, and when the optional MINEDEX ID is needed. An agent would still need to probe the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so the schema already documents nearly all parameters with examples and defaults. The description adds no parameter-level syntax or format detail beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (verifies) and a tightly scoped resource (Australian hard-rock spodumene to lithium hydroxide provenance), then enumerates the three concrete checks it runs (MINEDEX geofencing, stoichiometric mass balance, IRA 30D FEOC origin). This scope clearly separates it from siblings like verify_nickel_origin, verify_cobalt_origin, and verify_mineral_lot_compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what is evaluated but never states when to reach for this tool versus the sibling verification tools, nor any prerequisites (e.g., that MINEDEX tenement ID is optional, or that AU-origin lots are required). Usage must be inferred entirely from the domain naming.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_mineral_lot_complianceA

Fetches raw algorithmic indices derived from open satellite/market data and computes 12-trap regulatory rule heuristics for a critical mineral consignment. DO NOT use as an official regulatory legal filing or physical assay certification without independent manual verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
lot_idYesUnique lot/batch identifier
mineral_typeYes
source_countryYes
declared_purity_pctNoDeclared assay purity percentage
net_weight_metric_tonsYesNet weight in metric tons

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It transparently notes that outputs are algorithmic heuristics derived from satellite/market data and explicitly cautions against treating them as official or certified. This goes beyond a bare description, though it does not detail side effects, errors, or rate limits, which would be expected in an ideal case.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences: the first states the purpose, the second delivers a critical caveat. Every word earns its place, and the most important information (purpose) is front-loaded. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12-trap rules, five parameters, no output schema), the description is relatively brief. It explains what it computes but does not describe the output format, how results should be interpreted, or how the parameters interact. The caveat is helpful but does not compensate for the lack of return-value guidance, which would be essential for an agent to correctly use the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 60% (three parameters have descriptions, two have enums without descriptions). The description adds context about the purpose of the parameters ('open satellite/market data' and 'regulatory rule heuristics') but does not provide per-parameter semantics beyond what the schema already offers. This meets the baseline but does not elevate it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('fetches' and 'computes') applied to a defined resource ('raw algorithmic indices' and '12-trap regulatory rule heuristics'), making the tool's purpose unambiguous. It also implies a distinction from siblings like get_compliance_status and list_trade_precedents by focusing on algorithmic heuristics rather than status or precedents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a critical usage warning ('DO NOT use as an official regulatory legal filing or physical assay certification without independent manual verification'), which is useful, but it does not explicitly state when to prefer this tool over its siblings (e.g., 'use for screening, not for final decisions'). The caveat implies a secondary role but lacks direct guidance on selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_nickel_originA

Verifies Indonesian laterite Limonite-to-Nickel MHP supply-chain provenance. Evaluates Sulawesi/Halmahera concession geofencing (IMIP Morowali, IWIP Weda Bay), SIMBARA NTPN & DHE BI tax validation, HPAL stoichiometric mass balance (~31t Limonite to 1t MHP <= 2.5% loss), Captive Coal EU CBAM screening, and US IRA 30D FEOC 25% compliance.

ParametersJSON Schema
NameRequiredDescriptionDefault
productNoNickel Mixed Hydroxide Precipitate (MHP)
trace_idYesTraceability batch ID (e.g. NIC-IDN-2026-MHP01)
coordinatesYes[Lat, Lon] centroid
simbara_ntpnYesIndonesia ESDM SIMBARA NTPN tax receipt code
concession_nameYesConcession name (e.g. Morowali Concession, Weda Bay)
feoc_equity_pctNoCovered nation equity % (cap < 25%)
mhp_output_tonsYesRefined MHP output in metric tons
mhp_grade_ni_pctNoMHP Ni % (default 38.5%)
ore_grade_ni_pctNoLimonite ore Ni % (default 1.35%)
captive_coal_powerNoTrue if refinery runs on captive coal
hpal_refinery_nameYesHPAL refinery name (e.g. QMB New Energy)
dhe_forex_deposit_refNoBank Indonesia 30% retention receipt (optional)
limonite_ore_input_tonsYesGross limonite ore input in metric tons

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose meaningful behavioral context: the evaluated jurisdictions (IMIP Morowali, IWIP Weda Bay), the regulatory thresholds applied (25% FEOC cap, 2.5% mass-balance loss), and CBAM screening. However, it never states whether the operation is read-only, what a pass/fail result looks like, or how non-compliant inputs are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single densely packed sentence that front-loads the resource and then lists the five evaluation axes in parallel structure. Every clause corresponds to a distinct check, though the heavy jargon density makes it less scannable than a bulleted breakdown would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter compliance tool with no annotations and no output schema, the description covers the evaluation scope well but omits the return shape and outcome semantics, which the agent must infer entirely. Adequate but with a clear gap given zero structured support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92%, so baseline is 3, but the description adds real interpretive value beyond the schema by defining the ~31t Limonite to 1t MHP stoichiometric ratio and the 2.5% loss tolerance that govern limonite_ore_input_tons/mhp_output_tons, and the FEOC 25% equity ceiling that governs feoc_equity_pct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (verifies) and a precisely scoped resource (Indonesian laterite Limonite-to-Nickel MHP supply-chain provenance), then enumerates the exact checks performed. This clearly separates it from siblings like verify_lithium_origin, verify_cobalt_origin, and verify_composite_battery_passport without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the nickel/MHP specificity tells an agent to pick this over the lithium or cobalt verifiers. There is no explicit when-to-use statement, no mention of prerequisites (e.g. that a SIMBARA NTPN and HPAL refinery must be known first), and no when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.5
    • Addedverify_cobalt_origin
    • Addedverify_composite_battery_passport
    • Addedverify_lithium_origin
    • Addedverify_nickel_origin
  2. 8 tool updatesv1.0.4
    • Removedcalculate_urban_mining_value
    • Removedget_arbitrage_spreads
    • Addedget_compliance_status
    • Removedget_mineral_prices
    • Addedlist_trade_precedents
    • Addedminerals_list_evolution_proposals
    • Addedminerals_submit_agent_feedback
    • Addedverify_mineral_lot_compliance
  3. 2 tool updatesv1.0.2
    • Changedcalculate_urban_mining_value5 fields changed
      • changedInput schema / properties / quantity_metric_tons / description
        Previous value: -"Total metric tons of feedstock batch to process"New value: +"Total metric tons of feedstock batch to process (default: 1.0)"
      • addedInput schema / properties / scrap_category / default
        Added value: +"E_WASTE_HIGH_GRADE_PCB"
      • changedInput schema / properties / scrap_category / description
        Previous value: -"Feedstock category of the recyclable scrap batch"New value: +"Feedstock category of the recyclable scrap batch (default: 'E_WASTE_HIGH_GRADE_PCB')"
      • changedInput schema / properties / scrap_category / enum
        Previous value: -[
        -  "EV_BATTERY_BLACK_MASS",
        -  "AUTO_CATALYST_CERAMIC",
        -  "E_WASTE_HIGH_GRADE_PCB",
        -  "WIND_EV_PERMANENT_MAGNETS"
        -]New value: +[
        +  "E_WASTE_HIGH_GRADE_PCB",
        +  "EV_BATTERY_BLACK_MASS",
        +  "AUTO_CATALYST_CERAMIC",
        +  "WIND_EV_PERMANENT_MAGNETS"
        +]
      • addedInput schema / properties / target_yield_currency
        Added value: +{
        +  "default": "USDC",
        +  "description": "Settlement currency (default: 'USDC')",
        +  "type": "string"
        +}
    • Changedget_mineral_prices1 field changed
      • addedInput schema / properties / mineral_type
        Added value: +{
        +  "default": "Neodymium",
        +  "description": "Specific mineral name or symbol preset (default: 'Neodymium')",
        +  "enum": [
        +    "Neodymium",
        +    "Lithium",
        +    "Dysprosium",
        +    "Copper",
        +    "Silver",
        +    "Platinum",
        +    "ALL"
        +  ],
        +  "type": "string"
        +}
  4. 3 tool updatesv1.0.0
    • First observedcalculate_urban_mining_value
    • First observedget_arbitrage_spreads
    • First observedget_mineral_prices

TDQS

A3.6/5.0

Scored across 9 tools

Disambiguation4/5

The three verify_lithium/nickel/cobalt_origin tools are cleanly separated by mineral, and verify_composite_battery_passport is a higher-level orchestrator. However, verify_mineral_lot_compliance overlaps meaningfully with the individual origin verifiers and the composite passport, creating potential misselection for a generic consignment check.

Naming Consistency3/5

Most tools follow a readable verb_noun pattern (verify_*, get_*, list_*, submit_*), but two tools carry an inconsistent 'minerals_' namespace prefix while the rest have none. The mix of conventions is still decipherable but not uniform.

Tool Count5/5

Nine tools is well-scoped for a multi-mineral compliance oracle, with each tool covering a distinct stream or support function. No filler or redundancy in count terms.

Completeness4/5

The surface covers per-mineral origin verification, a composite passport, compliance monitoring, trade precedents, and a feedback loop, which is solid lifecycle coverage. Gaps exist around generic minerals beyond Li/Ni/Co and no explicit update/refresh operation for existing passports.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers