docs: add Spanish README - #3
Conversation
📝 WalkthroughWalkthroughSe añade ChangesREADME en español
Estimated code review effort: 1 (Trivial) | ~5 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
README.es-ES.md (1)
156-160: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAñade un lenguaje a los bloques de prompts.
Usa
```texten los cuatro bloques para cumplir MD040 y mantener la representación adecuada de texto plano.Also applies to: 164-168, 172-176, 180-184
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.es-ES.md` around lines 156 - 160, Actualiza los cuatro bloques de prompts en README.es-ES.md para declarar explícitamente el lenguaje text en sus cercas de código, usando ```text. Conserva sin cambios el contenido y la representación de texto plano de cada bloque.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.es-ES.md`:
- Around line 172-176: Actualiza el ejemplo “Lista todos los índices de todas
las colecciones” en README.es-ES.md para que especifique una colección concreta
y sea compatible con el requisito collection de la herramienta indexes; conserva
los demás ejemplos sin cambios.
- Around line 180-184: Actualiza el ejemplo en README.es-ES.md para que no
describa la herramienta deleteOne como una eliminación masiva: cambia la
instrucción a eliminar un único producto sin stock, o documenta y utiliza una
operación deleteMany si esa herramienta existe. Mantén coherencia entre la
operación mencionada y la herramienta expuesta.
- Around line 233-240: Actualiza la lista de controles de seguridad en la
sección de MongoDB para eliminar readPreference=secondary como medida de
restricción de acceso. Sustitúyelo por controles reales como roles mínimos, TLS
y restricciones de red, manteniendo los puntos existentes sobre usuarios,
permisos, auditoría y lista blanca de IPs.
- Around line 24-29: Actualiza README.es-ES.md en las secciones señaladas para
eliminar la afirmación y el ejemplo de inspección de esquemas, ya que
src/index.ts solo registra las herramientas listCollections, find, insertOne,
updateOne, deleteOne, createIndex, dropIndex e indexes. Sustitúyelos por una
capacidad documentada que exista realmente, como consultar colecciones o usar
proyecciones con find, manteniendo coherencia entre ambas apariciones.
---
Nitpick comments:
In `@README.es-ES.md`:
- Around line 156-160: Actualiza los cuatro bloques de prompts en
README.es-ES.md para declarar explícitamente el lenguaje text en sus cercas de
código, usando ```text. Conserva sin cambios el contenido y la representación de
texto plano de cada bloque.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| - 🔍 Inspección del esquema de colecciones | ||
| - 📊 Consulta y filtrado de documentos | ||
| - 📈 Gestión de índices | ||
| - 📝 Operaciones de documentos (insertar, actualizar, eliminar) | ||
| - 🔒 Acceso seguro a la base de datos mediante cadenas de conexión | ||
| - 📋 Manejo de errores y validación exhaustiva |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== README relevant sections =="
if [ -f README.es-ES.md ]; then
nl -ba README.es-ES.md | sed -n '1,80p;145,170p'
else
echo "README.es-ES.md not found"
fi
echo
echo "== src/index.ts outline =="
if [ -f src/index.ts ]; then
ast-grep outline src/index.ts --view compact || true
echo
nl -ba src/index.ts | sed -n '1,240p'
else
echo "src/index.ts not found"
fi
echo
echo "== Search for schema/tool-related identifiers =="
rg -n --hidden --glob '!node_modules' --glob '!dist' --glob '!build' 'schema|listCollections|find|insertOne|updateOne|deleteOne|createIndex|dropIndex|indexes|Tool|tool' README.es-ES.md src || true
echo
echo "== Package/workspace hints =="
for f in package.json tsconfig.json pnpm-lock.yaml package-lock.json yarn.lock; do
[ -f "$f" ] && { echo "--- $f"; sed -n '1,120p' "$f"; }
doneRepository: 1RB/mongo-mcp
Length of output: 222
🏁 Script executed:
#!/bin/sh
set -euo pipefail
echo "== README relevant sections =="
if [ -f README.es-ES.md ]; then
awk 'NR>=1 && NR<=80 || NR>=145 && NR]<=170 { printf "%5d\t%s\n", NR, $0 }' README.es-ES.md
else
echo "README.es-ES.md not found"
fi
echo
echo "== src/index.ts outline =="
if [ -f src/index.ts ]; then
command -v ast-grep >/dev/null && ast-grep outline src/index.ts --view compact || true
awk '{ printf "%5d\t%s\n", NR, $0 }' src/index.ts | sed -n '1,240p'
else
echo "src/index.ts not found"
fi
echo
echo "== Search schema/tool-related identifiers =="
rg -n --hidden --glob '!node_modules' --glob '!dist' --glob '!build' 'schema|listCollections|find|insertOne|updateOne|deleteOne|createIndex|dropIndex|indexes|Tool|tool' README.es-ES.md src || true
echo
echo "== Package/workspace hints =="
for f in package.json tsconfig.json pnpm-lock.yaml package-lock.json yarn.lock; do
[ -f "$f" ] && { echo "--- $f"; awk '{ printf "%5d\t%s\n", NR, $0 }' "$f" | sed -n '1,120p'; }
doneRepository: 1RB/mongo-mcp
Length of output: 335
🏁 Script executed:
#!/bin/sh
set -euo pipefail
echo "== README relevant sections =="
if [ -f README.es-ES.md ]; then
awk 'NR>=1 && NR<=80 || NR>=145 && NR<=170 { printf "%5d\t%s\n", NR, $0 }' README.es-ES.md
else
echo "README.es-ES.md not found"
fi
echo
echo "== src/index.ts outline =="
if [ -f src/index.ts ]; then
command -v ast-grep >/dev/null && ast-grep outline src/index.ts --view compact || true
awk '{ printf "%5d\t%s\n", NR, $0 }' src/index.ts | sed -n '1,260p'
else
echo "src/index.ts not found"
fi
echo
echo "== Search schema/tool-related identifiers =="
rg -n --hidden --glob '!node_modules' --glob '!dist' --glob '!build' 'schema|listCollections|find|insertOne|updateOne|deleteOne|createIndex|dropIndex|indexes|Tool|tool' README.es-ES.md src || true
echo
echo "== Package/workspace hints =="
for f in package.json tsconfig.json pnpm-lock.yaml package-lock.json yarn.lock; do
[ -f "$f" ] && { echo "--- $f"; awk '{ printf "%5d\t%s\n", NR, $0 }' "$f" | sed -n '1,120p'; }
doneRepository: 1RB/mongo-mcp
Length of output: 26989
No documentes inspección de esquemas sin una herramienta que la soporte.
src/index.ts solo expone listCollections, find, insertOne, updateOne, deleteOne, createIndex, dropIndex y indexes, sin una herramienta de esquema registrada. Reemplaza “Inspección del esquema de colecciones” / “Muéstrame el esquema de la colección de usuarios” por una capacidad real, como uso proyeccionado de find/listCollections.
También aplica a las líneas 156-160 de README.es-ES.md.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.es-ES.md` around lines 24 - 29, Actualiza README.es-ES.md en las
secciones señaladas para eliminar la afirmación y el ejemplo de inspección de
esquemas, ya que src/index.ts solo registra las herramientas listCollections,
find, insertOne, updateOne, deleteOne, createIndex, dropIndex e indexes.
Sustitúyelos por una capacidad documentada que exista realmente, como consultar
colecciones o usar proyecciones con find, manteniendo coherencia entre ambas
apariciones.
| ``` | ||
| "¿Qué índices existen en la colección de usuarios?" | ||
| "Crea un índice en la colección de productos para el campo 'category'" | ||
| "Lista todos los índices de todas las colecciones" | ||
| ``` |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Alinea el prompt con el requisito de colección.
La herramienta indexes requiere collection; por tanto, “Lista todos los índices de todas las colecciones” no puede ejecutarse como una sola operación. Indica una colección concreta o añade una herramienta específica para recorrer todas.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 172-172: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.es-ES.md` around lines 172 - 176, Actualiza el ejemplo “Lista todos
los índices de todas las colecciones” en README.es-ES.md para que especifique
una colección concreta y sea compatible con el requisito collection de la
herramienta indexes; conserva los demás ejemplos sin cambios.
| ``` | ||
| "Inserta un nuevo producto con nombre 'Gaming Laptop' en la colección de productos" | ||
| "Actualiza el estado del pedido con ID X a 'shipped'" | ||
| "Busca y elimina todos los productos que no tengan stock" | ||
| ``` |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
No describas deleteOne como una eliminación masiva.
El prompt solicita eliminar todos los productos sin stock, pero la herramienta expuesta es deleteOne, que solo elimina un documento por llamada. Cambia el ejemplo a una eliminación individual o añade/documenta una operación deleteMany.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 180-180: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.es-ES.md` around lines 180 - 184, Actualiza el ejemplo en
README.es-ES.md para que no describa la herramienta deleteOne como una
eliminación masiva: cambia la instrucción a eliminar un único producto sin
stock, o documenta y utiliza una operación deleteMany si esa herramienta existe.
Mantén coherencia entre la operación mencionada y la herramienta expuesta.
| 1. **Crea un usuario de MongoDB dedicado** con los permisos mínimos necesarios para tu caso de uso. | ||
| 2. **Nunca uses credenciales de administrador** en entornos de producción. | ||
| 3. **Habilita el registro de acceso (logging)** para fines de auditoría. | ||
| 4. **Establece permisos de lectura/escritura adecuados** en las colecciones. | ||
| 5. **Usa parámetros de la cadena de conexión** para restringir el acceso (por ejemplo, `readPreference=secondary`). | ||
| 6. **Considera la lista blanca de IPs** para restringir el acceso a la base de datos. | ||
|
|
||
| ⚠️ **IMPORTANTE**: Sigue siempre el principio de privilegio mínimo al configurar el acceso a la base de datos. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
No presentes readPreference=secondary como control de acceso.
Ese parámetro dirige las lecturas a un secundario; no limita usuarios, colecciones, IPs ni permisos. Retíralo de esta lista de controles de seguridad o descríbelo como una opción de enrutamiento/rendimiento, y documenta en su lugar roles mínimos, TLS y restricciones de red.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.es-ES.md` around lines 233 - 240, Actualiza la lista de controles de
seguridad en la sección de MongoDB para eliminar readPreference=secondary como
medida de restricción de acceso. Sustitúyelo por controles reales como roles
mínimos, TLS y restricciones de red, manteniendo los puntos existentes sobre
usuarios, permisos, auditoría y lista blanca de IPs.
Adds README.es-ES.md alongside the original documentation.
Summary by CodeRabbit