Ir al contenido

Herramientas MCP

cc_server aloja un único registro de herramientas MCP (JSON-RPC 2.0), servido en el puerto principal del servidor (9030 de forma predeterminada) en POST /mcp y GET /sse, con la versión de protocolo 2024-11-05. Todos los clientes llegan al mismo registro: el escritorio, la versión web, los clientes MCP externos y el entorno de ejecución de agentes integrado. Los servidores MCP externos se pueden puentear hacia el mismo registro como una capa dinámica.

Medida Recuento
Herramientas registradas por cc_server 110
De packages/cc_mcp 108
De packages/cc_mcp_client (descubrimiento de herramientas) 2
Registradas en el registro base (server_mcp_registry.dart) 63
Registradas después del arranque, a medida que se levantan sus servicios (cc_server_runtime.dart) 47
De las 63 del registro base, condicionadas a un repositorio de grafo de código 5

Las cinco herramientas del grafo de código solo se registran cuando el host pasa un repositorio de grafo de código a buildServerMcpRegistry. cc_server siempre pasa uno, así que las 110 están activas en el binario distribuido.

El registro completo se anuncia en tools/list sin ninguna compuerta de descubrimiento. Las ediciones de tickets son herramientas con tipo.

Obligatorio en toda herramienta que toque datos con ámbito de espacio de trabajo. Un workspace_id ausente o inválido devuelve un error explícito, y un valor que no coincida con el espacio de trabajo de la entidad de destino se rechaza en lugar de ignorarse en silencio. Omítelo en las herramientas verdaderamente globales: list_workspaces y las seis herramientas del feed de noticias (list_feeds, list_articles, get_article, set_article_read, set_article_saved, refresh_feeds), que van sobre la lista de feeds por usuario del propietario del servidor. Las herramientas de descubrimiento (search_tool_bm25, list_my_tools) lo aceptan de forma opcional, para poder clasificar si algo se puede llamar según el modo de la conversación. Cuando el servidor despacha a un agente, el espacio de trabajo se fuerza del lado del servidor, así que el agente no puede alcanzar otro espacio de trabajo pasando un id ajeno.

Ambas vienen de cc_mcp_client, no de cc_mcp, y ambas consultan el guardián del modo para informar qué se puede llamar en el modo de conversación actual.

Herramienta Descripción
search_tool_bm25 Busca en el catálogo de herramientas por palabra clave; devuelve las herramientas coincidentes, sus esquemas de argumentos y si cada una se puede llamar en este momento
list_my_tools Enumera las herramientas que se pueden llamar ahora mismo en esta conversación, filtradas por su modo

Una tercera herramienta de descubrimiento, search_tools, existe solo dentro del arnés integrado y no forma parte de este registro de MCP. Clasifica la propia superficie de herramientas de la ejecución y, a diferencia de search_tool_bm25, carga los esquemas de lo que encuentra para que el agente pueda llamar a una coincidencia en su siguiente turno. Los agentes que usan el arnés deberían preferirla; los clientes MCP tienen search_tool_bm25.

Herramienta Descripción
list_agents Enumera los agentes registrados en un espacio de trabajo

Mensajería y delegación entre agentes pares

Sección titulada «Mensajería y delegación entre agentes pares»

Los agentes se comunican entre sí a través de espacios (duraderos y visibles en la lista de participantes). ask_agent es solicitud/respuesta con un tiempo de espera obligatorio; delegate_task está protegido del lado del servidor por un límite de profundidad, detección de ciclos, una envolvente de presupuesto y un techo de autonomía.

Herramienta Descripción
send_to_agent Envía un mensaje unidireccional a otro agente, dirigido por to_agent_id o por to_agent_name exacto
ask_agent Hace una pregunta a otro agente y espera su respuesta, o agota el tiempo de espera
delegate_task Delega una tarea a otro agente como un ticket hijo rastreado
consult_agent Agrega al espacio al especialista que mejor coincide por skills y lo despacha con instrucciones enfocadas
todo_read Lee la lista de tareas persistida de esta conversación

Toda instalación y actualización pasa por una compuerta de análisis fail-closed antes de que cualquier contenido de skill llegue al disco o al prompt de un agente.

Herramienta Descripción
list_skills Enumera los slugs de skills disponibles en un espacio de trabajo
create_skill Crea una skill nueva a partir de contenido markdown
install_skill Instala el directorio completo de una skill desde un repositorio de GitHub en una ref fijada
update_skill Actualiza una skill instalada de GitHub a una ref nueva, volviendo a analizarla y a fijarla
list_skill_updates Enumera las skills con una versión más reciente disponible
verify_skills Verifica las skills fijadas contra los hashes de su contenido en disco
pin_skill Calcula el hash de una skill existente en disco y lo escribe en skills-lock.json

Herramientas de planes, playbooks y artefactos

Sección titulada «Herramientas de planes, playbooks y artefactos»
Herramienta Descripción
submit_plan El contrato de salida del modo plan: emite un PlanDocument con tipo que se abre en Plan Studio
create_playbook Guarda un plan como una plantilla con nombre y versión, con marcadores {{param}} tipados
run_playbook Instancia un playbook con valores de parámetros, lo que produce un plan que el operador aprueba
publish_artifact Publica una lista ordenada de bloques con tipo (markdown, tabla, gráfico, mermaid, código, JSON) que se renderizan de forma nativa en el cliente
revise_artifact Reemplaza el contenido de un artefacto publicado
list_artifacts Enumera los artefactos del espacio de trabajo
get_artifact Lee un artefacto
complete_goal Declara cumplido el objetivo duradero activo de la conversación (iniciado con /goal o /loop)
Herramienta Descripción
list_workspaces Enumera todos los espacios de trabajo con sus ids y nombres (global; sin workspace_id)
Herramienta Descripción
list_repos Enumera los repos registrados en un espacio de trabajo. Quien llama como agente recibe las rutas de los worktrees aislados con copy-on-write de su conversación, nunca los checkouts originales
Herramienta Descripción
list_spaces Enumera los espacios de mensajería de un espacio de trabajo
get_messages Obtiene los mensajes de un espacio
send_message Envía un mensaje a un espacio como un agente remitente con nombre
get_space_notes Lee el documento de traspaso compartido de un espacio
update_space_notes Reemplaza el documento de traspaso compartido de un espacio
todo_write Reemplaza la lista de tareas de esta conversación en una sola llamada (pasa la lista completa)
Herramienta Descripción
start_ai_review Inicia la revisión con IA de una PR: calcula las áreas de revisión, reparte revisores especialistas en el espacio de la PR, redacta el recorrido guiado y finaliza
add_review_node Agrega un hallazgo de revisión estructurado (archivo, línea, prioridad P0–P3) a un espacio de revisión
confirm_review_node Confirma el hallazgo de un par; el autor no puede confirmar el suyo propio
resolve_review_node Marca un hallazgo como corregido después de hacer realmente el cambio; publica un rastro en el espacio de revisión
dismiss_review_node Descarta un hallazgo que no aplica; registra un hecho de supresión para que los revisores dejen de marcarlo de nuevo
request_peer_review Pide a otro agente revisor una segunda opinión sobre un hallazgo
dispatch_reviewers Despacha de forma concurrente agentes revisores que coinciden hacia un espacio de revisión
submit_reviewer_verdict Publica un veredicto ship/hold/block por revisor, con confianza y una explicación
finalize_review Calcula el consenso por nodo y el veredicto por PR, y cierra la revisión
set_cohort_summary Establece el resumen en lenguaje llano de una cohorte de revisión
add_review_diagram Adjunta a una cohorte un diagrama estructurado y verificado por el grafo (sequence, entityRelation, stateMachine)
publish_review_to_github Publica la revisión finalizada en GitHub como comentarios en línea más un cuerpo de resumen
Herramienta Descripción
search_memory Busca hechos y políticas (por palabra clave, semántica o híbrida; la híbrida es la predeterminada)
propose_fact Almacena un hecho breve en markdown en un dominio
supersede_fact Marca un hecho como reemplazado por otro
propose_policy Almacena una regla normativa en un dominio (requiere permiso de escritura sobre él)
supersede_policy Retira una política: la marca como inactiva pero la conserva para auditoría
list_policies Enumera las políticas activas, con filtro opcional por dominio
list_memory_domains Enumera los dominios de memoria del espacio de trabajo con recuentos de hechos y políticas
record_observation Registra una observación sin procesar en la memoria de trabajo del agente
get_my_notes Lee el bloc de memoria de trabajo del agente que llama
update_my_notes Actualiza el bloc de memoria de trabajo del agente que llama
remember Agrega una nota a la memoria de trabajo activa del agente para esta sesión (acotada por TTL y por recuento)
consolidate_memory Ejecuta una pasada de consolidación («sueño»): expulsa los elementos activos que expiraron y traslada los duraderos a hechos de largo plazo
harmonize_memory Ejecuta la armonización de creencias entre agentes (SHMR) y marca las contradicciones
list_memory_conflicts Enumera las contradicciones detectadas y cómo se resolvió cada una
Herramienta Descripción
create_goal Crea un objetivo organizacional (a nivel de empresa, equipo, agente o tarea)
list_goals Enumera los objetivos con su nivel, estado y progreso agregado
update_goal_progress Establece el progreso de un objetivo
create_approval Abre una aprobación del consejo para una acción gobernada (salida de plan, fusión, lanzamiento, contratación, personalizada)
list_approvals Enumera las aprobaciones, con filtro opcional por estado
decide_approval Registra una decisión: aprobar, rechazar, solicitar revisión o reenviar
comment_approval Comenta en una aprobación del consejo
exit_plan_mode Abre (y, una vez aprobada, consume) una aprobación plan_exit, lo que saca a la conversación del modo plan
agent_heartbeat Informa la vitalidad (activo, inactivo, atascado); quedarse en silencio cambia la salud de ejecución a perdido recientemente y luego a sin conexión
list_runtime_health Enumera la salud de ejecución de cada agente
list_agent_presence Enumera la presencia de cada agente (salud, ciclo de vida, recuentos en ejecución y en cola, capacidad)
get_org_chart Lee el árbol de reporte, con el CEO en la raíz, anidado por reports_to
create_work_product Crea un entregable duradero adjunto a un ticket
save_work_product_revision Guarda una revisión nueva; pasa base_revision_id para que se rechace ante una edición concurrente
list_work_products Enumera los productos de trabajo, con filtro opcional a un solo ticket
get_work_product Lee un producto de trabajo con su historial de revisiones
create_runtime_profile Define un perfil de ejecución reutilizable (familia de protocolo, comando de CLI, argumentos de lanzamiento fijos)
list_runtime_profiles Enumera los perfiles de ejecución del espacio de trabajo

Solo se registran cuando el host proporciona un repositorio de grafo de código. El índice cubre el conjunto de gramáticas distribuidas (Dart, JS/TS, PHP, Python, Rust, Zig, C/C++, Go, Java, Ruby, C#, Swift, Kotlin, R, Assembly, MATLAB, Ada); los símbolos de cualquier otro lenguaje no están presentes.

Herramienta Descripción
search_code Busca símbolos indexados por nombre, firma y comentario de documentación (híbrido BM25 + semántico)
code_symbol Busca símbolos por su nombre exacto; devuelve file:line y la firma
code_callers Enumera los símbolos que llaman a un símbolo o dependen de él (aristas entrantes)
code_callees Enumera los símbolos a los que llama un símbolo o de los que depende (aristas salientes)
code_impact Calcula el radio de impacto transitivo de un símbolo, hasta una profundidad
Herramienta Descripción
create_ticket Crea un ticket en el proveedor configurado
get_ticket Obtiene un ticket por su id
list_tickets Enumera los tickets, con filtro opcional por estado o responsable
update_ticket Actualiza el estado, el título, la descripción, la prioridad o las etiquetas (el estado acepta alias como in_progress / completed)
assign_ticket Asigna un ticket a un agente o equipo (o a ambos)
reassign_ticket Reasigna un ticket a un agente distinto
add_ticket_collaborator Invita a un agente a colaborar en un ticket (se agrega a su espacio)
comment_on_ticket Comenta en un ticket
close_ticket Cierra un ticket (lo marca como terminado) con salida opcional
fail_ticket Marca un ticket como fallido con un mensaje de error
delegate_ticket Delega un ticket a un agente y crea un ticket hijo rastreado
ticket_pr_link Vincula o desvincula un ticket y una pull request por el id de nodo de la PR (action: link | unlink)
ticket_relation Agrega o quita una relación entre dos tickets — blocked_by, blocking, related_to, duplicate_of, duplicated_by, sub_issue_of, parent_of (action: add | remove)
list_ticket_relations Enumera el ticket padre, los subtickets y los enlaces de dependencia de un ticket
Herramienta Descripción
record_team_activity Registra una entrada de actividad de un líder de equipo contra un ticket
preview_trigger Simula qué ejecuciones de pipeline iniciaría un evento hipotético, sin confirmar nada
submit_output Envía la carga útil de salida estructurada para la ejecución de pipeline actual de quien llama; se valida contra el esquema de salida declarado de la ejecución
Herramienta Descripción
propose_orchestration Emite un plan de orquestación multiagente estructurado para una única aprobación previa; valida y devuelve las infracciones que encuentre
Herramienta Descripción
list_feeds Enumera los feeds RSS/Atom registrados
list_articles Enumera los artículos, con filtro opcional por feed, no leídos o guardados
get_article Obtiene un artículo
set_article_read Marca un artículo como leído o no leído
set_article_saved Guarda o quita de guardados un artículo
refresh_feeds Vuelve a obtener ahora mismo todos los feeds habilitados

Controla máquinas desechables —un navegador o un escritorio Linux con recinto, un emulador de Android o un simulador de iOS— desde dentro de una ejecución. Se registran después del arranque, sin condiciones: si una máquina puede arrancar de verdad es una pregunta de sondeo que las herramientas responden en cada llamada. Las llamadas repetidas en una misma conversación reutilizan una sola máquina; las capturas de pantalla se devuelven como contenido de imagen con un presupuesto de una imagen por resultado, y el contenido de página o de interfaz extraído se delimita como datos que no son de confianza. Las cuatro herramientas de uso más rig_close declaran la clase de acción enclosureControl (las herramientas de uso también declaran networkEgress y processSpawn; mobile_use e ios_use también declaran packageInstall), así que los modos de solo lectura las deniegan. rig_list no declara ninguna: solo lee el estado del espacio de trabajo. El vocabulario completo de verbos por superficie está en la referencia de rigs.

Herramienta Descripción
computer_use Controla un escritorio Linux en una VM con recinto: mover, hacer clic, arrastrar, desplazar, escribir, cambiar tamaño, portapapeles, captura de pantalla
browser_use Controla un Chromium, Firefox o WebKit sin interfaz (engine): navegar, hacer clic, rellenar, extraer (a11y/DOM/console), portapapeles, captura de pantalla
mobile_use Controla Android por ADB: inspección/entrada, capturas de pantalla, instalar/iniciar/detener/restablecer/desinstalar apps, enlaces profundos y comandos de dispositivo con forma de argv
ios_use Controla el simulador de iOS mediante WebDriverAgent/CoreSimulator: inspección/entrada, capturas de pantalla, instalar/iniciar/detener/desinstalar apps, enlaces profundos y procesos del simulador con forma de argv
rig_list Enumera los rigs de un espacio de trabajo con su superficie, estado, tamaño de pantalla y controlador
rig_close Destruye un rig y descarta el estado de máquina que posee

El calendario y las reuniones no tienen herramientas MCP. Los agentes no pueden leer tu calendario, tus reuniones, las transcripciones, los elementos de acción ni las decisiones. El resumen que produce elementos de acción y decisiones se ejecuta como el pipeline meeting_summary integrado, no como una herramienta que un agente pueda llamar.

El condicionamiento se aplica dos veces a partir de una sola tabla (ModeToolPolicy): una en el despachador de MCP para el adaptador de Claude Code y otra en el registro del arnés integrado. Una llamada bloqueada devuelve el motivo.

Modo Superficie de herramientas
chat Todas las herramientas registradas; sin lista de permitidos
plan Una lista de permitidos seleccionada. Sin escrituras en el worktree y sin los verbos de tickets create / assign / delegate, pero sí se permiten memoria, artefactos, tareas pendientes, submit_plan, exit_plan_mode y los verbos de finalización de tickets sobre el ticket despachado
review Una lista de permitidos seleccionada: participación en revisiones, comunicación, recuperadores de contexto de solo lectura y el conjunto completo de verbos de tickets, incluidos create_ticket y assign_ticket
orchestrate Una lista de permitidos seleccionada: herramientas de investigación y de lectura, más propose_orchestration, create_playbook y run_playbook. La contratación, la descomposición y la finalización de tickets ocurren de forma determinista después de la aprobación, nunca a mitad de la ejecución

Se permiten en todos los modos, sin importar la lista de permitidos:

Conjunto Herramientas
Memoria y artefactos search_memory, propose_fact, propose_policy, supersede_fact, supersede_policy, record_observation, update_my_notes, get_my_notes, list_memory_domains, list_policies, publish_artifact, revise_artifact, list_artifacts, get_artifact
Grafo de código search_code, code_symbol, code_callers, code_callees, code_impact
Mecánica de ejecución search_tool_bm25, list_my_tools, todo_write, todo_read

Estar en una lista de permitidos no hace que una herramienta se pueda llamar, y lo mismo vale a la inversa: la capacidad de preguntar al operador es una herramienta del arnés (ask_user), así que no aparece en absoluto en este catálogo de MCP.

Una herramienta puede declarar requiresApproval. El despachador entonces crea un ApprovalPayload y lo expone a través del ConfirmationPort antes de que se ejecute la herramienta; cc_server conecta ese puerto, así que la compuerta está activa.

Herramientas registradas que lo declaran: create_ticket, update_ticket, assign_ticket, reassign_ticket, close_ticket, ticket_relation, create_goal, update_goal_progress, create_approval, decide_approval, comment_approval, create_work_product, save_work_product_revision, create_runtime_profile, install_skill, update_skill.

De forma independiente, las barandillas unificadas de acciones condicionan cualquier herramienta que declare un conjunto no vacío de ActionClass. Una decisión prompt sin ningún aprobador conectado se deniega. Consulta Barandillas.

No todas las capacidades del producto son alcanzables por un agente. Estas no tienen ninguna herramienta, así que un nombre que hayas visto referenciado en otro lugar devuelve “unknown tool”:

Capacidad Dónde vive en su lugar
Contratar, despedir o editar un agente La interfaz de agentes. No existe ninguna herramienta hire_agent / fire_agent / update_agent
Crear un espacio de trabajo workspace.upsert por RPC, que siembra y estampa la propiedad
Proyectos (crear / listar / actualizar / archivar) La interfaz de tickets. Los proyectos son una superficie del operador; consulta Proyectos
Hacer al operador una pregunta bloqueante La herramienta ask_user del arnés, no de MCP. Muestra un formulario en la conversación y se bloquea hasta recibir la respuesta
Diagnóstico por agente Nada. No existe ningún doctor; consulta Diagnosticar un agente
Calendario y reuniones RPC solo para clientes humanos (ver arriba)