Goods Receipt MCP

Notas de recepción de mercancías contra órdenes de compra: tolerancias de exceso/falta, unidades dañadas y faltantes, discrepancias, exportación CSV.

Documentación

mcp-goods-receipt

Servidor MCP para notas de recepción de mercancías contra órdenes de compra: unidades recibidas, dañadas y faltantes, con un informe de discrepancias. El registro de recepción de órdenes de compra: qué llegó, contra qué línea, en qué cantidad y condición.

Funciona con Claude Desktop, Claude Code, Cursor y cualquier cliente del Protocolo de Contexto de Modelos. Se ejecuta en tu propia máquina, o alojado sin instalación.

Página del producto: https://mcp.zovo.one/s/goods-receipt — qué hace, las herramientas que expone y un endpoint de token en vivo.

Instalación

Alojado, nada que instalar. Obtén un token de https://mcp.zovo.one/mcp/connect (la página de conexión) o https://mcp.zovo.one/mcp/token (el mismo token como JSON); se emite uno anónimo gratuito al instante y una clave Pro funciona de la misma manera. Luego apunta un cliente MCP a https://mcp.zovo.one/mcp/goods-receipt a través de streamable-http y envía el token como Authorization: Bearer <token>.

Si tu cliente no puede configurar encabezados, coloca el token en la ruta en su lugar: https://mcp.zovo.one/mcp/goods-receipt/t/<token>. Ambas formas funcionan. La URL sin token responde 401 en tools/call, por lo que el token no es opcional.

Claude Desktop, un clic. Descarga goods-receipt.mcpb desde la última versión y haz doble clic en él.

Desde el código fuente. El espejo es autónomo: cada dependencia de @theluckystrike/* está incluida, por lo que una clonación nueva se compila sin configuración adicional.

git clone https://github.com/theluckystrike/mcp-goods-receipt.git
cd mcp-goods-receipt
npm install && npm run build

Luego apunta tu cliente al punto de entrada compilado:

{
  "mcpServers": {
    "goods-receipt": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-goods-receipt/dist/index.js"]
    }
  }
}

@theluckystrike/mcp-goods-receipt aún no está publicado en npm, por lo que un comando npx -y @theluckystrike/mcp-goods-receipt fallará. Las tres rutas anteriores son las que funcionan y cada una es probada por CI.

goods-receipt demo

Espejo de solo lectura de mcp-servers/servers/goods-receipt. Consulta MIRROR.md.

theluckystrike/mcp-goods-receipt MCP server

En el Registro oficial de MCP (io.github.theluckystrike/goods-receipt).

Las órdenes de compra y las notas de recepción de mercancías que las reciben. Una OC lleva una referencia, un proveedor y líneas con fechas — sku, descripción, unidades enteras pedidas — además de tolerancias de exceso/defecto en porcentajes enteros que deciden cuándo se marca una recepción. Una GRN se crea contra una OC abierta, una celda por línea: unidades recibidas, unidades dañadas y cualquier faltante que ya conozcas. El faltante se deriva, no se escribe — pedido menos recibido, con un mínimo de cero — y aparece como discrepancia en el momento en que los números no coinciden.

La única regla que decide todo lo demás

La tolerancia de exceso se verifica contra el total acumulado de todas las GRN creadas en la línea, no contra cada entrega de forma aislada.

Tres entregas de 40 contra un pedido de 100 al 10% se permiten de a una y de a diez, pero la tercera entrega se rechaza, porque 120 recibidos de 100 pedidos rompe la tolerancia de exceso aunque ninguna entrega individual lo hiciera. Las entregas parciales están bien — varias GRN contra la misma OC es el caso normal — y la regla acumulativa es lo que evita que reciban en exceso silenciosamente.

Dos reglas más pequeñas se derivan de esto:

  • Nada derivado se almacena. El faltante y la discrepancia se calculan en cada llamada a partir de las líneas de la OC y las GRN ya registradas. El daño es lo único que se escribe, porque es lo único que el almacén realmente ve.
  • Recibir más allá de la tolerancia se rechaza, nunca se ajusta. A menos que las unidades adicionales se declaren dañadas, una recepción que rompe la tolerancia de exceso no escribe nada y explica el motivo. Las unidades dañadas aún cuentan para la verificación de tolerancia — "llegó roto" no es una licencia para pedir 100 y recibir 130.

Las herramientas

HerramientaQué hace
po_addCrear una orden de compra: referencia, proveedor, líneas con fechas, tolerancias de exceso/defecto
grn_addRecibir mercancías contra una OC abierta: recibido/dañado por línea, faltante derivado
grn_line_addRecibir una línea más en una GRN abierta
grn_listGRN más recientes primero, filtradas por OC o estado
grn_getUna GRN: cada línea con recibido, dañado, faltante y notas
grn_discrepancyLíneas con faltante, exceso, daño o cerradas con montos pendientes
grn_closeCerrar una GRN una vez que el conteo está resuelto
grn_status_reportCada OC: líneas abiertas, recibido acumulado, lo que aún está pendiente
grn_export_csvGRN como CSV (Pro)
license_statusQué nivel tiene esta instalación y de dónde proviene la clave
license_activateAlmacenar una clave Pro para este servidor

Inicio rápido

po_add  { "reference": "ACME-1001", "supplier": "Acme Trading",
          "lines": [ { "sku": "BRK-8", "description": "Bracket, steel", "ordered": 100 } ] }
grn_add { "po": "PO-0001",
          "lines": [ { "line": "L01", "received": 60 } ] }
grn_add { "po": "PO-0001",
          "lines": [ { "line": "L01", "received": 35, "damaged": 2 },
                     { "line": "L01", "received": 10 } ] }   // refused: 105 > 100 + 10%
grn_discrepancy {}                                        // L01 is 5 short of 100

Los IDs se ven como PO-0001 y GRN-0001; las líneas dentro de una OC son L01, L02, ….

Inicio rápido

{ "tool": "po_add", "args": { "reference": "ACME-1005", "supplier": "Acme Trading",
            "lines": [{ "sku": "BRK-01", "description": "Bracket, steel", "ordered": 10 }] } }
{ "tool": "grn_add", "args": { "po": "PO-0001", "lines": [{ "line": "L01", "received": 9, "damaged": 1 }] } }
{ "tool": "grn_discrepancy", "args": { "po": "PO-0001" } }

Una GRN que llega más allá de la tolerancia de exceso se rechaza; el faltante se calcula como pedido menos recibido y se muestra como discrepancia. grn_export_csv (Pro) escribe todo el libro mayor como CSV.

Gratis vs Pro

GratisPro
Órdenes de comprahasta 2,000hasta 2,000
GRNhasta 5,000hasta 5,000
Líneas por OC / por GRNhasta 200hasta 200
grn_list, grn_get, grn_discrepancy, grn_status_reportsísí
grn_export_csvnosí

El dominio está limitado en todo el espacio (2,000 OC, 5,000 GRN, 200 líneas) en todos los niveles — estas son reglas estrictas para que una tienda no pueda crecer más allá de lo que el formato de archivo puede contener, no un muro de pago. Pro desbloquea la exportación CSV para enviar recepciones a una hoja de cálculo o un ERP.

Obtén Pro: https://mcp.zovo.one/buy/goods-receipt (pago único), o todos los servidores por un solo precio en https://mcp.zovo.one/buy/bundle

Privacidad

Todos los datos permanecen locales, en ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/goods-receipt/, en store.json (OC y GRN) y counter.json (las series de OC y GRN). No hay ninguna llamada de red en este servidor, ni clave API, ni cuenta. El único archivo que lee que no le pertenece es el perfil empresarial compartido, y nunca escribe en él.

Creado por theluckystrike. Soporte: support@zovo.one

Usa estos documentos como servidor MCP

Cualquier cliente MCP (Claude, Cursor, Windsurf, VS Code) puede leer la documentación de este repositorio directamente a través de GitMCP — sin instalación: