Varje dag innehåller hundratals små uppgifter som ingen kommer att bygga en app för. Kolla om det är slut på mjölk. Lägg in jäst inför helgens bakning utan att störa det någon annan redan lagt i korgen. Fånga att ingefäran alltid tar slut en gång i månaden.
De uppgifterna är för smala och för tillfälliga för att en dedikerad app någonsin ska vara rätt skala. Men en assistent som kan prata med rätt MCP-server kan plötsligt göra dem.
MCP sänker tröskeln tillräckligt för att de uppgifter ingen bygger en app för ska bli möjliga att delegera. Det handlar om att göra delegation ekonomiskt möjlig på en skala som aldrig tidigare varit lönsam.
Vi har byggt en MCP-server mot Coops inköpstjänst för ett hushåll. Det är exemplet, inte ämnet. Det intressanta är vad man tvingas lösa längs vägen.
Det som är svårt är inte att skriva — det är att avstå
Att lägga en vara i korgen är trivialt. Det svåra är resten.
Servern har tolv verktyg, men inget för att tömma korgen: clear_cart finns inte. Det är ingen glömska. En agent som kan tömma en delad korg är en agent som kan radera andras intentioner. Det är ett annat slags verktyg — ett som kräver en annan diskussion innan det implementeras.
Ägarskapet för en rad är en hushållsinställning: standarden följer av hur många medlemmar hushållet har — på i ett enpersonshushåll, av i ett hushåll med flera. Är den av lämnas rader som inte är agentens egna ifred; svaret från commit_plan rapporterar då NotOwned.
De andra skydden gäller alla hushåll, oavsett inställning. Planens innehåll är bundet med en hash till det godkännande som skapades innan den första skrivningen. En rad vars innehåll i korgen inte längre stämmer med vad servern senast skrev dit vägras alltid — det heter Conflicted. Svaret är en rapport per rad.
En korg är ett delat utrymme för ett hushåll med flera personer och olika intentioner. En agent som skriver i den måste vara konstruerad för att förlora en konflikt, inte vinna den. Det är den svåra delen, och den generaliserar långt bortom mat.
Varje agentisk integration mot ett delat utrymme — en kalender, ett dokument — delar samma problem. Vem äger raden? Vad händer om en människa ändrade något efter att agenten läste? Agenten ska respektera gränser den inte satte.
Kvantiteten stämde, enheten saknades i svaret
Viktvaror hade ett svarsformatfel: ingefära 200 g matchades rätt som 200 g, men svaret utelämnade enheten, så kvantiteten lästes som ett rent antal.
Rättelsen är verifierad i drift sedan 2026-09-26: "ingefära 200 g", quantity 1 ger svaret Added med beloppsfältet "200 g in total (2 × 100 g steps)" (servern svarar på engelska). Ett bart viktantal utan enhet, till exempel "ingefära", quantity 200, ger NeedsAmount i stället för en gissning.
Den som bygger på ett gränssnitt och döljer sina begränsningar skapar ett integrationsproblem åt sina användare.
Varje publikt gränssnitt har begränsningar. Den relevanta frågan är om man känner till dem och berättar om dem.
Instruktioner till agenter är produkt
En MCP-server beskriver för en assistent vad den kan göra och när den ska låta bli. Den texten styr beteendet vid varje anrop. Den är en körbar specifikation.
Det förskjuter vad det innebär att bygga ett gränssnitt: formuleringen avgör nu minst lika mycket som API-routen eller dataschemat om agenten förstår när den ska tveka.
Ägarskapslogiken i den här servern är kodad som ett beteende: rader som inte är agentens egna ska lämnas ifred, och en agent som respekterar det är mer användbar i ett hushåll med flera personer än en som inte gör det. Den distinktionen gjordes i instruktionstexten.
Samma frågor gäller i alla delade utrymmen. Vilka uppgifter ska agenten aldrig utföra utan att fråga? Vad är en konflikt, och vem vinner den? De besluten formas i texten som beskriver servern.
Anslutning kräver ett aktivt val
OAuth 2.1, authorization code med PKCE, inloggning via engångskod på e-post. Åtkomsttoken lever i femton minuter; uppdateringstoken roterar och gäller i trettio dagar. Onboarding sker på webben. Servern vet aldrig vem du är utan att du aktivt valt att identifiera dig.
Servern körs som sluten beta på https://coop.mcp.talentedai.se.
Hur vi hanterar personuppgifter finns i integritetspolicyn.
Hur anslutningen fungerar i praktiken beskrivs i guiden till Coop-integrationen.
Gränsen för vad som inte görs är det som avgör
MCP är ett lager som låter en assistent utföra avgränsade uppgifter i system som annars är slutna.
Det som avgör om en integration är användbar är hur väl den har kalibrerat vad den inte ska göra — vad som tillhör någon annan, och när den ska stanna.
MCP gör den sortens uppgifter billiga nog att koppla till en assistent. Men det är bara halva jobbet. Den andra halvan är att bygga en agent som vet när den ska avstå, i ett utrymme den delar med någon annan.