Skip to content

Office procurement, handed to an agent.

In September 2026 Silpo, the Ukrainian grocery chain, ran AI Factory: a hackathon for AI agents built on its official MCP. Our entry, Officedigit, took 5th place of almost 800.

Officedigit runs an office's grocery procurement. An agent on OpenAI Luna drafts each order through Silpo's MCP, Jev judges every pick, and a person confirms.

Context
HackathonSilpo AI Factory
Result
5th place of almost 800 entries
AI cost
$0.0019 per procurement cycle
Stack
  • Laravel 13
  • laravel/mcp
  • laravel/ai
  • OpenAI gpt-6-luna
  • TypeSafe Jev
  • PostgreSQL
  • React + Inertia

The brief: an agent on Silpo's official MCP that solves a real problem.

Every team had to use Silpo's official MCP to build an agent for a real problem of a guest or a business, show it working, and explain its value and how it would scale. We picked office supplies: someone counts coffee every Monday, shops, chases substitutes and books delivery, while finance sees the spend only afterwards. Officedigit made the final ten, pitched live on 30 September, and kept going after the hackathon: it is now in beta.

Two MCPs, two models, one person who confirms

  1. Office

    Budget, cadence, headcount and delivery window, served to the agent by Officedigit's own MCP. A kitchen QR code reports what ran out.

  2. Klavdiia, on OpenAI Luna

    gpt-6-luna through laravel/ai. Up to 16 steps, five tools: office brief, demand forecast, supplier search, product selection, ask the manager.

    Jev, the judge

    TypeSafe jev-latest scores every pick, quantity and substitute. Fit under 0.25 is dropped; under 0.60 the manager is asked.

  3. Silpo MCP

    mcp.silpo.ua, OAuth with PKCE and a token per office. 11 tools: address, delivery slots, batch catalogue search, cart, order history, loyalty.

  4. Silpo cart

    Built through MCP only after a person confirms. Payment and checkout stay in Silpo.

One procurement cycle, call by call

01 Read the office

The agent starts from office_context, the read-only tool of Officedigit's own MCP: budget, cadence, headcount. No personal data, no address.

02 Forecast the demand

A daily norm per person, times the people actually in, times the days, plus safety stock, minus what's left. Early stock-outs raise the norm, capped at 1.5×.

03 Shop through Silpo MCP

Batch catalogue search and delivery slots in the office's store, then Jev scores each pick and quantity before it enters the draft.

04 Ask, don't guess

When Jev is unsure or something is out, ask_manager sends one question with two to four options by email, Telegram or Slack. At most three a cycle.

05 Confirm, then the cart

Only after a person confirms is the Silpo cart created through MCP. Checkout stays in Silpo; a sync every 30 minutes finds the paid order.

$0.0019 of AI per procurement cycle.

Luna is priced at $0.10 per million input tokens and $0.50 per million output, with a shared prompt cache across offices. Jev classifies at $0.042 per million and writes no text. Every call is priced and recorded in the agent journal.

Under the hood

Silpo MCP, as a client

laravel/mcp over HTTP to mcp.silpo.ua. OAuth discovery, dynamic client registration and PKCE give each office its own token, encrypted and refreshed under a lock. No tool can place, pay for or cancel an order.

Officedigit MCP, as a server

Our own MCP server exposes one read-only tool, office_context, behind the user's session. Drafting, confirming and checkout are deliberately not agent tools.

Luna drafts, Jev judges

Luna plans the searches and picks products. Jev returns probabilities, not text: fit, restriction conflicts, amount level, the best of up to five substitutes. Eight calls run in parallel inside a 45-second budget.

Works without the models

Without an OpenAI key the draft falls back to a deterministic search and ranking; without Jev, picks go unjudged. Procurement never stops because a model is down.

Silpo's limits, handled

Drafts over 30 kg split into several deliveries, calibrated by the weight Silpo reports. Quotes refresh after 22 hours; checkout links are accepted only on silpo.ua.

The product, live

The running app with seeded demo offices.

Officedigit overview: spend this month against a 60,000 ₴ budget, the next delivery, cost per person per day, savings, recent purchases with a forecast for the next one, top products
Overview, with the next purchase forecast
A delivered Officedigit order: six items with quantities set for 7 days, 8,143 ₴ of a 9,000 ₴ budget, Silpo promotions and loyalty points
A delivered order against its budget

Officedigit is in open beta for offices in Ukraine.

Go to officedigit.welldigit.com(opens in a new tab)

Have a process an agent could take over? Bring it to us.

Talk to Us

We investigate it first, then build the system and stay with it.