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
-
Office
Budget, cadence, headcount and delivery window, served to the agent by Officedigit's own MCP. A kitchen QR code reports what ran out.
-
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.
-
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.
-
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 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 UsWe investigate it first, then build the system and stay with it.