Ako pratite razvoj AI alata, vjerojatno ste zadnjih mjeseci naletjeli na skraćenicu MCP — Model Context Protocol. Zvuči kao još jedan tehnički standard koji treba naučiti, ali ideja iza njega je iznenađujuće jednostavna: MCP je zajednički "jezik" kojim AI modeli razgovaraju s vanjskim alatima i izvorima podataka.

Problem koji MCP rješava

Zamislite da gradite AI asistenta koji treba pristupiti vašoj bazi podataka, čitati datoteke, slati Slack poruke i pretraživati web. Bez zajedničkog standarda, za svaku od tih integracija pisali biste zaseban, prilagođen kod — i taj kod ne biste mogli ponovno iskoristiti u drugom projektu ili s drugim AI modelom.

MCP to rješava definiranjem jednog protokola kojim se bilo koji "MCP server" (npr. server koji zna raditi s Google kalendarom) može spojiti na bilo kojeg "MCP klijenta" (npr. Claude Desktop, IDE dodatak ili vlastitu aplikaciju). Napišete integraciju jednom, koristite je posvuda.

Analogija: USB-C za AI alate

Najčešća analogija je USB-C priključak. Prije USB-C-a, svaki uređaj imao je svoj kabel i konektor. Danas jedan tip priključka radi s telefonima, laptopima, slušalicama i monitorima. MCP radi isto za AI — umjesto da svaki alat ima svoju prilagođenu integraciju za svaki model, postoji jedan protokol koji svi razumiju.

Arhitektura u tri dijela

  1. MCP Host — aplikacija s kojom korisnik razgovara (npr. Claude Desktop ili vaš vlastiti chat interface).
  2. MCP Klijent — dio hosta koji upravlja vezom prema jednom MCP serveru (host obično ima po jednog klijenta za svaki spojeni server).
  3. MCP Server — lagani proces koji izlaže konkretne mogućnosti: alate (funkcije koje model može pozvati), resurse (datoteke ili podatke koje model može pročitati) i promptove (unaprijed definirane predloške).
Host aplikacija ⇄ MCP Klijent ⇄ MCP Server ⇄ Vanjski sustav (baza, API, datotečni sustav...)

Što točno server izlaže

  • Tools (alati) — funkcije s jasno definiranim parametrima koje model može pozvati, npr. create_ticket ili search_database.
  • Resources (resursi) — statični ili dinamički sadržaj koji se može učitati u kontekst, npr. sadržaj datoteke ili rezultat SQL upita.
  • Prompts (predlošci) — gotovi predlošci razgovora koje korisnik može pokrenuti jednim klikom, korisno za ponavljajuće zadatke.

Minimalan primjer servera

MCP serveri komuniciraju preko JSON-RPC poruka. Najjednostavniji transport je standardni ulaz/izlaz (stdio), pa server može biti obična CLI skripta:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "vrijeme-server", version: "1.0.0" });

server.tool(
  "get_weather",
  { grad: z.string() },
  async ({ grad }) => ({
    content: [{ type: "text", text: `Trenutno u ${grad}: 24°C, sunčano.` }],
  })
);

const transport = new StdioServerTransport();
await server.connect(transport);

Ovaj server host aplikacija pokreće kao podproces i s njim komunicira preko stdio kanala — nema potrebe za HTTP serverom ili API ključevima na strani alata.

Zašto je ovo bitno za developere

  • Ponovna iskoristivost — jednom napisan MCP server za, primjerice, Postgres bazu, radi s bilo kojim MCP-kompatibilnim klijentom.
  • Sigurnost i izolacija — server eksplicitno definira koje akcije dopušta, model ne dobiva neograničen pristup sustavu.
  • Ekosustav koji raste — postoje već gotovi serveri za GitHub, Slack, Google Drive, baze podataka i desetke drugih alata, pa vam često ne treba pisati ništa od nule.

Zaključak

MCP nije zamjena za API-je — on je sloj iznad njih koji AI modelima daje standardiziran način da ih koriste. Ako gradite AI proizvod koji treba raditi s više vanjskih sustava, vrijedi provjeriti postoji li već gotov MCP server prije nego što pišete prilagođenu integraciju od nule.