API MCP para scraping de marinas y gestión de HTML histórico
This server has significant definition quality gaps. Of 7 tools, 6 lack required parameter descriptions, all lack return type documentation, and 5 have sparse input schemas. Names are mostly action-oriented, but descriptions vary widely in quality. trigger_scrape is especially problematic: it has an empty input schema {} yet the docstring describes behavior that depends on hardcoded URLs, making it unmaintainable. get_marina_content has a proper schema but lacks output documentation. Destructive operations (cleanup_history) lack confirmation patterns and detailed error guidance.
Elimina de marinas_history todos los registros anteriores a `cutoff_date` (YYYY-MM-DD). Devuelve cuántas filas se borraron.
Retrieves marina content including PDF text and tariff information from the database
Devuelve la lista histórica con html_bruto y pdf_text.
Comprueba la conectividad con la base de datos. Devuelve {"status": "ok"} si la conexión y un SELECT trivial funcionan, o {"status": "error", "detail": "..."} en caso contrario.
Para un marina_id dado, devuelve la lista de fechas (YYYY-MM-DD) para las que hay HTML en marinas_history.
Devuelve la lista de todos los IDs de marina registrados.
Descarga HTML o, si la URL acaba en .pdf, el texto plano del PDF. Guarda: • html_bruto (solo HTML) • pdf_text (solo texto de PDFs)
trigger_scrape has empty input schema {} but docstring implies URL parameters. This is a critical mismatch, LLMs cannot parameterize which URLs to scrape, and the tool's URLs are hardcoded, making it inflexible for multi-marina deployments.
All 7 tools lack documented return types / output schemas. LLMs cannot plan downstream calls when they don't know what fields to expect. E.g., get_marina_content returns {id, pdf_text, tarifas, updated_at} but this is visible only by reading the code, not in any schema or description.
list_marinas, list_history_dates, and get_marina_history have no pagination support (no limit, offset, page_size parameters). If a marina has 10,000 history entries, the tool returns all of them, blowing the context window. Missing limit parameter violates baseline pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 10 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 42 | - | v1 |
cleanup_history is a destructive operation (DELETE) with no dry-run, confirmation, or detailed error guidance. Calling it with cutoff_date='2025-01-01' will silently delete potentially years of historical data. No recovery mechanism documented.
get_marina_content returns {error: 'Tarifas no encontradas'} on missing data, but this is a bare string with no guidance on next steps. Should be: 'Marina "xxx" not found. Call list_marinas() to see available marinas.' Prevents agent self-correction.
trigger_scrape and other tools do not declare permission scopes (read:marinas, write:marinas, delete:marinas). No audit trail visible, who called what is not logged to a security/compliance layer.