Cap 7: MCP Servers e Integración

Por: Artiko
claude-certifiedmcptoolsintegraciónbuilt-in

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:

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:

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:

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ónTool
Cambiar una línea o bloque específicoEdit
El texto a reemplazar es único en el archivoEdit
El texto no es único (Edit falla)Read → Write (reescribir)
Crear archivo nuevoWrite
Reescritura completa del archivoRead → 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 →