Clase 153 — MCP (Model Context Protocol): herramientas y datos para LLMs
Parte: 2 — Deep Learning · Fuente: MCP spec (Anthropic 2024). ⏱️ Duración estimada: 80 min.
🎯 Objetivo
Aprender MCP (Model Context Protocol) — estándar abierto publicado por Anthropic en noviembre 2024 que define cómo un LLM se conecta a herramientas externas (filesystems, databases, APIs, search engines, etc.). Antes de MCP, cada framework (LangChain, LlamaIndex, OpenAI plugins) tenía API propia. MCP unifica → portabilidad entre LLMs y clients.
📚 Resultados de aprendizaje
Al finalizar, el estudiante podrá:
- Explicar la arquitectura MCP: client, server, resources, tools, prompts.
- Conectar MCP servers existentes a Claude Desktop, Cursor, Zed.
- Escribir un MCP server propio en Python (con
fastmcp). - Diferenciar MCP de tool use clásico de OpenAI / LangChain.
- Usar MCP servers populares: filesystem, postgres, git, slack, brave-search.
🗺️ Temas
- Cliente (LLM app) vs Server (provee tools/resources/prompts).
- Transport: stdio (local) y SSE (network).
- Resources: read-only data (archivos, DB rows).
- Tools: funciones invocables (search, write).
- Prompts: templates reusables.
- Discovery: el client descubre dinámicamente qué hay disponible.
📖 Definiciones y características
- MCP server: programa que expone resources/tools/prompts via JSON-RPC.
- MCP client: typically un LLM app (Claude Desktop, Cursor, IDE plugins).
- Resource URI: e.g.,
file:///path/to/x,postgres://db/table. - Tool schema: JSON Schema describing inputs/outputs.
- fastmcp: librería Python para escribir servers MCP rápido.
📂 Dataset / recursos
- MCP servers oficiales.
- Librerías:
mcp(Python SDK),fastmcp.
🧪 Ejercicios
- Conectar server existente: instalar
mcp-server-filesystemen Claude Desktop. Hacer queries sobre archivos del file system. - Server propio: con
fastmcp, exponer un toolsearch_docs(query)sobre un corpus local. - Resource: exponer archivos
.mdcomo resources lectura. - Prompt template: definir
summarize(file_uri)como prompt reusable. - Multi-server: conectar 2-3 servers simultáneos a Claude Desktop; usar conjuntamente.
📝 Homework verificable
MCP server propio para RAG sobre documentación:
fastmcpcon toolsearch(query)que usa el RAG de clase 129.- Resource
list_documents()que lista archivos indexados. - Conectar a Claude Desktop; usarlo en una conversación.
- Comparar UX vs hacer RAG manual en código.
Criterio de aceptación: el LLM cliente puede llamar al search tool naturalmente y trae resultados relevantes.
⚠️ Errores comunes
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Server no aparece en client | Config mal en ~/.config/claude/.... Fix: ver docs del client. |
| Tool schema rejected | JSON Schema inválido. Fix: validar con un validator. |
| stdio server no inicia | Path al executable mal. Fix: paths absolutos. |
| Server lento | Llamadas síncronas. Fix: usar async def tools. |
| Cliente no encuentra resource | URI mal formado. Fix: schema correcto. |
❓ Preguntas frecuentes
❓ ¿MCP vs LangChain tools?
LangChain tools son Python objects acoplados al framework. MCP es un protocol — funciona con cualquier LLM client que lo soporte. Más portable.
❓ ¿OpenAI plugins / GPTs?
Más cerrados, especificos a OpenAI. MCP open + multi-vendor.
❓ Servers existentes utiles?
filesystem, git, postgres, sqlite, slack, brave-search, fetch (HTTP), memory, github, gdrive — muchos en el repo oficial.
❓ Seguridad?
Cada server corre con permisos del usuario. Cuidado con qué exponés. Auditar antes de instalar de terceros.
❓ ¿OpenAI agrega MCP?
Anthropic open-sourceó el spec; otros vendors lo están adoptando (Microsoft Copilot Studio, etc.). Está volviéndose estándar.
🔗 Referencias
- MCP spec.
- MCP servers official repo.
- fastmcp.
- Anthropic blog (Nov 2024), Introducing the Model Context Protocol.
📥 Material descargable
- 📄 Guía explicativa (PDF) — versión imprimible con todo el contenido de la clase.
- 🎞️ Presentación (PPTX) — deck PowerPoint listo para proyectar en clase.
- 🧮 Notebook ejecutable (.ipynb) — abrilo desde el laboratorio del programa o desde Jupyter.