Conectar un agente

96 herramientas por MCP sobre HTTP en streaming, en https://trackxai.kalebtec.com/mcp, para cualquier cliente que hable el protocolo. Inicia sesión con tu navegador, o envía un token en una cabecera, y tu agente ya crea trabajo acotado.

Primero necesitas un espacio de trabajo. Crea uno y conecta tu agente a él.

Instala un plugin

Un plugin de trackxai añade a tu agente el servidor, el inicio de sesión y las pautas de seguimiento en una sola instalación. Los plugins de Claude Code y Codex se instalan desde el repositorio público de GitHub kalebteccom/trackxai-plugins e inician sesión con tu navegador. Los de OpenCode y Pi se instalan desde npm. Los de Hermes Agent y Antigravity CLI están hechos y todavía no han salido. Hasta que salga el plugin de un cliente, los pasos de su tarjeta conectan el mismo servidor a mano.

  • Claude Code

    Hoy
    Funciona con inicio de sesión
    Plugin
    Instalar desde GitHub
    1. claude plugin marketplace add kalebteccom/trackxai-plugins
    2. claude plugin install trackxai@trackxai
    3. Después inicia Claude Code, ejecuta /mcp, elige trackxai e inicia sesión con tu navegador. No hay token que pegar.

    Token: no hay que pegar ninguno, Claude Code inicia sesión con tu navegador. Para usar un token de agente, exporta TRACKXAI_TOKEN en el shell desde el que arranca Claude Code y añade un servidor de ámbito de usuario con el mismo nombre:

    claude mcp add-json --scope user trackxai '{"type":"http","url":"https://trackxai.kalebtec.com/mcp","headers":{"Authorization":"Bearer ${TRACKXAI_TOKEN}"}}'

    Directorio de perfil: $CLAUDE_CONFIG_DIR, y si no ~/.claude.

    Documentación de MCP de Claude Code
  • Codex

    Hoy
    Funciona con inicio de sesión
    Plugin
    Instalar desde GitHub
    1. codex plugin marketplace add kalebteccom/trackxai-plugins
    2. codex plugin add trackxai@trackxai
    3. Después inicia sesión con tu navegador. No hay token que pegar:

      codex mcp login trackxai

    Token: no hay que pegar ninguno, Codex inicia sesión con tu navegador. Para usar un token de agente, exporta TRACKXAI_TOKEN en el shell desde el que arranca Codex y añade esto a config.toml, que se impone al servidor del mismo nombre que trae el plugin:

    [mcp_servers.trackxai]
    url = "https://trackxai.kalebtec.com/mcp"
    bearer_token_env_var = "TRACKXAI_TOKEN"

    Directorio de perfil: $CODEX_HOME, y si no ~/.codex.

    Documentación de MCP de Codex
  • OpenCode

    Hoy
    Funciona con inicio de sesión
    Plugin
    Disponible

    Añade el plugin a opencode.json. OpenCode lo instala desde npm en su próximo arranque:

    1. {"plugin":["@trackxai/opencode"]}
    2. Después reinicia OpenCode e inicia sesión con tu navegador:

      opencode mcp auth trackxai

    Token: OpenCode inicia sesión con tu navegador (opencode mcp auth trackxai). Para usar un token de agente, exporta TRACKXAI_TOKEN antes de que arranque OpenCode.

    Directorio de perfil: ~/.config/opencode/, o el archivo $OPENCODE_CONFIG y el directorio $OPENCODE_CONFIG_DIR.

    Documentación de MCP de OpenCode
  • Hermes Agent

    Hoy
    Funciona con inicio de sesión
    Plugin
    Próximamente
    1. Combina esto en config.yaml de tu perfil de Hermes:

      mcp_servers:
        trackxai:
          url: "https://trackxai.kalebtec.com/mcp"
          auth: "oauth"
    2. Después inicia sesión con tu navegador:

      hermes mcp login trackxai
    3. Comprueba la conexión:

      hermes mcp test trackxai

    Token: Hermes inicia sesión con tu navegador. Para usar un token de agente, sustituye la línea auth por una entrada headers y pon TRACKXAI_TOKEN en el .env del directorio del perfil, nunca en config.yaml:

    mcp_servers:
      trackxai:
        url: "https://trackxai.kalebtec.com/mcp"
        headers:
          Authorization: "Bearer ${TRACKXAI_TOKEN}"

    Directorio de perfil: $HERMES_HOME, y si no ~/.hermes. Un perfil con nombre es ~/.hermes/profiles/<nombre>.

    Documentación de MCP de Hermes Agent
  • Pi

    Hoy
    Necesita el plugin
    Plugin
    Disponible
    1. pi install npm:@trackxai/pi
    2. Pi no tiene inicio de sesión MCP propio. Inicia sesión en la página de dispositivo, que se abre en tu navegador:

      npx --package @trackxai/agent-plugins trackxai login --harness pi

    Token: ejecuta trackxai login --harness pi y aprueba la página que se abre en tu navegador, o exporta TRACKXAI_TOKEN, que se impone al archivo que escribe el inicio de sesión.

    Directorio de perfil: $PI_CODING_AGENT_DIR, y si no ~/.pi/agent.

  • Antigravity CLI

    Hoy
    Funciona con inicio de sesión
    Plugin
    Próximamente
    1. Añade el servidor a ~/.gemini/config/mcp_config.json, o a .agents/mcp_config.json en un espacio de trabajo. El campo es serverUrl:

      {
        "mcpServers": {
          "trackxai": {
            "serverUrl": "https://trackxai.kalebtec.com/mcp"
          }
        }
      }
    2. Después abre Agent settings, Customizations y pulsa Authenticate en trackxai.

    Token: Antigravity inicia sesión con tu navegador. Para usar un token de agente, desactiva el plugin con agy plugin disable trackxai y escribe una cabecera en tu propio mcp_config.json. Antigravity no documenta sustitución de variables de entorno, así que cambia TOKEN por el token y mantén el archivo privado:

    {
      "mcpServers": {
        "trackxai": {
          "serverUrl": "https://trackxai.kalebtec.com/mcp",
          "headers": {
            "Authorization": "Bearer TOKEN"
          }
        }
      }
    }

    Directorio de perfil: ~/.gemini/antigravity-cli/, y ~/.gemini/config/ para mcp_config.json. No se documenta ninguna variable que lo cambie.

    Documentación de MCP de Antigravity CLI

Los pasos usan la dirección del servidor alojado, https://trackxai.kalebtec.com/mcp.

initialize

Conexión

Un punto de acceso, solo POST, cuerpo JSON y sin sesión. La mayoría de los clientes inician sesión con tu navegador y no necesitan token. En los dos casos la credencial lleva el actor y fija a qué espacios de trabajo puede llegar una llamada. Un token de espacio llega a uno. Un token emitido para todos tus espacios llega a cada uno de los que perteneces en una cuenta: la llamada indica su espacio en una cabecera Trackxai-Workspace-Id, o llega al espacio por defecto si no indica ninguno. Ninguna herramienta recibe un identificador de espacio de trabajo y una llamada no puede salirse del ámbito para el que se emitió.

El servidor envía sus instrucciones para agentes en el campo instructions de initialize, así que un cliente que no lea nada más conoce el vocabulario de campos, los tipos de pregunta y el ciclo de una toma antes de su primera llamada.

.mcp.json
{
  "mcpServers": {
    "trackxai": {
      "type": "http",
      "url": "https://trackxai.kalebtec.com/mcp",
      "headers": {
        "Authorization": "Bearer ${TRACKXAI_TOKEN}"
      }
    }
  }
}
Toda la configuración del cliente para el camino del token. Un punto de acceso y una cabecera que lee el token de tu entorno, y un token de espacio lleva su espacio de trabajo.

Un token por agente, visible una sola vez

Un cliente sin inicio de sesión en el navegador usa un token. Lo emites desde tu espacio de trabajo y caduca a los 90 días. El texto en claro se muestra una sola vez y se guarda como una huella. Un token empieza limitado a leer y trabajar tareas, y pertenece a un solo agente, así que cada escritura dice qué agente la hizo.

Un token ausente, desconocido, revocado o caducado recibe la misma frase y un 401, así que el punto de acceso no sirve para comprobar si un token llegó a ser real.

Las herramientas

Las 96 herramientas por grupo
GrupoHerramientas
Lecturasworkspace.list, project.list, team.list, people.list, label.list, initiative.list, epic.list, epic.get, epic.sequence, epic.activity, epic.metrics, task.list, task.get, task.get_many, gap.list, gap.get, activity.list, changes.since, progress.day
Estructuraproject.create, project.set_key, conventions.pin, team.create, team.update, team.delete, team.reviewer.set, team.member.add, team.member.remove, project.reviewer.set, label-group.create, label.create, label.rename, label.archive, label.unarchive, initiative.create, initiative.update, initiative.archive, initiative.unarchive, epic.create, epic.update, epic.archive, epic.unarchive, milestone.add, milestone.remove, epic.summary.post, epic.report.post
Tareastask.create, task.update, task.parent.set, task.move, task.label.set, task.archive, task.unarchive
Anotacionescriterion.add, criterion.check, criterion.set, gap.add, gap.resolve, gap.reopen, gap.redirect, gap.edit, ref.add, ref.remove, comment.add
Ciclo de una tomatask.claim, task.release, task.reopen, task.progress, task.complete, task.park, task.unpark
Ejecucionesrun.start, run.log, run.end, run.stop, run.list, run.get
Responsable y traspasotask.owner.set, task.delegate, task.handoff, presence.update
Bandejainbox.list, inbox.read
Opinionesreport.submit
Adjuntosattachment.upload, attachment.get, attachment.list, attachment.remove
Documentosdocument.create, document.get, document.update, document.list, document.link, document.unlink, document.archive, document.unarchive

Cómo se ve un rechazo

Un rechazo es una respuesta JSON-RPC correcta con isError activado y un cuerpo de texto que un agente puede atender. Empieza con lo que pasó y enumera una parte por línea: la pieza de la carga que falla, la regla y un valor de ejemplo que pasaría. Ningún rechazo devuelve un valor enviado, ni lleva el valor de un campo, un token o el contenido de un campo.

Los cinco tipos de rechazo
TipoQué hace quien llama
rejectedUn rechazo de las reglas. Corrige el campo nombrado y vuelve a llamar
invalidNo se pudo construir la carga. Corrige la parte nombrada
refusedLo rechazó el almacén: una referencia sin destino, un slug ocupado, un padre ausente
absentUna lectura no encontró nada en este espacio de trabajo
claimedLa tarea la tiene otro actor con una toma activa

Cada llamada se sostiene sola

Cada llamada lleva su propio token y su propia transacción, y nada se conserva entre llamadas. Un cliente que se desconecta y vuelve no tiene ninguna sesión que recuperar.

Dónde viven una pregunta y una referencia

gap.add y ref.add reciben un taskId. Una tarea es donde el trabajo queda acotado, así que ahí se anotan sus incógnitas y sus referencias. Un criterio nombra lo que verifica en criterion.add, apuntando a su propia tarea o a la épica madre.

Dónde seguir