MCP en ColdFusion: conecta tu app a agentes de IA
MCP (Model Context Protocol) es un estándar abierto que permite a un agente de IA (como Claude o GPT) conectarse a herramientas y datos externos de forma estandarizada. En ColdFusion 2025 Update 8, Adobe agregó soporte nativo para MCP, así que ya podés exponer funciones de tu aplicación CFML como "herramientas" que un LLM puede invocar directamente, sin escribir un adaptador REST personalizado para cada modelo.
¿Qué es MCP y por qué le importa a un desarrollador ColdFusion?
Antes de MCP, si querías que un agente de IA consultara tu base de datos o ejecutara una acción en tu sistema, tenías que construir un endpoint a la medida y esperar que el modelo lo "entendiera" con prompts largos. MCP resuelve esto con un protocolo común: tu servidor describe qué herramientas ofrece (con nombre, parámetros y descripción), y cualquier cliente compatible (Claude Desktop, un IDE con agente, o tu propia app) puede descubrirlas y usarlas automáticamente.
- Tu servidor MCP en ColdFusion expone "tools" (funciones), "resources" (datos) y opcionalmente "prompts".
- El agente de IA decide cuándo llamar a cada herramienta según la conversación.
- No dependés de un LLM en particular: funciona con OpenAI, Claude, Gemini, Mistral o incluso Ollama local.
¿Qué necesitás antes de empezar?
- Adobe ColdFusion 2025 (Update 8 o superior) instalado, o BoxLang con el módulo MCP de Ortus.
- Un cliente compatible con MCP para probar (Claude Desktop es el más simple para arrancar).
- Acceso a la carpeta de configuración del servidor de administración de ColdFusion.
¿Cómo se crea un servidor MCP en ColdFusion paso a paso?
- Habilitá el framework de IA en el CF Administrator, sección "AI Services", activando la opción "Enable MCP Server".
- Creá un componente CFC que actúe como definición de herramienta.
- Registrá ese componente en el archivo de configuración MCP.
- Levantá el servidor MCP y probalo con un cliente.
- Conectá el cliente de IA (Claude Desktop u otro) apuntando a tu endpoint local.
Paso 1: definir una herramienta (tool) en CFML
Creá un CFC que exponga una función con metadata clara. ColdFusion usa esa metadata para generar el schema que el LLM necesita para saber qué parámetros mandar.
component displayname="InventoryTools" hint="Herramientas MCP para consultar inventario" {
remote struct function buscarProducto(required string nombre) mcpTool="true"
hint="Busca un producto por nombre en el inventario y devuelve stock y precio" {
var qry = queryExecute(
"SELECT nombre, stock, precio FROM productos WHERE nombre LIKE :n",
{ n: { value: "%#arguments.nombre#%", cfsqltype: "cf_sql_varchar" } },
{ datasource: "appDS" }
);
return {
"encontrado": qry.recordCount GT 0,
"resultados": queryToArray(qry)
};
}
private array function queryToArray(required query qry) {
var arr = [];
for (var row in arguments.qry) {
arrayAppend(arr, row);
}
return arr;
}
}
El atributo mcpTool="true" le indica al motor de ColdFusion que esta función debe publicarse como herramienta MCP, usando el hint como descripción para el LLM.
Paso 2: registrar el servidor MCP
En el archivo mcp-config.json (dentro de {cf_root}/config/ai/) declarás qué componentes se exponen y bajo qué nombre de servidor.
{
"mcpServer": {
"name": "inventario-mcp",
"version": "1.0.0",
"transport": "http",
"port": 8090,
"tools": [
{
"component": "cfc.InventoryTools",
"functions": ["buscarProducto"]
}
]
}
}
Este archivo le dice al servidor MCP embebido en ColdFusion qué CFC cargar, en qué puerto escuchar y qué transporte usar (HTTP o stdio).
Paso 3: levantar y probar el servidor
- Reiniciá el servicio de ColdFusion para que tome la nueva configuración MCP.
- Verificá que el servidor esté vivo con una petición de descubrimiento:
curl http://localhost:8090/mcp/discoverEsto debería devolver un JSON con la lista de herramientas disponibles, incluyendo buscarProducto y su schema de parámetros generado automáticamente.
Paso 4: conectar un cliente de IA
Si usás Claude Desktop, agregá tu servidor en su archivo de configuración de MCP servers:
{
"mcpServers": {
"inventario": {
"url": "http://localhost:8090/mcp"
}
}
}
Reiniciá el cliente y probá con un mensaje como "¿cuánto stock hay del producto teclado?". El agente debería detectar que tiene disponible la herramienta buscarProducto, llamarla con el parámetro correcto y responder usando el resultado real de tu base de datos.
¿Cómo se combina MCP con RAG en ColdFusion?
Además de MCP, Update 8 trae soporte de RAG (Retrieval-Augmented Generation) con vector stores nativos. Podés usar ambos juntos: MCP para acciones (consultar, crear, actualizar) y RAG para que el agente responda con contexto de documentos indexados, como manuales o políticas internas.
- MCP = el agente ejecuta funciones de tu sistema.
- RAG = el agente busca información en documentos vectorizados antes de responder.
- Podés combinar ambos en el mismo servidor MCP definiendo una tool que internamente haga la búsqueda vectorial.
¿Funciona MCP con BoxLang?
Sí. BoxLang, el lenguaje moderno de Ortus compatible con CFML, también soporta el protocolo MCP a través de módulos de ColdBox 8. La sintaxis de componentes es prácticamente idéntica, así que el CFC de ejemplo de arriba funciona con mínimos ajustes si migrás tu proyecto a BoxLang.
Preguntas frecuentes sobre MCP en ColdFusion
¿Necesito instalar algo adicional para usar MCP en ColdFusion?
No, si tenés ColdFusion 2025 Update 8 o superior, el soporte MCP viene integrado en el framework de IA nativo. Solo hay que habilitarlo desde el CF Administrator.
¿MCP reemplaza a los servicios REST tradicionales?
No los reemplaza, los complementa. MCP es específico para que agentes de IA descubran e invoquen funciones de forma estandarizada; seguís pudiendo tener tus APIs REST normales para otros consumidores.
¿Puedo usar MCP con modelos locales como Ollama?
Sí, el framework de IA de ColdFusion 2025 soporta Ollama como proveedor local, y el servidor MCP funciona igual sin importar qué LLM esté del otro lado.
¿Es seguro exponer funciones de mi base de datos vía MCP?
Solo si controlás bien los permisos. Usá siempre parámetros con cfsqltype, validá los argumentos que llegan del agente, y combiná esto con las nuevas opciones de seguridad de Update 8 como passkeys y hashing con Argon2 para proteger el acceso al servidor.