Proof of Concept ยท VIGC ยท 2026

A print webshop that AI agents can operate directly

PrintLab does not sell anything for real. It exists to answer one technical question in concrete terms: what does a print shop look like that can take orders from both humans and autonomous AI agents, through both modern transport layers (WebMCP in the browser and MCP over stdio)?

17live tools
23products
2transports
L2agent-ready
01 ยท Framing

What is a proof of concept?

A POC is not a product, not an MVP and not a pilot. It is a working demonstration that nails down one technical hypothesis.

With a POC you build just enough to be able to say "yes, this works" or "no, this does not work". Speed outweighs beauty; learning value outweighs production quality. The code is allowed to be ugly as long as it proves the hypothesis.

A POC makes a deliberate choice: one scope, one claim, one test. For PrintLab that claim is: it is technically possible to build a print webshop that exposes an identical tool set to both browser agents (WebMCP) and CLI agents (MCP stdio), without the user noticing any difference.

!
Why now? Until May 2026, agent operation of webshops was a hack: taking screenshots, guessing buttons, simulating forms. Since Chrome 149 (Google I/O, 19 May 2026) there is a proper browser API. Early POCs give print companies time to learn before the first real agent traffic arrives.
02 ยท Hypothesis

What does this test site prove?

Two things: that WebMCP technically works for print workflows, and that one codebase can serve both agent routes.

Since Chrome 149, Google has been rolling out a browser layer called WebMCP. It lets a website offer its own functionality to AI agents as structured tools. No DOM scraping, no click simulation, no screenshots: the agent discovers the tools, reads the schema and calls them directly with structured parameters.

At the same time the classic MCP standard (Anthropic, Nov 2024) works for agents that have no browser - for example Claude Code in a terminal, or an ERP bot running as a background process.

This POC proves that the same print catalogue can be ordered from through both routes - with identical tool names, identical schemas, identical behaviour. For a print company that means: maintain one tool layer, serve two kinds of agents.

03 ยท Architecture

The two routes to the same tools

Both diagrams show how an agent places an order. The difference is the transport: WebMCP in a browser tab, or MCP stdio as a subprocess.

WebMCP โ€” browser

Web route

User opens a.vigc.be/POC in Chrome 149+ with the flag enabled. The agent lives in the tab.

01 ๐Ÿ‘ค User
"Order 200 business cards with spot-UV and check out to BE"
prompt
02 ๐Ÿค– AI agent in a Chrome 149+ tab
Gemini-in-Chrome or Claude-in-Chrome โ€” plans 4 tool calls based on the prompt
executeTool ยท JSON response
03 โšก navigator.modelContext
WebMCP browser API โ€” 17 tools registered live on this tab, no DOM scraping needed
run in tab
04 ๐Ÿ› ๏ธ 17 PrintLab tools
search_products ยท add_to_cart ยท calculate_shipping ยท checkout
order confirmed
โœ“ ๐Ÿ“ฆ Order ORD-A7K2X9
200 business cards spot-UV ยท done in ~8 seconds
  1. User opens a.vigc.be/POC in Chrome 149+ with the flag enabled
  2. The agent in the tab calls navigator.modelContext.getTools()
  3. Per action: executeTool(name, params) - runs in your tab, not on a server
  4. PDF upload via the browser file API, page count via pdf.js
  5. Checkout returns an order_id
MCP stdio โ€” server

CLI route

Agent without a browser - for example Claude Code, an ERP bot or a CI pipeline.

01 ๐Ÿ‘ค User / ERP system
"Order 200 business cards with spot-UV and check out to BE"
prompt
02 ๐Ÿค– Claude Code (terminal or service)
Reads .mcp.json and spawns node mcp-server/server.js as a subprocess
spawn ยท tools/list
03 โšก MCP protocol
Stdio JSON-RPC between agent and Node subprocess โ€” no browser required
tools/call
04 ๐Ÿ› ๏ธ 17 PrintLab tools (identical schemas)
search_products ยท add_to_cart ยท calculate_shipping ยท checkout
order confirmed
โœ“ ๐Ÿ“ฆ Order ORD-A7K2X9
200 business cards spot-UV ยท ready for automation
  1. Agent reads .mcp.json and starts node mcp-server/server.js
  2. Stdio JSON-RPC: tools/list returns the same 17 tools
  3. Per action: tools/call with structured parameters
  4. PDF upload via filename + sha256 + page count (the agent counts pages itself)
  5. Checkout returns an order_id - ready for automation
=
Identical tool set, two transports The entire point of this POC: the browser flow (left) and the CLI flow (right) touch exactly the same 17 tools with exactly the same JSON schemas. For the developer this is one tool implementation with two transport wrappers.
claude โ€” printlab-mcp โ€” 102ร—34
$ claude

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  Claude Code ยท v1.4.2                    โ”‚
โ”‚  MCP server: printlab  ยท  17 tools live  โ”‚
โ”‚  transport: stdio (node server.js)       โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ–ถ User: Order 200 business cards with spot-UV at PrintLab,
        soft-touch paper double-sided, deliver to BE.
        Customer: Jan Janssens, jan@company.be

Claude is thinkingโ€ฆ

  โšก tools/call list_products
    { "category": "naamkaartjes" }
    โ† 3 products: BC-STD, BC-PREM, BC-KRAFT

  โšก tools/call get_product
    { "sku": "BC-STD" }
    โ† Business cards standard, EUR 0.12/unit
       paper: [matte 350g, gloss 350g, soft-touch 400g]
       finish: [none, spot-UV, gold foil]
       sides:  [single-sided, double-sided]

  โšก tools/call add_to_cart
    {
      "sku": "BC-STD",
      "qty": 200,
      "options": {
        "paper":  "soft-touch 400g",
        "finish": "spot-UV",
        "sides":  "double-sided"
      }
    }
    โ† OK  item_id 1  ยท  subtotal EUR 32.00

  โšก tools/call calculate_shipping
    { "country": "BE" }
    โ† EUR 6.50

  โšก tools/call checkout
    {
      "name":    "Jan Janssens",
      "email":   "jan@company.be",
      "country": "BE"
    }
    โ† ORDER PLACED โœ“
       order_id:  ORD-A7K2X9
       subtotal:  EUR 32.00
       shipping:  EUR  6.50
       total:     EUR 38.50

โ—€ Claude: Order placed.

  โ€ข 200 business cards, soft-touch 400g, spot-UV (double-sided)
  โ€ข Shipping to Belgium: EUR 6.50
  โ€ข Total:                EUR 38.50

  Order ID: ORD-A7K2X9
  Confirmation email on its way to jan@company.be
  Expected delivery: 5 working days.

$
โ†‘ Live recording of a CLI session: one natural-language prompt โ†’ five tool calls โ†’ order confirmation in < 8 seconds.
04 ยท Context

The four-layer agentic commerce stack

WebMCP does not stand alone. It is the transport layer in a larger stack taking shape in 2026 - one that is being worked out for the print sector in the IOP UCP-print taskforce, where VIGC has a seat at the table.

UCP
Conventions
Universal Commerce Protocol โ€” agreements for catalogue, cart and checkout in agentic commerce.
Google + ecosystem (Shopify, Etsy, Instacart, ...)
UCP-print
Print extensions
Print-specific extensions: XJDF schemas, file upload, preflight, proof approval.
IOP UCP taskforce: BVDM + Intergraph + IOP + VIGC. Reference implementation Aug-Sept 2026.
WebMCP
Browser transport
Browser API for offering tools to agents-in-tab. Origin trial since Chrome 149.
W3C Working Group / Google Chrome. Standard expected spring 2027.
MCP
CLI transport
Classic protocol for servers outside the browser. Stdio + HTTP variants.
Anthropic (Nov 2024). Open standard, broad adoption in Claude/Cursor/Zed.
AP2
Payments
Agent Payments Protocol โ€” cryptographically signed payment mandates for autonomous agents.
FIDO Alliance (Google donation 2026). Replaces PCI-DSS risk in agent checkout.

This POC only tests the two transport layers (WebMCP + MCP). UCP-print conventions will be added once the taskforce reference implementation is final. AP2 for agent payments comes in a later phase.

05 ยท Building blocks

Under the hood

Kept as simple as possible: no framework, no build step, no backend. Static files on an ordinary Combell host.

๐Ÿ“„
Further reading For the full technical explanation with code samples, deploy steps and schema design: developer guide PDF (15 pages).
06 ยท Honest story

What this does not do (yet)

A POC has to be honest about what it does not prove. These are the deliberately-not-done choices.

Questions or a live demo?

VIGC builds this POC within the Printelligence project โ€” the knowledge and reference programme around AI-driven workflows for the printing industry. Email Geert, visit printelligence.online, or test your own site for agent readiness.