yads-mcp
yads-mcp
Servidor MCP que permite que cualquier agente LLM compatible con MCP (Claude Code, u otro proceso de agente accesible a través de la misma red que YADS) controle la cola, el etiquetado, la ejecución de escaneos y la gestión de objetivos/activos a través de la propia API /api/v1 de YADS, sin necesidad de un humano en el panel de control.
Es un envoltorio delgado de stdio alrededor de la API HTTP existente de YADS (/api/v1/queue/*, /api/v1/tags*, /api/v1/targets/*) — sin ruta de ejecución separada, sin omitir el alcance del tenant ni la ruta de código de despacho de escaneos. Cada acción realizada a través de aquí está sujeta al mismo aislamiento de tenant, límites de escaneos concurrentes y lógica de detección de cambios que el panel de control.
1. Crear una clave de API
Desde una máquina ya conectada a YADS (cookie de sesión), a través de /developer o del endpoint /api-keys/, crea una clave con los alcances que este agente necesita:
read— operaciones de estado/listado (queue_status, tags_list, scan_get_findings, list_targets, get_target, get_target_changes, get_scan_status, get_network_context, ...)write— mutaciones de etiquetas y mutaciones de objetivos (add_target, undo_bulk_delete_targets, bulk_archive_targets, archive_dead_targets, restore_target)scan_execute— activación de escaneos (individuales o masivos)destructive— queue_purge, tags_delete_globally, bulk_delete_targets, bulk_blocklist_targets (también requiereconfirm=Trueen la propia llamada)
Copia el token devuelto ahora — nunca se vuelve a mostrar.
Related MCP server: agentguard
2. Instalación
cd yads-mcp
python -m venv .venv
.venv/bin/pip install -e .Pruebas
.venv/bin/pip install -e ".[test]"
.venv/bin/pytest tests/ -qtests/conftest.py ejecuta YADS en proceso (Starlette TestClient) contra la misma pila de Postgres/Redis de prueba que las pruebas del propio repositorio yads (docker-compose.test.yml en ese repositorio, puertos 5433/6380) — inicia esa pila primero si estas pruebas no están pasando.
3. Configurar un cliente
Variables de entorno que el servidor necesita:
YADS_URL— p. ej.https://yads.example.comYADS_API_KEY— el token del paso 1
Claude Code
claude mcp add yads \
--env YADS_URL=https://yads.example.com \
--env YADS_API_KEY=<token> \
-- /path/to/yads-mcp/.venv/bin/python -m yads_mcp.servero añade a .mcp.json:
{
"mcpServers": {
"yads": {
"command": "/path/to/yads-mcp/.venv/bin/python",
"args": ["-m", "yads_mcp.server"],
"env": {
"YADS_URL": "https://yads.example.com",
"YADS_API_KEY": "<token>"
}
}
}
}Herramientas
Control de cola y escaneo
queue_status()queue_list_rate_limited_modules()queue_pause()/queue_resume()— a nivel de flota, no limitado al tenantqueue_cancel_task(task_id)queue_purge(confirm)— destructivo, limitado al tenant, ventana de deshacer de 60squeue_undo_purge(undo_batch)
Etiquetado y organización
tags_list()tags_add_to_target(target_id, tag)/tags_remove_from_target(target_id, tag)tags_bulk_assign(target_ids, tags, action="add"|"remove"|"replace")tags_bulk_add_by_ids(target_ids, tag)tags_delete_globally(tag_name, confirm)— destructivo, sin deshacer
Ejecución de escaneos
scan_trigger(target_url, profile="standard")scan_trigger_by_target_id(target_id, scan_types, scan_priority=None)scan_bulk_preview_count(only_roots=False, online_only=False, scanned_before=None)scan_bulk_by_criteria(scan_types, only_roots=False, online_only=False, scanned_before=None)scan_bulk_selected(target_ids, scan_types)scan_get_findings()
Gestión de objetivos y activos (Wave 2)
list_targets(tag=None, online=None, scan_status=None, domain_search=None, archived=False, last_scanned_before=None, page=1, limit=20)get_target(target_id)add_target(domain)bulk_delete_targets(target_ids, confirm)— destructivo, ventana de deshacer de 60sundo_bulk_delete_targets(undo_batch)bulk_archive_targets(target_ids)/archive_dead_targets()/restore_target(target_id)bulk_blocklist_targets(target_ids, confirm)— destructivo, sin deshacerget_target_changes(target_id, limit=30)get_scan_status(target_id)get_network_context(target_id)
Las Waves 3–10 (Informes y exportación, Hallazgos y cumplimiento, OSINT/Descubrimiento/Inteligencia, Integraciones/Webhooks/Notificaciones) se gestionan por separado, cada una con su propia especificación de diseño.
Historial de cambios
Ver CHANGELOG.md.
Licencia
MIT — ver LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLM-powered tools to manage Databricks permissions, credentials, and Git credentials via the MCP protocol.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables scanning of AI agent code for security vulnerabilities such as prompt injection, tool abuse, and data exfiltration, directly from MCP-compatible clients like Claude Code.1LGPL 3.0
- FlicenseNot gradedqualityCmaintenanceEnables LLM-powered agents to securely communicate with and orchestrate downstream microservices via FastAPI endpoints exposed as MCP tools.
- AlicenseNot gradedqualityBmaintenanceProvides a secure MCP gateway for AI agents to access APIs without exposing raw credentials, with scoped access, audit logging, and OAuth support.MIT
Related MCP Connectors
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
The bridge from K2 agents through Wrangler to your master AI - safe, approval-gated Cloudflare ops.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MrMarco74/yads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server