MCP och skillnaden mot ett API

När folk säger “koppla AI mot våra system” blandas två saker ihop: ett vanligt API och MCP. De liknar varandra på ytan - båda är sätt att prata med en tjänst - men de är byggda för olika konsumenter.
Vad ett API är
Ett API (Application Programming Interface) är ett kontrakt mellan program. Det klassiska exemplet är REST över HTTP: du anropar en URL, skickar JSON, får JSON tillbaka.
GET /api/orders/42 HTTP/1.1
Host: shop.example
Authorization: Bearer …token…
{ "id": 42, "status": "skickad", "total": 1290 }
Konsumenten är kod du skrev. Du läser dokumentationen, hårdkodar sökvägar, hanterar felkoder, cachar svaret. API:et vet ingenting om att en språkmodell sitter i andra änden.
Det finns GraphQL, gRPC, webhooks - samma idé: ett stabilt gränssnitt för program.
Vad MCP är
MCP, Model Context Protocol, är ett öppet protokoll för att ge modeller verktyg, data och instruktioner på ett enhetligt sätt. Tänk USB-C för AI-appar: samma kontakt, många tillbehör.
En MCP-värd (till exempel en chattklient eller en IDE) startar en MCP-server. Servern exponeras som:
- Tools - funktioner modellen får anropa, med schema.
- Resources - läsbar kontext, till exempel en fil eller en tabell.
- Prompts - färdiga instruktioner.
{
"name": "hamta_order",
"description": "Hämta en order givet ett id",
"inputSchema": {
"type": "object",
"properties": {
"orderId": { "type": "number" }
},
"required": ["orderId"]
}
}
Modellen ser schemat, väljer verktyget, fyller i argument. Värden kör anropet mot servern och skickar resultatet tillbaka in i kontexten. Det är tool-calling med en standard - inte en ny sorts databas.
Skillnaden som faktiskt spelar roll
- Konsument. Ett API pratar med din kod. MCP pratar med en modell via en värd (chatten, editorn).
- Upptäckt. API:er hittar du i dokumentation eller OpenAPI. MCP-verktyg listas i sessionen, med schema modellen kan l äsa.
- Kontrakt. API: URL:er och statuskoder. MCP: verktygsnamn plus JSON-schema.
- Session. HTTP är ofta stateless. MCP håller en längre koppling och bär kontext.
- Säkerhet. Tokens, scope och rate limit gäller båda. MCP lägger till en extra fråga: vad får modellen se och köra?
Ett MCP-verktyg wrappar ofta ett API. Servern tar orderId, anropar GET /api/orders/42, filtrerar fälten och lämnar en kort text till modellen. API:et är motorn. MCP är ratten som en LLM kan hålla i.
// MCP-verktyget pratar med ett vanligt API bakom kulisserna
async function hamtaOrder({ orderId }: { orderId: number }) {
const res = await fetch(`https://shop.example/api/orders/${orderId}`, {
headers: { Authorization: `Bearer ${process.env.SHOP_TOKEN}` },
});
if (!res.ok) throw new Error("Ordern gick inte att hämta");
const order = await res.json();
return { id: order.id, status: order.status };
}
När du ska välja vad
Bygger du en integration mellan två tjänster - betalning till bokföring, webhook till Slack - gör ett API. Det är rätt verktyg för program-till-program.
Vill du att en assistent i editorn ska kunna läsa era ärenden, köra en sökning eller skapa en PR, då är MCP värt det. Du skriver servern en gång och flera klienter kan ansluta utan att varje modellleverantör får ett special-plugin.
En fälla
MCP tar inte bort behovet av ett bra API. Om REST-lagret läcker för mycket, saknar auktorisering eller returnerar hela databasen, gör MCP-lagret samma skada - bara med en mer pratsam användare. Protokollet är en adapter. Det är inte en säkerhetsmodell.
Kort sagt: API är hur system pratar med system. MCP är hur en modell får tillgång till de systemen, med upptäckt och schema som den kan läsa. Du kommer att behöva båda.