Tabla de Contenidos
MCP
Qué es un servidor MCP está en Conceptos básicos. Aquí, cuáles se instalan: dos y ninguno más.
Todo lo demás el agente ya lo hace con sus herramientas y con las órdenes de siempre: git, gh, ./mvnw, curl. Un MCP para eso ocupa contexto en cada sesión y no aporta nada.
Los dos se instalan en el proyecto, para que viajen en el repositorio y los tenga todo el equipo:
- Claude Code:
claude mcp addcon--scope project, que lo guarda en.mcp.json, en la raíz. Sin él se guarda solo para esa carpeta y en otro worktree no estaría. - OpenCode: en la clave
mcpdeopencode.json, en la raíz.
1. Context7
Context7 le da al agente la documentación actual de la librería que está usando. Sin él, escribe el código de la versión que recuerda, que no es la que tiene el proyecto: métodos que ya no existen, configuración que ha cambiado.
- Claude Code:
claude mcp add --scope project context7 -- npx -y @upstash/context7-mcp
- OpenCode:
{
"mcp": {
"context7": { "type": "local", "command": ["npx", "-y", "@upstash/context7-mcp"] }
}
}
Sin la API key que pone la página de Context7: no hace falta y acabaría en el repositorio.
El agente no lo usa solo siempre que debería. Se le dice en AGENTS.md, con cuándo:
- Antes de usar una API de Spring Boot o de Angular, consulta su documentación con Context7.
2. Base de datos: DBHub
DBHub deja al agente consultar la base de datos de desarrollo: ver el esquema real antes de diseñar una migración, escribir una consulta y probarla, o comprobar qué ha guardado un test que falla. Vale para PostgreSQL, MySQL, MariaDB, SQL Server, Oracle y SQLite.
Se configura con un dbhub.toml en la raíz:
[[sources]]
id = "pedidos"
dsn = "postgres://pedidos:${DB_PASSWORD}@localhost:5432/pedidos"
[[tools]]
name = "execute_sql"
source = "pedidos"
readonly = true
max_rows = 100
dsn: la conexión. La contraseña sale de la variable de entornoDB_PASSWORD, así el fichero se puede subir al repositorio. En MySQL:mysql://pedidos:${DB_PASSWORD}@localhost:3306/pedidos.readonly = true: solo consultas. Los datos los cambia la aplicación o una migración, no el agente.max_rows: lo que devuelve una consulta entra en el contexto. Cien filas bastan para ver cómo son los datos.
Y se da de alta apuntando a ese fichero:
- Claude Code:
claude mcp add --scope project basedatos -- npx -y @bytebase/dbhub@latest --config dbhub.toml
- OpenCode:
{
"mcp": {
"basedatos": { "type": "local", "command": ["npx", "-y", "@bytebase/dbhub@latest", "--config", "dbhub.toml"] }
}
}
DB_PASSWORD no está definida, DBHub no avisa: deja el texto ${DB_PASSWORD} tal cual como contraseña y lo que falla es la conexión. Ante un error de autenticación, lo primero, echo $DB_PASSWORD en la terminal desde la que se arrancó el agente.
3. Comprobar que están conectados
- Claude Code:
/mcpdentro de la sesión lista los servidores y si han arrancado. - OpenCode:
opencode mcp list
Más información
- Context7: instalación en cada agente y librerías disponibles.
- DBHub: configuración TOML: varias bases de datos a la vez,
readonly,max_rowsy herramientas propias con SQL fijo.
