Autocompletado
Los clientes que admiten el autocompletado de MCP (VS Code, Claude) pueden sugerir valores mientras rellenas un argumento de un prompt o una variable de una plantilla de recurso: escribe we en containerId y el cliente ofrece web y db-web. El cliente envía completion/complete con lo que has escrito y los valores que ya has elegido; arcane-mcp responde con los valores de Arcane que encajan.
El servidor anuncia la capacidad completions solo cuando hay algo que completar (consulta Exclusiones).
Qué se completa
Sección titulada «Qué se completa»| Argumento o variable | Dónde | Valores de | Qué se inserta |
|---|---|---|---|
environmentId | todos los prompts; todas las plantillas arcane://environment/{environmentId}/... | environment.list | El ID del entorno (0 es el host local de Arcane); también se busca por nombre |
containerId | diagnose_container; arcane://environment/{environmentId}/container/{containerId} | container.list | El nombre del contenedor; su ID cuando escribes el principio del ID |
projectId | update_project_images; arcane://environment/{environmentId}/project/{projectId} | project.list | El ID del proyecto (Arcane solo encuentra un proyecto por su ID); también se busca por nombre |
services | update_project_images | project.runtime del projectId elegido | Los nombres de los servicios del proyecto, completando el último elemento de la lista separada por comas |
imageId | security_report | image.list | El ID de la imagen (sha256:...); también se busca por etiquetas como nginx:1.27 y por el ID sin sha256: |
volumeName | backup_volume | volume.list | El nombre del volumen; los volúmenes anónimos (la etiqueta com.docker.volume.anonymous de Docker) van después de los que tienen nombre |
serviceId | rollback_service | swarm_service.list | El nombre del servicio de Swarm; su ID cuando escribes el principio del ID |
severity | security_report | el conjunto fijo CRITICAL, HIGH, MEDIUM, LOW, UNKNOWN (sin llamar a Arcane) | La severidad en mayúsculas, completando el último elemento de la lista |
El texto libre (symptom) no se completa.
Coincidencias
Sección titulada «Coincidencias»- No se distingue entre mayúsculas y minúsculas. Primero van los valores que empiezan por lo que has escrito, luego aquellos cuyo ID, nombre o etiqueta empieza por ello y después los que simplemente lo contienen; dentro de cada grupo, en el orden en que los lista Arcane.
- Se devuelven como mucho 100 valores (el límite de MCP), con
total(cuántos encajan) yhasMorecuando se han dejado algunos fuera: sigue escribiendo para acotar la lista. - Solo se ofrecen valores que un prompt acepta (letras, dígitos y
._-:/@), así queprompts/getnunca rechaza una sugerencia. - En una lista (
services,severity) se conservan los elementos que ya has escrito y no se vuelven a ofrecer:web, wse completa comoweb,worker.
El entorno y el proyecto elegidos
Sección titulada «El entorno y el proyecto elegidos»Cuando el cliente envía los valores que ya has elegido (los argumentos de contexto de la petición), se usan: un contenedor, proyecto, imagen, volumen o servicio de Swarm se busca en el environmentId elegido, y services en el projectId elegido. Sin environmentId se usa el entorno configurado por defecto (ARCANE_ENVIRONMENT_ID), igual que en las acciones; sin projectId, services no ofrece nada.
El mismo camino, la misma credencial
Sección titulada «El mismo camino, la misma credencial»El autocompletado ejecuta las acciones de lectura del catálogo igual que los recursos, con el cliente de Arcane del servidor: en modo HTTP cada clave de Arcane tiene su propio servidor, así que se te ofrece lo que tu clave puede ver. No hay un segundo camino HTTP hacia Arcane. Son lecturas, así que el modo de solo lectura y el modo seguro las mantienen, y se comportan igual en las tres superficies de herramientas.
Exclusiones
Sección titulada «Exclusiones»Un argumento cuya acción está excluida (ARCANE_MCP_EXCLUDE_TOOLS) no se completa y la acción nunca se llama: excluye container.list y containerId no ofrece nada, mientras que environmentId se sigue completando. Tampoco se completa un prompt o una plantilla que el servidor no ofrece. Cuando no queda nada que completar, el servidor no anuncia la capacidad y completion/complete responde método no encontrado (-32601).
Cada lista se guarda 5 segundos por servidor (es decir, por clave de Arcane en modo HTTP): al escribir un valor se envía una petición a Arcane, no una por pulsación, y las peticiones que llegan a la vez por la misma lista comparten una sola llamada. Una llamada de autocompletado está limitada a 10 segundos (o a ARCANE_MCP_ACTION_TIMEOUT si es menor); si cierras antes el cuadro de sugerencias, la llamada termina igualmente y sirve a la siguiente petición.
Errores
Sección titulada «Errores»Una sugerencia es una pista, así que un fallo de Arcane nunca rompe el formulario del cliente:
- Arcane inalcanzable, una credencial rechazada (401, 403), un entorno desconocido (404), Swarm sin activar (409) o un tiempo agotado: una lista vacía, no un error. El fallo se guarda los mismos 5 segundos, así que no se pregunta a un Arcane que falla en cada pulsación.
- Un nombre de prompt que el servidor no ofrece: error JSON-RPC
-32602(parámetros no válidos), igual que respondeprompts/get. - Un argumento que nada completa, o una URI que no es una de las plantillas ofrecidas: una lista vacía.
Cada llamada a Arcane deja un registro en el registro de auditoría, msg=completion con surface=completion, tool=completion/complete, la acción y su resultado (ok o error); lo que escribes nunca se registra. Las respuestas desde la caché no dejan ninguno.