search-scrape
Scraping sigiloso autoalojado y búsqueda federada para agentes de IA. Una alternativa 100% privada y gratuita a Firecrawl, Jina Reader y Tavily. Con omisión universal de antibots + memoria de investigación semántica, configuración de copiar y pegar.
Documentación
CortexScout (cortex-scout) — Motor de búsqueda y extracción web para agentes de IA
CortexScout es el módulo de Deep Research y Extracción Web dentro del ecosistema Cortex-Works.
Diseñado para cargas de trabajo de agentes que requieren recuperación web eficiente en tokens, manejo confiable anti-bot y respaldo opcional de Human-in-the-Loop (HITL).
Resumen
CortexScout proporciona un único binario Rust autoalojable que expone capacidades de búsqueda, extracción y automatización de navegador con estado a través de MCP (stdio) y un servidor HTTP opcional. Los formatos de salida están estructurados y optimizados para el uso posterior de LLM.
Está construido para manejar los modos de fallo prácticos de la recuperación web (límites de tasa, desafíos de bots, páginas con mucho JavaScript) mediante respaldos progresivos: recuperación nativa → renderizado CDP de Chromium → Pruebas E2E con estado → flujos de trabajo HITL.
Herramientas (Lista de capacidades)
| Área | Herramientas MCP / Capacidades |
|---|---|
| Búsqueda | web_search (descubrimiento de URL) o web_search(include_content=true) (búsqueda+contenido en una sola llamada) |
| Obtención y rastreo | `web_fetch(mode="single" |
| Extracción | extract_fields (extracción estructurada primaria) |
| Automatización | scout_browser_automate / browser_automate (omni-herramienta con estado), scout_agent_profile_auth, scout_browser_close |
| Manejo anti-bot | renderizado CDP, rotación de proxy, reintentos conscientes de bloqueo |
| HITL | visual_scout, `hitl_web_fetch(auth_mode="challenge" |
| Memoria | memory_search (historial de investigación respaldado por LanceDB) |
| Investigación profunda | deep_research (búsqueda de múltiples saltos + raspado + síntesis) |
Los nombres heredados siguen siendo invocables como alias de compatibilidad (web_search_json, web_fetch_batch, web_crawl, fetch_then_extract, human_auth_session). Los agentes deben preferir las herramientas primarias unificadas anteriores.
Integración con el ecosistema
Aunque CortexScout funciona como una herramienta independiente hoy, está diseñado para integrarse con CortexDB y CortexStudio para escalado multi-agente, artefactos de recuperación compartidos y gobernanza centralizada.
🎭 El "Playwright Killer" (Automatización de navegador con estado)
CortexScout incluye un motor de automatización CDP integrado y con estado, diseñado específicamente para agentes de IA, reemplazando por completo marcos pesados como Playwright o Cypress para flujos de trabajo de pruebas E2E.
- La Omni-Herramienta Silenciosa (
scout_browser_automate): En lugar de llamar a docenas de herramientas de navegador, los agentes pasan un array desteps. El runtime ahora cubre familias de acciones estilo Playwright en una sola llamada: navegación, hover/clic/escribir/esperar, acciones basadas en localizadores, aserciones, pestañas, capturas de pantalla/PDF, carga de archivos, relleno de formularios, política de diálogos, acciones de ratón por coordenadas, simulación de rutas, captura de consola/red y CRUD de cookies/almacenamiento. - Perfil de Agente Persistente: La automatización se ejecuta silenciosamente en segundo plano (
--headless=new) usando un perfil aislado dedicado (~/.cortex-scout/agent_profile). Mantiene cookies, localStorage y estado de sesión entre llamadas de herramientas sin causar colisiones deSingletonLockcon tu navegador de escritorio activo. - Motor de Simulación, Trazado y Verificación de QA: Los agentes pueden instalar simulaciones de rutas (
mock_api,route_list,unroute) con anulaciones/eliminación de encabezados de respuesta, flujos de trazado (trace_start,trace_stop,trace_export), capturar registros de consola/red, verificar el estado del navegador y ejecutar aserciones basadas en CSS y localizadores, además de ayudantes de verificación estilo Playwright. - El Portal de Autenticación del Agente (
scout_agent_profile_auth): Si el agente silencioso encuentra un CAPTCHA o un inicio de sesión OAuth complejo (como Google/Microsoft) en un nuevo dominio, esta herramienta lanza el perfil del agente en una ventana visible. Resuelves el CAPTCHA una vez, las cookies se guardan y el agente vuelve a la automatización silenciosa para siempre.
Mapa de cobertura estilo Playwright
| Área de capacidad | Acciones de Cortex Scout |
|---|---|
| Navegación y entrada | navigate, navigate_back, click, hover, type, press_key, scroll, wait_for, wait_for_selector, wait_for_locator |
| Localizador y verificación | click_locator, type_locator, assert, assert_locator, generate_locator, verify_element_visible, verify_text_visible, verify_list_visible, verify_value |
| Pestañas y medios | tabs, resize, screenshot, snapshot, pdf_save, file_upload, fill_form, handle_dialog |
| Red y simulaciones | network_tap, network_dump, network_state_set, mock_api, route_list, unroute |
| Estado del navegador | storage_clear, storage_state_export, storage_state_import, storage_checkpoint, storage_rollback, cookie_*, localstorage_*, sessionstorage_* |
| Control de puntero de bajo nivel | mouse_click_xy, mouse_down, mouse_move_xy, mouse_drag_xy, mouse_up, mouse_wheel |
La principal compensación frente al Playwright MCP puro es el empaquetado, no la forma de las capacidades: Cortex Scout mantiene la superficie del navegador dentro de una omni-herramienta con estado, de modo que los agentes gastan menos turnos y menos tokens coordinando flujos de múltiples pasos.
Eficacia anti-bot y validación
Este repositorio incluye artefactos de evidencia capturados que validan flujos de extracción y HITL contra objetivos protegidos representativos.
| Objetivo | Protección | Evidencia | Notas |
|---|---|---|---|
| Cloudflare + Auth | JSON · Fragmento | Extracción de listados con autenticación | |
| Ticketmaster | Cloudflare Turnstile | JSON · Fragmento | Extracción con manejo de desafíos |
| Airbnb | DataDome | JSON · Fragmento | Conjuntos de resultados grandes bajo controles de bots |
| Upwork | reCAPTCHA | JSON · Fragmento | Recuperación de listados protegidos |
| Amazon | AWS Shield | JSON · Fragmento | Extracción de resultados de búsqueda |
| nowsecure.nl | Cloudflare | JSON | Ruta de retorno manual validada |
Consulta proof/README.md para la metodología y los resultados sin procesar.
Inicio rápido
Opción A — Binarios precompilados
Descarga los últimos archivos de lanzamiento desde GitHub Releases y ejecuta uno de:
cortex-scout-mcp— servidor MCP stdio (recomendado para VS Code / Cursor / Claude Desktop)cortex-scout— servidor HTTP opcional (puerto predeterminado5000; anular mediante--port,PORToCORTEX_SCOUT_PORT)
Verificación de salud (servidor HTTP):
./cortex-scout --port 5000
curl http://localhost:5000/health
Opción B — Compilar desde el código fuente
Instala protoc primero. lance-encoding usa Protocol Buffers durante la compilación de lanzamiento, por lo que protoc debe estar en tu PATH.
- macOS:
brew install protobuf - Ubuntu/Debian:
sudo apt-get install -y protobuf-compiler - Fedora:
sudo dnf install -y protobuf-compiler
Compilación básica (búsqueda, raspado, investigación profunda, memoria):
git clone https://github.com/cortex-works/cortex-scout.git
cd cortex-scout
cargo build --release --manifest-path mcp-server/Cargo.toml --bin cortex-scout-mcp
Esto funciona desde la raíz del repositorio porque la ruta del manifiesto es explícita.
Compilación completa (incluye hitl_web_fetch / HITL con navegador visible):
cargo build --release --manifest-path mcp-server/Cargo.toml --all-features --bin cortex-scout-mcp
Si también deseas el binario del servidor HTTP opcional, compílalo explícitamente con cargo build --release --bin cortex-scout.
Prueba de humo local de MCP:
python3 publish/ci/smoke_mcp.py
Esto ejecuta una sesión stdio JSON-RPC delimitada por nuevas líneas contra el binario local cortex-scout-mcp y ejercita las principales herramientas públicas con entradas de ejemplo seguras.
Integración MCP (VS Code / Cursor / Claude Desktop)
Agrega una entrada de servidor a tu configuración MCP.
VS Code (mcp.json — global, o settings.json bajo mcp.servers):
Las variables de protección de tiempo de espera estricto a continuación son obligatorias en las configuraciones MCP. Son la barandilla de seguridad que evita que una página defectuosa, un lanzamiento de navegador atascado o una etapa de raspado bloqueada mantengan toda la sesión MCP abierta indefinidamente.
// mcp.json (global): top-level key is "servers"
// settings.json (workspace): use "mcp.servers" instead
{
"servers": {
"cortex-scout": {
"type": "stdio",
"command": "env",
"args": [
"RUST_LOG=warn",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS=90",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS_SCRAPE_URL=90",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS_SEARCH_STRUCTURED=120",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS_VISUAL_SCOUT=45",
"CORTEX_SCOUT_BROWSER_LAUNCH_TIMEOUT_SECS=12",
"CORTEX_SCOUT_BROWSER_TAB_PROBE_TIMEOUT_SECS=4",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS=20",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_CDP_INITIAL_ATTEMPT=25",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_CDP_RETRY_ATTEMPT=25",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_FORCED_CDP_ATTEMPT=25",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_NATIVE_CDP_FALLBACK=25",
"SEARCH_ENGINES=google,bing,duckduckgo,brave",
"LANCEDB_URI=/YOUR_PATH/cortex-scout/lancedb",
"HTTP_TIMEOUT_SECS=30",
"MAX_CONTENT_CHARS=10000",
"/YOUR_PATH/cortex-scout/mcp-server/target/release/cortex-scout-mcp"
]
}
}
}
El comportamiento predeterminado es directo/sin proxy. Agrega IP_LIST_PATH y PROXY_SOURCE_PATH solo si deseas que las herramientas de proxy estén disponibles. Si deseas que proxy_control esté disponible sin enrutar el tráfico normal a través de proxies, apunta IP_LIST_PATH a un archivo ip.txt vacío y deja que los agentes lo llenen bajo demanda.
Importante: Usa siempre
RUST_LOG=warn, noinfo. A nivel deinfo, el servidor emite cientos de líneas de registro por solicitud a stderr, lo que puede confundir a los clientes MCP que monitorean stderr.
Windows: Windows no tiene el comando
env. Usa el formato de objetocommand+enven su lugar — consulta docs/IDE_SETUP.md.
Con investigación profunda (síntesis LLM a través de OpenRouter / cualquier API compatible con OpenAI):
{
"servers": {
"cortex-scout": {
"type": "stdio",
"command": "env",
"args": [
"RUST_LOG=warn",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS=90",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS_SCRAPE_URL=90",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS_SEARCH_STRUCTURED=120",
"CORTEX_SCOUT_TOOL_TIMEOUT_SECS_VISUAL_SCOUT=45",
"CORTEX_SCOUT_BROWSER_LAUNCH_TIMEOUT_SECS=12",
"CORTEX_SCOUT_BROWSER_TAB_PROBE_TIMEOUT_SECS=4",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS=20",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_CDP_INITIAL_ATTEMPT=25",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_CDP_RETRY_ATTEMPT=25",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_FORCED_CDP_ATTEMPT=25",
"CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_NATIVE_CDP_FALLBACK=25",
"SEARCH_ENGINES=google,bing,duckduckgo,brave",
"LANCEDB_URI=/YOUR_PATH/cortex-scout/lancedb",
"HTTP_TIMEOUT_SECS=30",
"MAX_CONTENT_CHARS=10000",
"OPENAI_BASE_URL=https://openrouter.ai/api/v1",
"OPENAI_API_KEY=sk-or-v1-...",
"DEEP_RESEARCH_LLM_MODEL=moonshotai/kimi-k2.5",
"DEEP_RESEARCH_ENABLED=1",
"DEEP_RESEARCH_SYNTHESIS=1",
"DEEP_RESEARCH_SYNTHESIS_MAX_TOKENS=4096",
"/YOUR_PATH/cortex-scout/mcp-server/target/release/cortex-scout-mcp"
]
}
}
}
Guía multi-IDE: docs/IDE_SETUP.md
Configuración (cortex-scout.json)
Crea cortex-scout.json en el mismo directorio que el binario (o la raíz del repositorio). Todos los campos son opcionales; las variables de entorno actúan como respaldo.
{
"deep_research": {
"enabled": true,
"llm_base_url": "http://localhost:1234/v1",
"llm_api_key": "",
"llm_model": "lfm2-2.6b",
"synthesis_enabled": true,
"synthesis_max_sources": 3,
"synthesis_max_chars_per_source": 800,
"synthesis_max_tokens": 1024
}
}
Variables de entorno clave
Núcleo
| Variable | Predeterminado | Descripción |
|---|---|---|
RUST_LOG | warn | Nivel de registro. Mantén warn para MCP stdio — info inunda stderr y confunde a los clientes MCP |
HTTP_TIMEOUT_SECS | 30 | Tiempo de espera de lectura por solicitud (segundos) |
HTTP_CONNECT_TIMEOUT_SECS | 10 | Tiempo de espera de conexión TCP (segundos) |
OUTBOUND_LIMIT | 16 | Máximo de conexiones HTTP salientes concurrentes |
MAX_CONTENT_CHARS | 10000 | Máximo de caracteres devueltos por página raspada |
CORTEX_SCOUT_TOOL_TIMEOUT_SECS | específico de herramienta | Límite superior estricto para cada llamada de herramienta MCP/HTTP. Cuando se excede, Cortex Scout cancela la herramienta y devuelve una respuesta de tiempo de espera estructurada en lugar de quedarse colgado |
CORTEX_SCOUT_TOOL_TIMEOUT_SECS_<TOOL> | sin establecer | Anulación por herramienta, por ejemplo CORTEX_SCOUT_TOOL_TIMEOUT_SECS_SCRAPE_URL=90 o CORTEX_SCOUT_TOOL_TIMEOUT_SECS_VISUAL_SCOUT=20 |
CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS | específico de etapa | Tiempo de espera compartido para etapas de raspado pesadas como obtención CDP, raspado nativo, recorte semántico y registro de historial |
CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_<STAGE> | sin establecer | Anulación por etapa, por ejemplo CORTEX_SCOUT_SCRAPE_STAGE_TIMEOUT_SECS_CDP_INITIAL_ATTEMPT=30 |
Navegador / Anti-bot
| Variable | Predeterminado | Descripción |
|---|---|---|
CHROME_EXECUTABLE | auto-detectado | Anular la ruta al binario de Chromium/Chrome/Brave |
SEARCH_CDP_FALLBACK | true | Reintentar las búsquedas del motor de búsqueda mediante CDP nativo de Chromium cuando esté bloqueado |
SEARCH_TIER2_NON_ROBOT | sin establecer | Establece 1 para permitir hitl_web_fetch como escalada de búsqueda de último recurso |
MAX_LINKS | 100 | Máximo de enlaces seguidos por rastreo de página |
Búsqueda
| Variable | Por defecto | Descripción |
|---|---|---|
SEARCH_ENGINES | google,bing,duckduckgo,brave | Motores activos (separados por comas) |
SEARCH_MAX_ENGINES_PER_QUERY | 3 | Máximo de motores consultados por búsqueda antes de que la rotación basada en salud elija el siguiente conjunto |
SEARCH_MAX_RESULTS_PER_ENGINE | 10 | Resultados por motor antes de fusionar/eliminar duplicados |
SEARCH_ENGINE_STAGGER_MS | 125 | Retraso entre lanzamientos por motor para reducir disparadores anti-bot ráfaga |
SEARCH_COMMUNITY_TRIGGER_RESULTS | 4 | Solo ejecutar la expansión de comunidad Reddit/HN cuando la búsqueda principal devuelva menos de esta cantidad de resultados |
SEARCH_SHARED_CACHE | true | Compartir resultados de búsqueda exitosos entre procesos concurrentes de Cortex Scout en el mismo host |
SEARCH_SHARED_CACHE_TTL_SECS | 300 | TTL para la caché de búsqueda compartida entre procesos |
SEARCH_HOST_MIN_GAP_MS | engine-tuned | Espaciado mínimo entre procesos entre solicitudes a motores de búsqueda desde la misma IP de host |
SEARCH_HOST_MAX_GAP_MS | engine-tuned | Espaciado máximo/fluctuación entre procesos entre solicitudes a motores de búsqueda desde la misma IP de host |
SCRAPE_HOST_MIN_GAP_MS | 900 | Espaciado mínimo entre procesos entre solicitudes de raspado al mismo host |
SCRAPE_HOST_MAX_GAP_MS | 1800 | Espaciado máximo/fluctuación entre procesos entre solicitudes de raspado al mismo host |
CORTEX_SCOUT_HOST_GUARD_DISABLED | false | Establece 1 solo si deseas deshabilitar explícitamente la limitación compartida a nivel de host |
Proxy
| Variable | Por defecto | Descripción |
|---|---|---|
IP_LIST_PATH | — | Ruta opcional a ip.txt (un proxy por línea: http://, socks5://). Déjalo sin establecer para deshabilitar el soporte de proxy por completo, o apunta a un archivo vacío para mantener las herramientas de proxy disponibles pero inactivas por defecto |
PROXY_SOURCE_PATH | — | Ruta opcional a proxy_source.json (usado por proxy_control grab) |
Memoria Semántica (LanceDB)
| Variable | Por defecto | Descripción |
|---|---|---|
LANCEDB_URI | — | Ruta de directorio para la memoria de investigación persistente. Omítelo para deshabilitar |
CORTEX_SCOUT_MEMORY_DISABLED | 0 | Establece 1 para deshabilitar la memoria incluso cuando LANCEDB_URI esté establecido |
MODEL2VEC_MODEL | built-in | ID de modelo de HuggingFace o ruta local para incrustación (p. ej. minishlab/potion-base-8M) |
Investigación Profunda
| Variable | Por defecto | Descripción |
|---|---|---|
DEEP_RESEARCH_ENABLED | 1 | Establece 0 para deshabilitar la herramienta deep_research en tiempo de ejecución |
OPENAI_API_KEY | — | Clave API para síntesis LLM. Omítela para endpoints locales sin clave (Ollama) |
OPENAI_BASE_URL | https://api.openai.com/v1 | Endpoint compatible con OpenAI (OpenRouter, Ollama, LM Studio, etc.) |
DEEP_RESEARCH_LLM_MODEL | gpt-4o-mini | Identificador de modelo (debe ser compatible con el endpoint) |
DEEP_RESEARCH_SYNTHESIS | 1 | Establece 0 para omitir la síntesis LLM (solo búsqueda+raspado) |
DEEP_RESEARCH_HOP_TIMEOUT_SECS | 90 | Tiempo de espera de raspado por salto. Cuando se excede, deep_research devuelve resultados parciales en lugar de colgarse hasta que el llamador MCP agote el tiempo |
DEEP_RESEARCH_SYNTHESIS_MAX_TOKENS | 1024 | Máximo de tokens para la respuesta de síntesis. Usa 4096+ para modelos de contexto grande |
DEEP_RESEARCH_SYNTHESIS_MAX_SOURCES | 8 | Máximo de documentos fuente alimentados a la síntesis LLM |
DEEP_RESEARCH_SYNTHESIS_MAX_CHARS_PER_SOURCE | 2500 | Máximo de caracteres extraídos por fuente para la síntesis |
Solo servidor HTTP
| Variable | Por defecto | Descripción |
|---|---|---|
CORTEX_SCOUT_PORT / PORT | 5000 | Puerto de escucha para el binario del servidor HTTP (cortex-scout) |
Mejores Prácticas del Agente
Flujo operativo recomendado:
- Llama a
memory_searchantes de cualquier nueva ejecución de investigación: omite la obtención en vivo si la similitud ≥ 0.60 yskip_live_fetchestrue. - Para descubrimiento de temas usa
web_searchpara descubrimiento solo de URL, oweb_search(include_content=true)para buscar y raspar los mejores resultados en un solo viaje de ida y vuelta. - Para URLs conocidas usa
web_fetch(mode="single")conoutput_format="clean_json", y establecequery+strict_relevance=truepara conservar solo las secciones relevantes. - En 403/429: llama a
proxy_controlconaction:"grab"para actualizar la lista de proxies, luego reintenta conuse_proxy:true. - Para páginas con autenticación: ejecuta
visual_scoutcuandoauth_risk_score >= 0.4, luego usahitl_web_fetch(auth_mode="challenge")para muros CAPTCHA ohitl_web_fetch(auth_mode="auth")para muros de inicio de sesión. - Para investigación profunda:
deep_researchmaneja búsqueda multi-salto + raspado + síntesis LLM automáticamente. Ajustadepth(1–3) ymax_sourcessegún el presupuesto de costo por ejecución. - Para automatización de UI y pruebas E2E: usa
scout_browser_automatecon arreglos de pasos para pestañas, aserciones de localizadores, capturas de pantalla/PDF, mocks de rutas, subidas de archivos y configuración del estado del navegador. Si estás bloqueado por inicio de sesión/CAPTCHA por primera vez, llama ascout_agent_profile_authy luego reanuda la automatización.
Preguntas Frecuentes
¿Por qué deep_research con Ollama o qwen3.5 a veces falla o vuelve al modo heurístico?
Algunos modelos locales con capacidad de razonamiento devuelven respuestas /v1/chat/completions compatibles con OpenAI con message.reasoning poblado pero message.content vacío. Cortex Scout ahora reintenta endpoints locales de Ollama a través de /api/chat nativo con think:false cuando se detecta ese patrón.
Configuración recomendada para modelos locales de clase 4B de Ollama:
llm_api_key: ""encortex-scout.jsones válido y significa "no se requiere autenticación"- Mantén
synthesis_max_sourcesen1-2 - Mantén
synthesis_max_chars_per_sourcealrededor de600-1000 - Mantén
synthesis_max_tokensalrededor de512-768
Si aún ves síntesis lenta o inestable, reduce synthesis_max_sources antes de aumentar los límites de tokens.
¿Por qué veo errores de bloqueo de perfil de Chromium?
Cada solicitud sin cabeza usa un perfil temporal único, por lo que el raspado normal y deep_research están a salvo de carreras de bloqueo de perfil. Solo los flujos HITL (como hitl_web_fetch) que usan un perfil de navegador real pueden encontrar un bloqueo si los ejecutas concurrentemente o tienes Brave/Chrome abierto en el mismo perfil. Para evitarlo: ejecuta llamadas HITL una a la vez y cierra todas las ventanas del navegador antes de reutilizar un perfil.
Lista de verificación:
- Usa una compilación reciente (2026-03-05 o posterior)
- Evita rutas de perfil persistentes a menos que necesites una sesión iniciada
- Ejecuta flujos HITL/perfil secuencialmente
- Cierra todas las ventanas del navegador antes de reutilizar un perfil
- Deja que Cortex Scout use sus propios perfiles temporales para investigación concurrente
Mi cliente MCP se conecta pero las herramientas fallan o agotan el tiempo inmediatamente. ¿Qué debo revisar primero?
Revisa esto antes que cualquier otra cosa:
- Usa
RUST_LOG=warn, noinfo. - En configuraciones estilo
enven macOS/Linux, pasa la ruta del binario directamente después de las asignaciones de entorno. No insertes"--"en los argumentos demcp.json. - En Windows, no uses
env; usacommandmás un objetoenv. - Asegúrate de que la ruta del binario apunte a una compilación actual.
Versionado y Registro de Cambios
Consulta CHANGELOG.md.
Licencia
MIT. Consulta LICENSE.