Saltar al contenido
3D PrintBarcelona

Servidor MCP · Para asistentes de IA

Presupuesto y pedido de impresión 3D desde ChatGPT, Claude o cualquier asistente de IA

Conecta tu asistente a nuestro servidor MCP y pídele lo mismo que harías en esta web: el precio exacto de tu STL u OBJ, una estimación a partir de las medidas, qué material te conviene y, cuando lo confirmes, el pedido. Sin API key, gratis, y con los mismos precios que el configurador, porque salen del mismo motor.

URL del servidor

https://www.3dprintbarcelona.com/mcp
Precio
Gratis, sin clave
Precios
Idénticos a la web
Pedidos
Solo con tu confirmación
Archivos
STL y OBJ

Qué le puedes pedir

Escríbele con naturalidad. El asistente elige la herramienta, rellena los parámetros y te devuelve precios reales, no inventados.

  • “Aquí tienes mi STL: [enlace]. ¿Cuánto cuestan 3 unidades en PETG negro con envío a Madrid?”
  • “¿Cuánto costaría una figura de 20 cm de alto en resina?”
  • “Necesito un soporte para el salpicadero del coche. ¿Qué material aguanta el calor?”
  • “Presupuéstame un casco de cosplay de unos 24 × 22 × 25 cm en PLA.”
  • “Compara PLA, PETG y ABS para esta carcasa y dime cuál sale más a cuenta.”
  • “Vale, haz el pedido. Lo recojo en Barcelona. Me llamo…”
  • “¿En qué estado está mi pedido BCN-…?”

Cómo funciona

  1. 1

    Conecta el servidor

    Pega la URL en los conectores de tu asistente. Una vez, en un minuto, sin cuenta ni clave.

  2. 2

    Pregunta como a una persona

    Pásale el enlace a tu STL o las medidas de la pieza. El servidor mide el archivo igual que el configurador y analiza voladizos y soportes.

  3. 3

    Revisa el resumen

    Para pedir, el asistente te enseña piezas, opciones, total con IVA y plazo. Nada se compra hasta que dices que sí.

  4. 4

    Paga con la factura

    Recibes la factura por email y el enlace privado de tu pedido. Imprimimos en nuestro taller de Barcelona y lo recoges o te lo enviamos.

Precios reales, calculados ahora

Estas cifras las calcula en este momento la misma herramienta que usa tu asistente, con los precios vigentes. Sin archivo es un rango; con el STL, el precio exacto.

Soporte de 80 × 40 × 30 mm en PETG

3,68 € – 8,94 € por unidad sin IVA

Pedido típico: 18,15 € con IVA · 7 días laborables

Figura de 75 mm de alto en resina

27,67 € – 43,87 € por unidad sin IVA

Pedido típico: 72,60 € con IVA · 7 días laborables

Cómo conectarlo a tu asistente

El servidor es remoto y público: no instalas nada. Los nombres de los menús cambian con las versiones de cada aplicación; lo que importa es la URL.

Claude (web, escritorio y móvil)

  1. Abre Ajustes → Conectores → Añadir conector personalizado.
  2. Nombre: 3D Print Barcelona. URL: https://www.3dprintbarcelona.com/mcp. Deja vacíos los campos de OAuth.
  3. En un chat, activa el conector desde el menú de herramientas y pide tu presupuesto.
  4. En planes de equipo o empresa, puede que un administrador tenga que añadirlo primero.

ChatGPT

  1. Ajustes → Aplicaciones y conectores → Configuración avanzada → activa el modo desarrollador.
  2. Crea un conector nuevo con la URL https://www.3dprintbarcelona.com/mcp y autenticación «Sin autenticación».
  3. En un chat, elígelo desde el menú + y pregunta. Disponible en los planes que ofrecen el modo desarrollador.

Claude Code

  1. Ejecuta en el terminal:
Terminal
claude mcp add --transport http 3dprintbarcelona https://www.3dprintbarcelona.com/mcp

Cursor

  1. Añade el servidor a ~/.cursor/mcp.json (o al .cursor/mcp.json del proyecto):
mcp.json
{
  "mcpServers": {
    "3dprintbarcelona": {
      "url": "https://www.3dprintbarcelona.com/mcp"
    }
  }
}

VS Code (GitHub Copilot)

  1. Añade el servidor a .vscode/mcp.json y úsalo en el modo agente de Copilot:
.vscode/mcp.json
{
  "servers": {
    "3dprintbarcelona": {
      "type": "http",
      "url": "https://www.3dprintbarcelona.com/mcp"
    }
  }
}

Windsurf

  1. Añádelo a ~/.codeium/windsurf/mcp_config.json:
mcp_config.json
{
  "mcpServers": {
    "3dprintbarcelona": {
      "serverUrl": "https://www.3dprintbarcelona.com/mcp"
    }
  }
}

Gemini CLI

  1. Añádelo a ~/.gemini/settings.json:
settings.json
{
  "mcpServers": {
    "3dprintbarcelona": {
      "httpUrl": "https://www.3dprintbarcelona.com/mcp"
    }
  }
}

Clientes que solo admiten stdio

  1. Usa el puente mcp-remote, que traduce stdio a HTTP:
Configuración
{
  "mcpServers": {
    "3dprintbarcelona": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.3dprintbarcelona.com/mcp"
      ]
    }
  }
}

Las herramientas

Ocho herramientas, todas deterministas: reciben parámetros y devuelven cálculos del motor de precios de la web, sin ningún modelo de IA en el servidor. Las descripciones de los parámetros están en inglés porque son las que lee tu asistente.

get_catalog

Solo lectura

Get the live catalogue

Devuelve el catálogo en vivo: tecnologías, materiales, colores y stock, calidades, rellenos, acabados, plazos, envíos, descuentos por cantidad y pedido mínimo.

ParámetroTipoDescripción
languageen | esLanguage for option names and engine warnings, and for the customer invoice when ordering. Use "es" for Spanish or Catalan speakers. Default: en.

recommend_material

Solo lectura

Recommend a material

Recomienda materiales a partir de requisitos (temperatura, exterior, flexibilidad, resistencia, detalle, presupuesto, color, plazo) con motivos, precauciones y el precio real de la pieza en cada uno.

ParámetroTipoDescripción
applicationstringWhat the part is for. Sets sensible defaults that any other field overrides. One of: visual_prototype, functional_part, mechanical_load, outdoor_part, heat_exposed, electronics_enclosure, flexible_part, figurine_or_miniature, cosplay_prop, decorative.
max_temperature_cnumberHighest temperature the part must survive, °C.
outdoorbooleanExposed to sun, rain and weather.
flexiblebooleanMust bend, compress or cushion like rubber.
strengthlow | medium | highHow much mechanical load or impact it takes.
detaillow | medium | highHow fine the detail and how smooth the surface must be.
budgetlowest | balanced | performancePrice sensitivity.
fast_deliverybooleanPrefer materials in stock (no extra days).
colorstringColour the user wants, e.g. "red".
transparentbooleanNeeds a clear / translucent material.
food_contactbooleanWill touch food or drink (triggers an honest warning).
dimensions_mmobjectBounding box of the part in millimetres (X, Y, Z). Z is the height as it stands. Fields: x*, y*, z*.
shapestringKind of object, used to price the reference part. See estimate_price. One of: mechanical_part, solid_block, flat_plate, bracket, cylinder, hollow_enclosure, vase_or_tube, figurine, wearable_shell.
languageen | esLanguage for option names and engine warnings, and for the customer invoice when ordering. Use "es" for Spanish or Catalan speakers. Default: en.

estimate_price

Solo lectura

Estimate a price from dimensions

Calcula un rango de precio (bajo, típico, alto) a partir de las medidas X×Y×Z y el tipo de objeto, sin archivo. Con el volumen en cm³ da el precio exacto.

ParámetroTipoDescripción
dimensions_mmobligatorioobjectBounding box of the part in millimetres (X, Y, Z). Z is the height as it stands. Fields: x*, y*, z*.
shapestringKind of object: mechanical_part (default), solid_block, flat_plate, bracket, cylinder, hollow_enclosure (box/case), vase_or_tube, figurine (figure, miniature, statue), wearable_shell (cosplay helmet, mask, armour). One of: mechanical_part, solid_block, flat_plate, bracket, cylinder, hollow_enclosure, vase_or_tube, figurine, wearable_shell. Default: mechanical_part.
volume_cm3numberActual part volume if known — removes the guesswork.
surface_area_cm2numberActual surface area if known.
technologystringPrinting technology: "fdm" (filament, cheaper, larger) or "sla" (resin, finest detail). Implied by the material when omitted.
materialstringMaterial id or name, e.g. "pla", "petg", "abs", "tpu", "pla-cf", "resin-standard", "resin-tough". Default: PLA. See get_catalog.
colorstringColour id or name in English or Spanish, e.g. "black", "white", "red", "clear". Default: the first colour listed for the material.
qualitystringLayer height: id ("draft", "standard", "fine", "ultrafine", "resin-standard", "resin-fine") or millimetres ("0.12"). Default: standard.
infillstringInfill: percentage ("20%", "40") or id; for resin "hollow" or "solid". Default: 20% (FDM) / hollow (resin).
finishstringPost-processing id or name: "none", "cleanup", "sanded", "painted". Default: none.
supportstrue | false | auto"auto" (default) adds supports only where the geometry needs them; true/false forces the choice. The support surcharge is always reported separately. Default: auto.
quantityintegerUnits of this part. Volume discounts apply automatically from 3 units. Default: 1.
lead_timestringProduction speed id or name: "standard" (default), "priority", "express".
shippingstringDelivery id or name: "pickup" (free, Barcelona workshop — default), "bcn-courier" (Barcelona city), "es-peninsula" (mainland Spain), "es-islands" (Balearic/Canary Islands), "eu" (European Union).
languageen | esLanguage for option names and engine warnings, and for the customer invoice when ordering. Use "es" for Spanish or Catalan speakers. Default: en.

quote_model_file

Guarda el archivo

Quote an STL or OBJ file

Presupuesto exacto de un archivo STL u OBJ (por URL o en base64): lo mide en el servidor igual que el configurador, analiza voladizos y soportes, y devuelve un model_id reutilizable.

ParámetroTipoDescripción
file_urlstringDirect https link to the .stl or .obj file.
file_base64stringThe file itself, base64-encoded (up to about 20 MB decoded).
file_namestringFile name including extension, e.g. "bracket.stl". Required with file_base64.
unitmm | cm | inUnits the file was drawn in. STL has no units; almost all are mm. Default: mm.
scalenumberUniform scale factor, 1 = original size. Default: 1.
technologystringPrinting technology: "fdm" (filament, cheaper, larger) or "sla" (resin, finest detail). Implied by the material when omitted.
materialstringMaterial id or name, e.g. "pla", "petg", "abs", "tpu", "pla-cf", "resin-standard", "resin-tough". Default: PLA. See get_catalog.
colorstringColour id or name in English or Spanish, e.g. "black", "white", "red", "clear". Default: the first colour listed for the material.
qualitystringLayer height: id ("draft", "standard", "fine", "ultrafine", "resin-standard", "resin-fine") or millimetres ("0.12"). Default: standard.
infillstringInfill: percentage ("20%", "40") or id; for resin "hollow" or "solid". Default: 20% (FDM) / hollow (resin).
finishstringPost-processing id or name: "none", "cleanup", "sanded", "painted". Default: none.
supportstrue | false | auto"auto" (default) adds supports only where the geometry needs them; true/false forces the choice. The support surcharge is always reported separately. Default: auto.
quantityintegerUnits of this part. Volume discounts apply automatically from 3 units. Default: 1.
lead_timestringProduction speed id or name: "standard" (default), "priority", "express".
shippingstringDelivery id or name: "pickup" (free, Barcelona workshop — default), "bcn-courier" (Barcelona city), "es-peninsula" (mainland Spain), "es-islands" (Balearic/Canary Islands), "eu" (European Union).
languageen | esLanguage for option names and engine warnings, and for the customer invoice when ordering. Use "es" for Spanish or Catalan speakers. Default: en.

quote_basket

Solo lectura

Re-quote models with other options

Recalcula uno o varios modelos ya enviados con otras opciones y cantidades, como un único pedido con envío, descuento, pedido mínimo e IVA.

ParámetroTipoDescripción
itemsobligatorioarray<object>The parts in the order. Fields: model_id*, unit, scale, technology, material, color, quality, infill, finish, supports, quantity.
lead_timestringProduction speed id or name: "standard" (default), "priority", "express".
shippingstringDelivery id or name: "pickup" (free, Barcelona workshop — default), "bcn-courier" (Barcelona city), "es-peninsula" (mainland Spain), "es-islands" (Balearic/Canary Islands), "eu" (European Union).
discount_codestringDiscount code, if the user has one.
languageen | esLanguage for option names and engine warnings, and for the customer invoice when ordering. Use "es" for Spanish or Catalan speakers. Default: en.

prepare_order

Solo lectura

Prepare an order for confirmation

Prepara el resumen final del pedido con el total con IVA y devuelve un código de confirmación de 30 minutos. No compra nada: el asistente debe enseñarlo y esperar tu confirmación.

ParámetroTipoDescripción
itemsobligatorioarray<object>Fields: model_id*, unit, scale, technology, material, color, quality, infill, finish, supports, quantity.
customerobligatorioobjectThe person placing the order. Ask the user for these; never invent them. Fields: name*, email*, phone*, company, tax_id, address, city, postal_code, notes.
lead_timestringProduction speed id or name: "standard" (default), "priority", "express".
shippingstringDelivery id or name: "pickup" (free, Barcelona workshop — default), "bcn-courier" (Barcelona city), "es-peninsula" (mainland Spain), "es-islands" (Balearic/Canary Islands), "eu" (European Union).
discount_codestring
accepted_termsobligatoriobooleantrue once the user has agreed to the terms of service and privacy policy linked in the response. Must be true.
languageen | esLanguage for option names and engine warnings, and for the customer invoice when ordering. Use "es" for Spanish or Catalan speakers. Default: en.

place_order

Crea un pedido

Place the confirmed order

Hace el pedido preparado, solo tras tu confirmación explícita. Recibes la factura por email y pagas desde ella o desde la página del pedido: nunca se piden datos de pago en el chat.

ParámetroTipoDescripción
confirmation_codeobligatoriostringThe confirmation_code returned by prepare_order.
user_confirmedobligatoriobooleantrue only if the user explicitly confirmed this exact order and total.

check_order_status

Solo lectura

Check an order's status

Consulta el estado de un pedido (pendiente de pago, en producción, enviado…) con su referencia y el token del enlace de seguimiento.

ParámetroTipoDescripción
referenceobligatoriostringOrder reference, e.g. "BCN-4F2A19".
tokenobligatoriostringAccess token from the tracking link.

Tú mantienes el control

  • Nada se compra sin tu sí

    Pedir son dos pasos: el asistente prepara un resumen con el total y un código de confirmación de 30 minutos, te lo enseña, y solo después de tu confirmación explícita lo envía. Repetir la llamada nunca crea un segundo pedido.

  • Ningún dato de pago en el chat

    Recibes la factura por email y pagas desde ella o desde la página privada de tu pedido. El servidor no pide ni acepta tarjetas, IBAN ni contraseñas.

  • Precios de verdad, no de IA

    Cada euro sale de la misma función que calcula el configurador, con la configuración vigente. Mismo archivo y mismas opciones, mismo precio al céntimo.

  • Tus archivos, privados

    Los modelos se guardan como cualquier subida de la web, solo para presupuestar e imprimir tu pedido. Una persona revisa cada archivo antes de imprimir.

  • Descargas seguras

    Solo se descargan enlaces https públicos (GitHub, Dropbox y Google Drive se convierten solos). Las direcciones privadas y de red interna se bloquean.

  • Uso justo

    Hay límites por conexión y globales para que el servicio siga disponible para todos. Si los alcanzas, la respuesta dice cuánto esperar.

Límites de uso justo

AcciónLímite
Catálogo, estimaciones, recomendaciones y presupuestos de modelos ya enviados300 cada 10 min
Archivos analizados (STL/OBJ)40 por hora
Resúmenes de pedido preparados40 por hora
Pedidos6 por hora · 3 por email al día
Códigos de descuento comprobados20 cada 10 min
Consultas de estado de pedido120 cada 10 min

Para desarrolladores

JSON-RPC 2.0 sobre HTTP, sin estado. Cualquier cliente MCP funciona; también puedes llamarlo directamente.

Endpoint
https://www.3dprintbarcelona.com/mcp
Transporte
Streamable HTTP · respuestas JSON · sin sesiones ni SSE
Versiones del protocolo
2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05
Autenticación
Ninguna
Server card
https://www.3dprintbarcelona.com/.well-known/mcp/server-card.json
Formatos
STL (binario y ASCII) y OBJ. Los 3MF, en el configurador web.
Tamaño máximo
40 MB por enlace · 20 MB en base64
Ejemplo con curl
curl https://www.3dprintbarcelona.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"estimate_price","arguments":{"dimensions_mm":{"x":80,"y":40,"z":30},"shape":"bracket","material":"petg"}}}'

Preguntas frecuentes

¿Qué es un servidor MCP?

MCP (Model Context Protocol) es el estándar abierto con el que los asistentes de IA como Claude o ChatGPT usan herramientas externas. Nuestro servidor MCP le da a tu asistente acceso directo al sistema de presupuestos de 3D Print Barcelona, para que pueda darte precios reales y hacer pedidos en la conversación.

¿Qué asistentes de IA pueden usarlo?

Cualquiera compatible con servidores MCP remotos: Claude (web, escritorio, móvil y Claude Code), ChatGPT en modo desarrollador, Cursor, VS Code con GitHub Copilot, Windsurf, Gemini CLI y muchos más. Los que solo admiten stdio pueden conectarse con el puente mcp-remote.

¿Es gratis? ¿Necesito cuenta o API key?

Es gratis y no necesitas cuenta ni clave. Solo pagas las piezas que pidas, al mismo precio que en la web.

¿Los precios son los mismos que en la web?

Sí, al céntimo. El servidor usa la misma función de cálculo y la misma configuración de precios que el configurador. Para un archivo, lo mide en el servidor igual que lo mide tu navegador en la web, incluido el análisis de voladizos y soportes.

¿Puede mi asistente hacer un pedido sin que yo lo sepa?

No. Hacer un pedido exige dos pasos: primero se prepara un resumen con el total y un código de confirmación, que el asistente debe enseñarte; solo con tu confirmación explícita se envía. Además, nada se cobra en el chat: pagas desde la factura que recibes por email.

¿Cómo pago un pedido hecho desde el asistente?

Igual que en la web: recibes por email la factura con las instrucciones de pago y el enlace privado de tu pedido. La producción empieza cuando está pagado.

Mi asistente no puede subir el archivo. ¿Qué hago?

Súbelo a un sitio con enlace de descarga directa (GitHub, Dropbox o Google Drive con acceso público) y pásale el enlace. Si no, pídele una estimación por medidas o sube el archivo a nuestro configurador web: el precio es el mismo.

¿Decide el precio una IA?

No. En el servidor no hay ningún modelo de lenguaje: cada herramienta recibe parámetros y los calcula con el motor de precios de la web. Tu asistente solo elige qué herramienta usar y te explica el resultado.

¿Prefieres hacerlo tú?

El configurador web hace lo mismo con tu archivo en el navegador: lo giras, lo escalas, eliges material y ves el precio al instante.