En el desenvolupament d'agents d'intel·ligència artificial, un dels desafiaments més recurrents és la integració amb eines externes. Cada servei exposa la seva pròpia API, els seus propis formats i mecanismes d'autenticació. El Protocol de Context de Model (MCP) sorgeix com una capa d'abstracció que estandarditza aquesta comunicació, permetent que els agents invoquin eines de manera uniforme. En aquest article, explorarem com implementar un agent TypeScript que utilitza MCP, des de la definició d'eines fins al runtime de decisió, amb un exemple mínim però funcional. A més, analitzarem com aquesta arquitectura s'alinea amb solucions empresarials com les que ofereix Q2BSTUDIO, especialista en aplicacions a mida i serveis al núvol.
Què és MCP a la pràctica?
MCP no és l'agent, ni el motor de decisions, ni la lògica de negoci. És simplement la capa que connecta l'agent amb les eines. Pensa-hi com un adaptador universal: l'agent parla un llenguatge comú (MCP) i cada eina es registra seguint aquest mateix contracte. Això simplifica enormement l'escalabilitat, ja que afegir una nova eina només requereix implementar la interfície MCP sense modificar l'agent. Per a empreses que desenvolupen solucions d'IA personalitzades, MCP redueix el temps d'integració de setmanes a dies.
Exemple mínim: agent de cerca de vols
Construirem un agent capaç de respondre preguntes com 'Troba vols a Nova York'. El flux és simple: el runtime rep la consulta, el model (simulat) decideix quina eina cridar, i la capa MCP executa la crida. No utilitzarem un LLM real per mantenir el focus en l'estructura, però en producció s'integraria amb models com GPT-4 o Claude allotjats en núvol AWS o Azure.
Pas 1: Definir una eina
Creem una eina que busca vols. En un sistema real, aquesta eina podria residir en un servidor MCP extern, però per a l'exemple la definim localment.
type FlightInput = { origin: string; destination: string };
const flightTool = { name: 'searchFlights', execute: async (input: FlightInput) => { return { results: [ { airline: 'Delta', price: 320 }, { airline: 'United', price: 290 } ] }; } };
La clau és que tota eina ha de tenir un nom únic i un mètode execute que accepti un input tipat. Això permet que la capa MCP pugui invocar-la sense conèixer els detalls interns. En un entorn empresarial, les eines solen exposar-se mitjançant servidors MCP que validen l'autenticació i apliquen polítiques de ciberseguretat.
Pas 2: Crear la capa MCP
Implementem un client MCP mínim que registra eines i les executa per nom.
class MCPClient { private tools = new Map(); register(tool: any) { this.tools.set(tool.name, tool); } async callTool(name: string, input: unknown) { const tool = this.tools.get(name); if (!tool) throw new Error('Tool not found'); return tool.execute(input); } }
Aquest és el cor de MCP: una interfície simple que desacobla l'agent de la implementació concreta de cada eina. L'agent només necessita conèixer el nom i el tipus d'entrada. La implementació real inclouria també gestió d'errors, reintents i observabilitat, aspectes que Q2BSTUDIO integra en els seus projectes d'automatització de processos.
Pas 3: Simular la decisió del model
En un agent real, el model d'IA decideix quina acció prendre. Aquí simulem aquesta decisió amb una funció que detecta la paraula 'vol' a la consulta.
type Decision = { action: 'callTool' | 'finish'; toolName?: string; toolInput?: unknown; };
async function decide(userInput: string): Promise { if (userInput.toLowerCase().includes('vol')) { return { action: 'callTool', toolName: 'searchFlights', toolInput: { origin: 'MAD', destination: 'JFK' } }; } return { action: 'finish' }; }
Observa que la decisió és una estructura de dades, no text lliure. Això permet validar i encadenar accions de forma robusta. En producció, el LLM retornaria un JSON estructurat seguint un esquema predefinit, garantint així la integritat de les crides.
Pas 4: Muntar el runtime
El runtime orquestra el flux: registra eines, obté la decisió del model, valida i executa l'eina a través de MCP.
async function runAgent(userQuery: string) { const mcp = new MCPClient(); mcp.register(flightTool); const decision = await decide(userQuery); if (decision.action === 'callTool') { const result = await mcp.callTool(decision.toolName!, decision.toolInput); return { message: 'Vols trobats', data: result }; } return { message: 'No es requereix acció' }; }
El resultat és una resposta estructurada que l'agent pot retornar a l'usuari o processar posteriorment. Aquest patró és extensible a qualsevol domini: reserves, consultes a bases de dades, generació d'informes en Power BI, etc.
MCP vs. integració directa: per què val la pena?
Sense MCP, cada eina requeriria un client específic amb la seva pròpia lògica d'autenticació i format de petició. L'agent es tornaria monolític i difícil de mantenir. Amb MCP, l'agent només coneix la interfície. Això permet que diferents equips desenvolupin eines de forma independent. Per exemple, un equip pot crear un servidor MCP per consultar dades de vendes a Azure SQL, mentre un altre equip crea un servidor per enviar notificacions via AWS SNS. Ambdós s'integren sense conflictes. Q2BSTUDIO aplica aquest principi en els seus desenvolupaments de Business Intelligence connectant agents d'IA amb fonts de dades heterogènies.
Aspectes a considerar en producció
MCP resol la comunicació, però no la seguretat ni la fiabilitat. En un entorn empresarial, és imprescindible afegir capes d'autenticació (OAuth2, API keys), validació d'esquemes, control d'accés basat en rols, registre d'auditoria i reintents amb backoff. A més, l'observabilitat mitjançant logs i mètriques és crucial per depurar interaccions. Q2BSTUDIO integra aquestes capacitats en les seves plataformes al núvol, garantint que els agents compleixin estàndards de ciberseguretat i normatives com el GDPR.
Casos d'ús empresarial amb MCP
Imagina un assistent d'atenció al client que necessita consultar l'estoc de productes, verificar pagaments i generar tiquets. Amb MCP, cadascuna d'aquestes accions es modela com una eina independent. L'agent decideix l'ordre d'execució segons la conversa. Per a una empresa de logística, un agent podria orquestrar eines d'enrutament, actualització d'inventari i generació d'etiquetes d'enviament. Aquests sistemes es beneficien de l'escalabilitat al núvol que proporcionen AWS i Azure, serveis que Q2BSTUDIO implementa en els seus projectes de cloud computing.
A més, la integració amb Power BI permet que els resultats de les eines es visualitzin en dashboards interactius. Per exemple, un agent que recull dades de vendes pot alimentar un informe de Power BI que mostri tendències en temps real. Q2BSTUDIO combina MCP amb solucions de BI per oferir als seus clients una visió integral del negoci.
Conclusió
MCP és una peça fonamental en l'ecosistema d'agents d'IA, però no és una solució completa. Per construir sistemes robustos i llestos per a producció, necessites una arquitectura ben dissenyada que inclogui capes de seguretat, observabilitat i escalabilitat. A Q2BSTUDIO ajudem les empreses a dissenyar i implementar aplicacions a mida que integren MCP, IA generativa, núvol i ciberseguretat, creant solucions que realment aporten valor de negoci. Si estàs considerant adoptar MCP a la teva organització, et convidem a contactar amb el nostre equip per descobrir com podem accelerar la teva transformació digital.





