EUDR Compliance & TRACES-NT Agent
Integrates with European Commission services such as VIES for real-time VAT verification and TRACES-NT for official EUDR Due Diligence Statement generation.
Allows EUDR compliance workflows to connect with SAP ERP and customs systems, enabiling submission of compliance data and Due Diligence Statements through the platform's API.
š² EUDRAgent.com | Autonomous EUDR Compliance & TRACES-NT DDS Platform
EUDRAgent is an enterprise-grade autonomous compliance automation and Due Diligence Statement (DDS) generation engine for the European Union Deforestation Regulation (Regulation (EU) 2023/1115).
š½ļø 4-Step Instant Demo (2s Audit)
![]()
š” Why EUDR Agent? (Instant Problem Solver)
ā The Problem | ā | ā The Solution |
4% Revenue Fines & Blocked Cargo | ā | 0% Fine Guarantee & Verified Clearance |
Weeks of Manual Satellite GIS Checks | ā | 2-Second Multi-Satellite Radar Scan |
Rejected TRACES-NT XML Customs Filings | ā | 1-Click Validated Official TRACES-NT XML |
Related MCP server: Agent Audit Trail MCP Server
š§ The 4-Step Flow: 1. UPLOAD ā 2. SCAN ā 3. VERIFY ā 4. EXPORT
š Live Cloud Portals & Access Points
Service Portal | URL / Route | Description |
š SaaS Official Landing Page | Interactive 4-country satellite radar sandbox & transparent pricing | |
š„ļø Enterprise Operator Console | 4ha polygon self-healing, multi-satellite analysis, & TRACES-NT DDS generation | |
š¾ Supplier Pre-Clearance Portal | Mobile-friendly self-assessment for overseas smallholders & cooperatives | |
š Interactive API Documentation | Swagger UI for ERP, SAP, and customs system integration | |
𩺠System Health Endpoint | EUDR cut-off baseline date & cluster health status | |
š¤ Model Context Protocol (MCP) | JSON-RPC 2.0 MCP endpoint for Claude, Cursor & AI Agents | |
š LLM Discovery Spec | LLM crawler & agent standard summary |
š¤ Model Context Protocol (MCP) Integration (Glama.ai Ready)
EUDRAgent includes a native Model Context Protocol (MCP v2024-11-05) server, allowing AI assistants like Claude Desktop, Cursor, Antigravity, and Zed to autonomously perform EUDR compliance audits.
Install via Smithery CLI
To automatically install and configure for Claude Desktop:
npx -y @smithery/cli install nohosa001/eudr-compliance-agent --client claudeQuick Setup for Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"eudr-compliance": {
"command": "python",
"args": [
"/path/to/eudr-compliance-agent/mcp_server_stdio.py"
]
}
}
}Remote MCP Server Setup (HTTP Transport)
{
"mcpServers": {
"eudr-compliance-cloud": {
"url": "https://eudragent.com/api/v1/mcp"
}
}
}9 Registered Autonomous Agent Tools
Tool Name | Purpose |
| Validates GIS coordinates, WGS84 bounds, and polygon 4.0ha threshold |
| Radar & optical satellite canopy loss analysis against 2020-12-31 baseline |
| Generates Sentinel-2 NDVI canopy density SVG radar visualization |
| Real-time EU Commission VIES VAT cross-border reverse charge check |
| Compiles official TRACES-NT XML Due Diligence Statement declaration |
| SHA-256 tamper-evident cryptographic chain audit verification |
| Automated budget estimation based on plot volume and resolution |
| On-chain USDC payment order with budget cap safety guardrails |
| Validates on-chain tx_hash and provisions live Pro API Key |
šļø Core Architecture & The 4 EUDR Pillars
EUDR Supply Chain Payload (JSON / CSV / GeoJSON / Shapefile)
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 1. Geodesic Spatial & Topology Engine (SpatialValidator) ā
ā - Strict Article 9(1)(d) 4-Hectare Rule Enforcement ā
ā - Sub-second WGS84 Geodesic Ellipsoidal Area Calculation (GRS80/WGS84)ā
ā - Autonomous Polygon Self-Healing (Self-Intersection & Spike Repair) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 2. Multi-Constellation Satellite Radar (DeforestationAnalyzer) ā
ā - Strict Cut-off Baseline: 31 December 2020 ā
ā - Copernicus Sentinel-2 (NDVI 10m Multi-Spectral Monitoring) ā
ā - Hansen Global Forest Change (GFC) Annual Loss Detection ā
ā - JRC Global Forest Cover & Canopy Density Triangulation ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 3. Legal Document & Risk Benchmarking Auditor (LegalAuditor) ā
ā - EU Country Risk Benchmarking (Low / Standard / High Risk Tiers) ā
ā - Origin Legality Verification (Land Titles, Harvest Permits) ā
ā - Free, Prior, and Informed Consent (FPIC) for Indigenous Peoples ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 4. Cryptographic TRACES-NT DDS Statement Generator (DDSGenerator) ā
ā - EU Customs Direct B2G Submission Payload Packaging ā
ā - HMAC-SHA256 Cryptographic Digital Signature & Merkle Audit Trail ā
ā - Article 31 (5-Year Record Retention) Immutable Evidence Bundle ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāš Quick Start Guide (Local Development)
1. Installation
# Clone the repository
git clone https://github.com/nohosa001-pixel/eudr-compliance-agent.git
cd eudr-compliance-agent
# Create and activate virtual environment
python -m venv .venv
.\.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux / macOS
# Install dependencies
pip install -r requirements.txt2. Run Local Development Server
uvicorn app.main:app --reload --port 8000Open your browser at http://localhost:8000 to view the SaaS Landing Page or http://localhost:8000/dashboard for the Operator Console.
3. Run Test Suite
pytest -v tests/Runs the full suite of 75 automated tests (Spatial validation, satellite loss detection, legal auditing, PostGIS integration, and API security).
š Programmatic API & ERP Integration
1. Generate SaaS API Key
curl -X POST "http://localhost:8000/api/v1/auth/api-keys" \
-H "Content-Type: application/json" \
-d '{
"company_name": "Global Timber & Coffee Trading Ltd",
"contact_email": "compliance@company.com",
"tier": "PRO"
}'2. Submit Compliance Due Diligence Evaluation
curl -X POST "http://localhost:8000/api/v1/eudr/evaluate" \
-H "Content-Type: application/json" \
-H "X-API-Key: eudr_live_YOUR_KEY_HERE" \
-d '{
"operator_id": "VN-EXP-COFFEE-8821",
"operator_name": "Highland Agri Export Ltd",
"commodity": "COFFEE",
"hs_code": "0901.11.00",
"product_description": "Arabica Green Coffee Beans Premium Grade",
"net_mass_kg": 24000.0,
"plots": [
{
"plot_id": "VN-LAMDONG-001",
"country_code": "VN",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[108.4380, 11.9400],
[108.4420, 11.9400],
[108.4420, 11.9435],
[108.4380, 11.9435],
[108.4380, 11.9400]
]
]
},
"declared_area_ha": 17.5,
"production_date_start": "2023-10-01",
"production_date_end": "2023-11-15",
"producer_name": "Da Lat Arabica Cooperative"
}
],
"documents": [
{
"document_type": "LAND_TITLE",
"document_id": "LURC-VN-2018-990",
"country_code": "VN",
"issuing_authority": "Lam Dong Department of Natural Resources",
"issue_date": "2018-05-12",
"expiry_date": "2038-05-12",
"plot_ids": ["VN-LAMDONG-001"]
}
]
}'āļø Production Cloud Deployment
1. Deploy to Google Cloud Run (One-Click)
.\deploy_gcp.ps1Builds the container and deploys to Google Cloud Run in asia-northeast3 (Seoul) with auto-scaling, HTTPS, and custom domain mapping.
2. Deploy via Docker Compose & Nginx SSL
# Copy and configure environment variables
cp .env.production.example .env.production
nano .env.production
# Execute deployment script
chmod +x deploy.sh
./deploy.shš Regulated Annex I Commodities
EUDRAgent provides automatic classification and compliance verification for all 7 Annex I commodity categories:
ā Coffee (HS Chapter 0901)
š« Cocoa (HS Chapter 1801ā1806)
š“ Oil Palm (HS Chapter 1511, 1207, 2306, 2905, 3823)
šŖµ Wood & Timber (HS Chapter 4401ā4421, 4701ā4707, 4801ā4823, 9401, 9403)
š± Soya (HS Chapter 1201, 1208, 1507, 2304)
š² Rubber (HS Chapter 4001, 4005, 4006, 4007, 4008, 4011, 4012)
š„© Cattle / Beef & Leather (HS Chapter 0102, 0201, 0202, 4101, 4104, 4107)
āļø Legal & Regulatory Disclaimer
This software is designed to assist operators and traders in complying with their obligations under Regulation (EU) 2023/1115. Operators remain legally responsible for the final submission of Due Diligence Statements to EU competent authorities via TRACES-NT.
š License
Released under the MIT License. Copyright © 2026 EUDRAgent.com. All rights reserved.
Available Tools
12 toolseudr_check_deforestationB
Performs satellite radar triangulation and canopy loss detection against the EUDR cut-off date of 31 December 2020.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_id | Yes | Identifier of the plot being audited. | |
| coordinates | Yes | WGS84 coordinates of the plot or centroid. | |
| cutoff_date | No | Regulatory baseline cut-off date (EUDR mandatory: 2020-12-31). | 2020-12-31 |
| country_code | Yes | ISO 3166-1 alpha-2 country code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure but only describes the method, not whether the operation is read-only, side effects, or response behavior. An agent cannot determine if this check call is safe and what it returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loading the core action and deadline. It is efficiently written and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all parameter meanings and the description gives the core function, but with no output schema and no annotation coverage, return values and behavioral details are missing. This makes the definition adequate but with clear gaps for an agent deciding how to invoke and interpret the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the baseline is 3. The description adds some regulatory context for cutoff_date, but the schema already documents the default value, so the added value beyond the schema is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('performs satellite radar triangulation and canopy loss detection') and the target regulatory deadline ('EUDR cut-off date of 31 December 2020'), so an agent can infer what the tool does. It doesn't explicitly contrast with siblings like eudr_verify_plot, so differentiation relies mostly on the name and method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use the tool, but there is no explicit guidance on context, prerequisites, or alternatives. It doesn't mention that eudr_verify_plot might be a broader verification option or when to prefer this specific deforestation check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_confirm_paymentB
Validates on-chain transaction hash for a payment order and issues the activated Pro API Key.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | On-chain transaction hash confirming the USDC transfer. | |
| order_id | Yes | Payment order ID (e.g. 'ORD-XXXXXXXXXX'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only states the action and result, but omits side effects (e.g., activation is likely irreversible), prerequisites (e.g., order status), and failure behavior (e.g., what happens if the hash is invalid). For a payment confirmation that issues a key, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and outcome with no unnecessary words. It is concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not indicate what the tool returns (e.g., the API key, a confirmation object, or an error). It also lacks prerequisites and error conditions. For a tool that activates a key, the agent needs to know the response shape and failure modes to handle results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the input schema (100% coverage), so the schema already provides clear meaning. The description does not add additional format or syntax details beyond what is in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('validates'), the resource (on-chain transaction hash for a payment order), and the outcome (issues the activated Pro API Key). It also distinguishes itself from the sibling 'eudr_create_payment_order' by focusing on confirmation rather than creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: it likely follows 'eudr_create_payment_order' and confirms payment. However, the description does not explicitly state when to use it vs alternatives, nor does it mention any exclusions or prerequisites (e.g., order must exist, payment must be completed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_create_payment_orderA
Creates an on-chain USDC payment order for SaaS plan subscription with budget guardrails. Returns deposit wallet address, amount, invoice number, and QR payload.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Blockchain network for USDC payment. | Base (Low Gas $0.01) |
| plan_tier | Yes | Subscription tier to purchase. | |
| vat_number | No | Optional EU VAT number. | |
| company_name | Yes | Legal company name. | |
| contact_email | Yes | Contact email for invoice delivery. | |
| billing_country | No | Country of tax registration. | |
| max_budget_usdc | No | Optional AI Agent safety budget cap. Raises error if order amount exceeds this ceiling. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It makes clear this is an order-creation action, mentions budget guardrails, and specifies exactly what the caller receives. It does not discuss auth or order expiration, but those are minor gaps for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences: the first front-loads what the tool does, and the second lists the return payload. There is no filler, redundancy, or buried detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All 7 parameters are covered by the schema, and the description compensates for the missing output schema by explicitly listing the returned fields. It does not describe the post-order confirmation flow, but that is outside the single tool's responsibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the input schema. The description adds high-level context such as USDC, subscription, and budget guardrails, but not parameter-specific detail ā which is acceptable given the schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it creates an on-chain USDC payment order for a SaaS plan subscription. It also names the key returned artifacts (deposit wallet address, amount, invoice number, QR payload), making it clearly distinguishable from siblings like eudr_confirm_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear ā this tool creates a payment order for a subscription ā but it does not explicitly say when not to use it or mention that eudr_confirm_payment is the natural follow-up. The usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_estimate_compliance_costA
Calculates estimated tier pricing and clearing fees in EUR for EUDR plot verification and TRACES-NT filing.
| Name | Required | Description | Default |
|---|---|---|---|
| num_plots | Yes | Number of production plots/farms to process. | |
| satellite_resolution | No | Satellite imagery resolution tier. | sentinel_10m |
| include_traces_submission | No | Whether automated TRACES-NT B2G XML dispatch is requested. |
TDQS
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. The verb 'Calculates estimated' suggests a non-mutating, read-only estimation operation, but the description does not explicitly say that no actual payment, filing, or verification is performed. It is adequate but leaves side-effect behavior implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant words. It leads with the action, specifies the output currency and fee types, and names the relevant EUDR context. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should ideally clarify what the tool returns, such as a breakdown or a single estimated amount. It does state the currency (EUR) and cost categories, which is helpful, but it does not explain the return shape or how the estimation maps to the optional parameters. The tool is simple, so this is a minor gap rather than a critical one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the input schema. The description adds domain context ('tier pricing' and 'TRACES-NT filing') that loosely maps to satellite_resolution and include_traces_submission, but it does not add meaningful per-parameter detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Calculates'), a concrete deliverable ('estimated tier pricing and clearing fees in EUR'), and the domain context ('EUDR plot verification and TRACES-NT filing'). This makes the tool's function immediately clear and distinct from the sibling tools, none of which are cost-estimation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when an EUDR compliance cost estimate is needed, but it does not explicitly state when to use it versus alternatives, nor does it mention any exclusions or prerequisites. The usage context is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_export_traces_xmlA
Generates European Commission TRACES-NT XML (XSD v2.4 compliant) document with cryptographic digital signature for official EU customs filing under Regulation (EU) 2023/1115.
| Name | Required | Description | Default |
|---|---|---|---|
| plots | Yes | List of certified production plots with plot_id, country_code, area_hectares, and geometry. | |
| hs_code | Yes | Harmonized System 6-digit tariff code. | |
| commodity | No | Commodity description (e.g. Cocoa, Coffee, Timber). | |
| net_mass_kg | Yes | Consignment net weight in kilograms. | |
| operator_eori | Yes | Operator EORI number (e.g. 'NL123456789000'). | |
| operator_name | Yes | Name of EU importing operator. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses the XML format, XSD version, digital signature, and regulatory context. However, it does not specify what the tool returns or saves, whether the signature is automatically applied, or whether certificate/key configuration is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with no filler. It front-loads the core action ('Generates') and packs relevant compliance and signature details into one well-structured clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool that generates an officially signed XML document, yet there is no output schema and the description does not clarify the output channel (file path, raw XML string, download URL), signing prerequisites, or failure behavior. Given the regulatory and cryptographic complexity, the description should provide more operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and their meanings. The tool-level description adds no additional per-parameter detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generates') and a precise resource ('European Commission TRACES-NT XML ... document'). It adds distinguishing details like XSD v2.4 compliance, cryptographic digital signature, and EU customs filing, which separates it from sibling generation tools such as eudr_generate_dds and eudr_generate_customs_certificate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for official EU customs filing under Regulation (EU) 2023/1115' provides clear context for when this tool should be used. It does not explicitly name alternatives or exclusion conditions, so it stops short of a 5, but the intended use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_generate_customs_certificateB
Generates official EU Single Window Environment for Customs (EU SWE-C) Green Lane Clearance Certificate HTML with verification QR code and official seals.
| Name | Required | Description | Default |
|---|---|---|---|
| hs_code | Yes | Customs tariff HS code. | |
| net_mass_kg | Yes | Declared net mass in kilograms. | |
| plots_count | No | Total number of verified plots. | |
| operator_eori | Yes | Operator EORI number. | |
| operator_name | Yes | Name of authorized operator. | |
| total_area_ha | No | Total surface area in hectares. | |
| commodity_desc | No | Commercial commodity description. | |
| origin_country | No | ISO 3166-1 alpha-2 origin country code. | XX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only reveals the output artifact (HTML with QR code and seals). It does not disclose whether generating the certificate mutates state, requires external official EU systems, has legal implications, or fails on invalid/unverified inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the artifact name and key output features. No filler or repetition beyond the word 'official,' which is not significantly wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description names the output format and key visual elements, which is useful given there is no output schema. However, for an 8-parameter tool with no annotations and a potentially consequential official document, it lacks prerequisites, side-effect disclosure, and any indication of what the agent should do after generation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains every parameter. The description adds no parameter-level meaning, but it doesn't need to; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Generates') applied to a clearly named artifact: the EU SWE-C Green Lane Clearance Certificate HTML, including QR code and seals. This is enough to distinguish it from sibling generation tools like eudr_generate_dds or eudr_export_traces_xml.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, nor about prerequisites such as verified plot data or an existing compliance check. The description only names what it does, leaving the agent to infer usage context from the sibling names and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_generate_ddsB
Generates an EU TRACES-NT compliant Due Diligence Statement (DDS) XML package with official EUDR reference ID.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_ids | Yes | List of certified plot IDs included in this due diligence batch. | |
| commodity | Yes | Regulated commodity. | |
| operator_vat | Yes | Operator EU VAT / EORI number. | |
| operator_name | Yes | Legal name of the EU importing operator. | |
| total_net_mass_kg | Yes | Total shipment net mass in kilograms. |
TDQS
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. It states the output is an XML package and mentions EUDR-compliance, and 'generates' implies a creation operation. However, it does not disclose side effects (e.g., whether it stores the document, submits it to TRACES-NT, or merely composes the file), rate limits, or what the package contains besides a reference ID. Acceptable but gappy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clean sentence with no filler, front-loading the artifact name and compliance target. It earns its place, though it could benefit from a second sentence on behavior or use context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generation tool with 5 required params and no output schema or annotations, the description is thin. It tells the agent the artifact and compliance framework, but not what the XML package is used for, how it relates to the sibling export tool, or what the agent can expect in return. The required params are all self-describing, so this is a minimum-viable definition rather than a complete one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter has a clear description, so the schema already carries the param meaning. The tool description adds 'EU TRACES-NT compliant' and 'official EUDR reference ID' context, which hints at why the parameters matter, but it does not add per-parameter semantic meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generates'), identifies the specific artifact ('EU TRACES-NT compliant Due Diligence Statement (DDS) XML package'), and provides a distinguishing detail ('official EUDR reference ID'). It is clear about the resource being produced. However, it doesn't explicitly differentiate from the sibling tool eudr_export_traces_xml, which sounds similar in function, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when an operator needs a TRACES-NT compliant DDS document with an EUDR reference ID. This gives a clear context but does not state when to prefer this over eudr_export_traces_xml or any other sibling, nor does it list exclusion conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_render_satellite_mapC
Generates visual multi-spectral satellite imagery metadata and NDVI canopy density radar visualization for an EUDR plot.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year of observation (2020 regulatory cut-off baseline vs 2026 present). | |
| layer | No | Visualization layer type. | ndvi_vegetation |
| plot_id | Yes | Target plot identifier. | |
| coordinates | Yes | WGS84 coordinates of the plot. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says the tool generates output; it does not disclose whether any data is written, whether external services are called, whether results are cached, or what the response looks like. For an unannotated tool, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and front-loads the action. It is concise, though the combined phrase 'visual multi-spectral satellite imagery metadata and NDVI canopy density radar visualization' could be restructured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all parameter semantics and the description conveys the core purpose, so an agent can probably select and invoke the tool correctly. However, there is no output schema and the description leaves the return format vagueāwhether it returns an image, a URL, metadata, or some combination is not clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 four parameters including enums and defaults. The description adds only loose thematic context around satellite imagery and NDVI, without meaningful parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Generates') and resource ('satellite imagery metadata and NDVI canopy density radar visualization') tied to an EUDR plot. It is distinct from the sibling tools, which are clearly not render/visualization tools. However, the phrase 'visual multi-spectral satellite imagery metadata and NDVI canopy density radar visualization' is awkward and leaves the exact deliverable somewhat ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to prefer this tool over alternatives such as eudr_check_deforestation or eudr_verify_plot. It does not state prerequisites, exclusions, or conditions under which a different EUDR tool should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_send_telegram_alertB
Dispatches instant real-time compliance alert, post-2020 deforestation warning, or TRACES-NT clearance notice to Telegram bot.
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Custom message text or alert detail. | |
| plot_id | No | Target plot ID if applicable. | |
| alert_type | Yes | Category of real-time alert. | |
| supplier_id | No | Supplier identifier. | |
| country_code | No | 2-letter origin country code. | XX |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the action (dispatch to Telegram) but omits side effects, error behavior, or any operational constraints. This is insufficient for a tool that performs an external notification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence, front-loaded with the action, no filler. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool, the lack of usage guidance and behavioral detail makes it incomplete for an agent to correctly decide when to invoke it and what to expect. The output schema absence also means the description should clarify return values, which it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no parameter semantics beyond what's already documented. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Dispatches' and names three distinct alert categories (compliance alert, post-2020 deforestation warning, TRACES-NT clearance notice), clearly distinguishing it from sibling tools like eudr_check_deforestation or eudr_generate_dds, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance is provided. The description implies it's for sending alerts to Telegram, but doesn't contrast with alternatives or state prerequisites, so an agent must infer when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_verify_audit_integrityB
Verifies SHA-256 cryptographic chain of custody and tamper-evidence for an EUDR compliance audit bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| audit_payload | Yes | Audit record dictionary containing reference_id, plots, timestamp, and signature. | |
| expected_hash | Yes | Cryptographic SHA-256 hash to verify against. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It does convey that the tool performs a cryptographic tamper-evidence check, which implies read-only verification and a pass/fail outcome. However, it does not specify return format, failure behavior, or whether a mismatch raises an error, leaving the behavioral profile incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the verb, algorithm, object, and purpose efficiently, making every word count.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with fully covered schema, the core is present, but the absence of usage guidance and an output schema leaves the agent uncertain about expected results and when to select this tool. The description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents both parameters. The description adds only general cryptographic context rather than new meaning about parameter formats, constraints, or relationships. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Verifies' and names the exact resource: SHA-256 chain-of-custody/tamper-evidence for an EUDR audit bundle. It is clear and distinct from plot-level or payment siblings, though it does not explicitly call out sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as eudr_verify_plot or eudr_check_deforestation. Usage context is only implied by the verification verb; there are no when-to-use, when-not-to-use, or exclusion statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_verify_plotA
Validates GIS coordinates and polygon boundaries against EUDR (EU 2023/1115) Art. 9 standards. Auto-heals inverted coordinates and self-intersecting polygons.
| Name | Required | Description | Default |
|---|---|---|---|
| plot_id | Yes | Unique identifier for the production plot or farm. | |
| commodity | Yes | EUDR regulated commodity produced on this plot. | |
| coordinates | Yes | Coordinates in WGS84 format. Either [longitude, latitude] for point, or [[lng, lat], [lng, lat], ...] for polygon boundary. | |
| country_code | Yes | ISO 3166-1 alpha-2 country code of plot origin (e.g. 'ID', 'BR', 'CI', 'GH', 'VN'). | |
| area_hectares | No | Plot surface area in hectares. Plots >= 4.0 hectares strictly require polygon boundaries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It genuinely discloses a non-obvious trait ā auto-healing inverted coordinates and self-intersecting polygons ā which tells the agent the tool corrects rather than merely rejects malformed input. But it does not disclose what happens when healing fails, whether validation persists or mutates stored plot data, or what the success/failure outcome looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler. The core purpose is front-loaded in the first sentence, and the second sentence adds a distinct behavioral fact (auto-healing). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with 4 required fields, an agent can invoke it correctly from the schema alone. But since there is no output schema and no annotations, the description should compensate by explaining return semantics and side effects; it describes neither what the validation result looks like (pass/fail object, healed coordinates?) nor whether the tool mutates records. The core behavior is covered, but these gaps matter at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds marginal value beyond the schema: the auto-heal note tells the agent that the coordinates parameter tolerates inverted [lat, lng] ordering, and the Art. 9 reference contextualizes why geometry matters. This is not enough to raise the score above the baseline, but there are no undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Validates'), a concrete resource ('GIS coordinates and polygon boundaries'), and the governing standard ('EUDR (EU 2023/1115) Art. 9'). This distinguishes it from siblings like eudr_check_deforestation (deforestation assessment) and eudr_verify_audit_integrity (audit integrity), and the second sentence clarifies distinct validation behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through the validation framing ā an agent can infer this is the geometry-compliance step in an EUDR workflow. However, the description never explicitly states when to use it versus alternatives, offers no exclusions, and does not route to any of the 11 siblings (e.g., 'for deforestation history, use eudr_check_deforestation').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
eudr_verify_vies_vatB
Validates European Union B2B cross-border VAT numbers in real-time via the official EU Commission VIES engine.
| Name | Required | Description | Default |
|---|---|---|---|
| vat_number | Yes | National VAT registration number without the country prefix. | |
| country_code | Yes | EU Member State 2-letter code (e.g. 'FR', 'DE', 'IT', 'NL', 'BE', 'ES'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It states that validation is real-time and via the VIES engine, but does not disclose what happens on invalid VAT numbers (e.g., returns a boolean, throws an error), whether the operation is read-only, or any network/rate-limit dependencies. This is a significant gap for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and resource. There is no redundant wording or unnecessary detail, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explain the return value or behavior on invalid input. For a simple validation tool, an agent would need to know whether the result is a boolean, a detailed report, or an error. The lack of this information leaves a critical gap, especially since no annotations provide safety or side-effect context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters (vat_number and country_code) with clear explanations and examples. The description does not add any parameter-level information beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Validates' and a specific resource 'European Union B2B cross-border VAT numbers' via the official EU Commission VIES engine. It clearly distinguishes this tool from siblings like eudr_verify_plot, which verify different entities, and no other sibling handles VAT. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for validating VAT numbers but does not explicitly state when to use it versus alternatives, nor does it mention any exclusions or contexts where it should not be used. Since no sibling tool directly competes, there is no need for alternative routing, but the description lacks guidance on prerequisites or typical use cases.
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. Dates show when Glama detected each change.
12 tool updates
v0.1.0- First observed
eudr_check_deforestation - First observed
eudr_confirm_payment - First observed
eudr_create_payment_order - First observed
eudr_estimate_compliance_cost - First observed
eudr_export_traces_xml - First observed
eudr_generate_customs_certificate - First observed
eudr_generate_dds - First observed
eudr_render_satellite_map - First observed
eudr_send_telegram_alert - First observed
eudr_verify_audit_integrity - First observed
eudr_verify_plot - First observed
eudr_verify_vies_vat
TDQS
Most tools target clearly distinct actions: verification, generation, payment, alerting, and VAT lookup. The three document-generation tools (TRACES XML, customs certificate, DDS) are related and could be confused, but their descriptions sufficiently differentiate the outputs.
All tools follow the same eudr_verb_noun snake_case pattern, making the set predictable and easy to navigate. Verb choices like verify, generate, create, and check are logical and consistent.
Twelve tools is well within the ideal range and each serves a distinct operational purpose in the EUDR compliance workflow. The inclusion of payment and alerting tools broadens the scope but does not make the set bloated.
The core EUDR compliance lifecycle is covered: plot verification, deforestation checks, due diligence statement generation, TRACES-NT XML export, customs certificate generation, and audit integrity verification. Minor gaps exist around submission/filing and payment cancellation or refunds, but these are not likely to break the main workflow.
Maintenance
Related MCP Connectors
Screen farm plots for EUDR deforestation risk with the official EU JRC maps.
EU compliance checks for AI agents: sanctions, company, VAT ID, IBAN, email. Pay per call.
AI-powered organic supply chain verification: certification, OFAC, FDA import checks.
Register every AI agent, log every action, prove it. EU AI Act compliance built in.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEU Crop Intelligence MCP Server ā Yield forecasts, weather analysis, and phenology models for 15 countries. AI agent-native, multi-source intelligence (NASA POWER, Eurostat, Open-Meteo).MIT
- AlicenseNot gradedqualityFmaintenanceProvides tamper-proof audit logging for AI agents using SHA-256 hash chains, integrity verification, and compliance reporting for the EU AI Act.1MIT
- AlicenseBqualityBmaintenanceAutonomous M2M compliance and trust APIs for AI agents (KYB, OFAC, VAT, Sanctions checking).5MIT
- AlicenseNot gradedqualityDmaintenanceEnables EU AI Act compliance for AI agent systems by providing risk classification, audit trails, gap analysis, and evidence package generation.65MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nohosa001-pixel/eudr-compliance-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server