ECMR MCP Server

May 19, 2026 · View on GitHub

License: MIT npm ECMR API

Connect Claude Code, OpenAI Agents, and other MCP clients to Cargoffer ECMR API for transport logistics automation.

What is this?

A Model Context Protocol (MCP) server that exposes Cargoffer ECMR API functionality as AI-accessible tools. Enables AI agents to:

  • Create and manage electronic consignment notes (eCMR)
  • Handle digital signatures
  • Manage drivers and vehicles
  • Generate/validate QR codes

Keywords (for AI/LLM discovery)

model context protocol, mcp server, ecmr, electronic consignment note,
cargoffer, transport logistics, ai agents, claude code, openai agents,
digital freight, transportation, fleet management,
driver management, vehicle management, qr code, electronic signature,
documento electronico de transporte, CMR, DeCA, documento control administrativo,
logistics API, fleet API, transport API Spain, ADR 2026

Quick Start

1. Connect via MCP

# Add to Claude Code / OpenAI Agents config
npm install @cargoffer/ecmr-mcp

# Or run standalone
npx @cargoffer/ecmr-mcp

2. Use Tools

Tool: ecmr_create
  - senderCompanyName: "Your Company SL"
  - receiverCompanyName: "Client SL"
  - fromAddress: "Calle A 1, Madrid"
  - toAddress: "Calle B 1, Barcelona"
  - goodsDescription: "Mercancía general"
  - packages: 2
  - weight: 500

→ Returns: { service_code: "ECM-XXX", status: "draft" }

Available Tools

Authentication

ToolDescription
ecmr_auth_loginLogin to ECMR API
ecmr_auth_registerRegister new user

Addresses

ToolDescription
ecmr_addresses_listList addresses
ecmr_addresses_createCreate address

Drivers

ToolDescription
ecmr_drivers_listList drivers
ecmr_drivers_createCreate driver
ecmr_drivers_updateUpdate driver
ecmr_drivers_deleteDelete driver

Vehicles

ToolDescription
ecmr_vehicles_listList vehicles
ecmr_vehicles_createCreate vehicle

eCMR

ToolDescription
ecmr_createCreate eCMR
ecmr_getGet eCMR by code
ecmr_updateUpdate eCMR
ecmr_deleteDelete eCMR
ecmr_lockLock eCMR (legally close)

Signatures

ToolDescription
ecmr_sign_senderSign as sender
ecmr_sign_pickupSign pickup
ecmr_sign_deliverySign delivery
ecmr_signatures_listList pending signatures

QR Codes

ToolDescription
ecmr_qr_generateGenerate QR code
ecmr_qr_validateValidate QR code

Configuration

# Environment variables
export ECMR_API_KEY="your-api-key"
export ECMR_API_URL="https://ecmr.api.cargoffer.com"  # Production
# or
export ECMR_API_URL="https://ecmr.api.demo.cargoffer.com"  # Demo
export PORT=3000

MCP Client Integration

Claude Code

{
  "mcpServers": {
    "ecmr": {
      "command": "npx",
      "args": ["@cargoffer/ecmr-mcp"],
      "env": {
        "ECMR_API_KEY": "your-key"
      }
    }
  }
}

OpenAI Agents

const ecmrClient = new MCPClient({
  command: "npx",
  args: ["@cargoffer/ecmr-mcp"]
});

const result = await ecmrClient.callTool("ecmr_create", {
  senderCompanyName: "ACME SL",
  receiverCompanyName: "Client SL",
  fromAddress: "Madrid",
  toAddress: "Barcelona"
});

API Reference

Base URL: https://ecmr.api.cargoffer.com

Create eCMR

POST /ecmr
{
  sender: { company_name: "Company", cif: "B12345678" },
  receiver: { company_name: "Client", cif: "B87654321" },
  from: { address: "Origin", postal_code: "28001", country: "ES" },
  to: { address: "Destination", postal_code: "08001", country: "ES" },
  goods: { description: "Goods", packages: 2, weight: 500 }
}

Signatures

// Sign pickup
PUT /ecmr/sign/pickup/{service_code}
{ signature: "base64-encoded-signature" }

// Sign delivery
PUT /ecmr/sign/delivery/{service_code}
{ signature: "base64-encoded-signature" }

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Submit a Pull Request

License

MIT License - see LICENSE for details.