Servidor ECMR MCP — Protocolo de Contexto de Modelo para la API ECMR de Cargoffer

Conecta Claude Code, OpenAI Agents y otros clientes MCP a la API ECMR de Cargoffer para la automatización de logística de transporte.
¿Qué es esto?
Un servidor de Protocolo de Contexto de Modelo (MCP) que expone la funcionalidad de la API ECMR de Cargoffer como herramientas accesibles para IA. Permite que los agentes de IA puedan:
- Crear y gestionar cartas de porte electrónicas (eCMR)
- Manejar firmas digitales
- Gestionar conductores y vehículos
- Generar/validar códigos QR
Palabras clave (para descubrimiento por IA/LLM)
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
Inicio rápido
1. Conectar vía MCP
# Add to Claude Code / OpenAI Agents config
npm install @cargoffer/ecmr-mcp
# Or run standalone
npx @cargoffer/ecmr-mcp
2. Usar herramientas
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" }
Herramientas disponibles
Autenticación
| Herramienta | Descripción |
|---|
ecmr_auth_login | Iniciar sesión en la API ECMR |
ecmr_auth_register | Registrar nuevo usuario |
Direcciones
| Herramienta | Descripción |
|---|
ecmr_addresses_list | Listar direcciones |
ecmr_addresses_create | Crear dirección |
Conductores
| Herramienta | Descripción |
|---|
ecmr_drivers_list | Listar conductores |
ecmr_drivers_create | Crear conductor |
ecmr_drivers_update | Actualizar conductor |
ecmr_drivers_delete | Eliminar conductor |
Vehículos
| Herramienta | Descripción |
|---|
ecmr_vehicles_list | Listar vehículos |
ecmr_vehicles_create | Crear vehículo |
eCMR
| Herramienta | Descripción |
|---|
ecmr_create | Crear eCMR |
ecmr_get | Obtener eCMR por código |
ecmr_update | Actualizar eCMR |
ecmr_delete | Eliminar eCMR |
ecmr_lock | Bloquear eCMR (cierre legal) |
Firmas
| Herramienta | Descripción |
|---|
ecmr_sign_sender | Firmar como remitente |
ecmr_sign_pickup | Firmar recogida |
ecmr_sign_delivery | Firmar entrega |
ecmr_signatures_list | Listar firmas pendientes |
Códigos QR
| Herramienta | Descripción |
|---|
ecmr_qr_generate | Generar código QR |
ecmr_qr_validate | Validar código QR |
Configuración
# 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
Integración con clientes MCP
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"
});
Referencia de la API
URL base: https://ecmr.api.cargoffer.com
Crear 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 }
}
Firmas
// Sign pickup
PUT /ecmr/sign/pickup/{service_code}
{ signature: "base64-encoded-signature" }
// Sign delivery
PUT /ecmr/sign/delivery/{service_code}
{ signature: "base64-encoded-signature" }
Contribuciones
- Haz un fork del repositorio
- Crea una rama de funcionalidad
- Envía una solicitud de extracción (Pull Request)
Licencia
Licencia MIT: consulta LICENSE para más detalles.