Cap 7: MCP Servers e Integración
MCP Server Scoping
Los MCP servers se configuran en dos niveles con alcances diferentes:
Project-level: .mcp.json
Archivo en la raíz del proyecto, versionado con git. Todos los miembros del equipo comparten esta configuración:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
La sintaxis ${GITHUB_TOKEN} expande variables de entorno del shell del usuario. Esto permite compartir la configuración sin exponer secretos — cada desarrollador tiene su propio token en su environment.
User-level: ~/.claude.json
Configuración personal, no compartida via version control. Útil para tools que solo un usuario necesita:
{
"mcpServers": {
"personal-notes": {
"command": "node",
"args": ["/home/user/tools/notes-server.js"]
}
}
}
Disponibilidad simultánea
Al conectar, todos los tools de todos los MCP servers configurados están disponibles simultáneamente para Claude. Si tienes 3 servers con 5 tools cada uno, Claude ve 15 tools. Esto tiene implicaciones para la selección (ver Cap 8 sobre límites de tools por agente).
MCP Resources
Además de tools, MCP servers pueden exponer resources — datos de solo lectura que proporcionan contexto:
- Issue summaries: resúmenes de tickets abiertos en un proyecto
- Database schemas: estructura de tablas y relaciones
- API catalogs: endpoints disponibles con sus contratos
- Configuration: valores actuales de feature flags o settings
Los resources son útiles para que Claude tenga contexto sin necesidad de invocar un tool. Son como “documentos de referencia” que el server expone.
Estrategia: comunitario vs custom
Preferir MCP servers comunitarios existentes
Para integraciones con servicios populares (Jira, Slack, GitHub, Linear), usa servers de la comunidad. Están probados, mantenidos, y cubren los casos de uso comunes:
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-server-jira"],
"env": { "JIRA_TOKEN": "${JIRA_TOKEN}" }
}
}
}
Reservar custom servers para workflows específicos
Construye un MCP server custom solo cuando:
- Tu equipo tiene un workflow interno que ningún server comunitario cubre
- Necesitas integrar con sistemas propietarios internos
- Requieres lógica de negocio específica en las operaciones
No reinventes el wheel para integraciones estándar.
Built-in Tools de Claude Code
Claude Code incluye tools nativos que no requieren configuración MCP:
Grep — content search
Busca contenido dentro de archivos por patrón regex:
Grep: patrón="handleSubmit", tipo="ts"
→ Lista de archivos que contienen "handleSubmit"
Ideal para encontrar funciones, variables, imports, patrones de código.
Glob — file patterns
Busca archivos por patrón de nombre:
Glob: patrón="src/**/*.test.ts"
→ Lista de archivos de test en src/
Ideal para descubrir estructura del proyecto, encontrar archivos por convención de naming.
Read — leer archivos
Lee el contenido completo de un archivo con números de línea:
Read: path="/src/components/Button.tsx"
→ Contenido del archivo con líneas numeradas
Soporta offset y limit para archivos grandes, lectura de imágenes y PDFs.
Write — escribir archivos
Escribe contenido completo a un archivo (crea o sobreescribe):
Write: path="/src/utils/helpers.ts", content="..."
→ Archivo creado/reemplazado
Usar para archivos nuevos o reescrituras completas.
Edit — modificaciones targeted
Reemplaza un string exacto dentro de un archivo:
Edit: path="/src/config.ts", old="port: 3000", new="port: 8080"
→ Reemplazo exitoso
Requisito: el old_string debe ser único en el archivo. Si no es único, Edit falla.
Cuándo usar Edit vs Read+Write
| Situación | Tool |
|---|---|
| Cambiar una línea o bloque específico | Edit |
| El texto a reemplazar es único en el archivo | Edit |
| El texto no es único (Edit falla) | Read → Write (reescribir) |
| Crear archivo nuevo | Write |
| Reescritura completa del archivo | Read → Write |
Regla: intenta Edit primero. Si falla por falta de unicidad, haz Read del archivo completo y luego Write con el contenido modificado.
Bash — system commands
Ejecuta comandos del sistema operativo:
Bash: command="npm test -- --coverage"
→ Output del comando
Para compilar, ejecutar tests, gestionar git, instalar dependencias, etc.
Construir comprensión del codebase incrementalmente
Claude Code construye su entendimiento del proyecto paso a paso usando los built-in tools en una secuencia lógica:
Paso 1: Grep — descubrir dónde está algo
"¿Dónde se usa la función createOrder?"
→ Grep: patrón="createOrder"
→ Encuentra: src/services/order.ts, src/api/routes.ts, src/tests/order.test.ts
Paso 2: Read — entender qué hace
→ Read: src/services/order.ts
→ Ve la implementación, las dependencias, los tipos
Paso 3: Trace flows — seguir la cadena
→ Lee el archivo que importa order.ts
→ Grep: funciones que llaman a createOrder
→ Read de cada caller
→ Construye el flujo completo: API → Service → Repository
Esta secuencia Grep → Read → trace es el patrón fundamental para que Claude entienda cualquier codebase sin documentación previa.
← Cap 6: Diseño de Tools · Índice · Cap 8: Errores y tool_choice →