Trackio documentation
Trackio como API y servidor MCP
Trackio como API y servidor MCP
El panel de Trackio se puede configurar para ejecutarse como servidor de API HTTP y como servidor de MCP (Model Context Protocol), lo que permite que herramientas y aplicaciones externas interactúen de forma programática con los datos de seguimiento de tus experimentos, o que tú puedas “chatear con tus datos de experimentos” en lenguaje natural utilizando ChatGPT, Claude, Deepseek o diversos LLM que admiten MCP. Esto convierte a Trackio en una opción ideal para agentes de LLM que ejecutan experimentos de ML de forma autónoma, ya que pueden registrar métricas y consultar resultados de experimentos de manera fluida.
Configuración
Instale la dependencia opcional de MCP y, a continuación, active el servidor MCP al iniciar el panel de Trackio. Puede hacerlo de varias formas:
pip install "trackio[mcp]"Opción 1: Comando de CLI
trackio show --mcp-server
Opción 2: Función de Python
import trackio
trackio.show(mcp_server=True)Opción 3: Variable de entorno
export GRADIO_MCP_SERVER=True
trackio showCuando el modo de servidor MCP está habilitado, Trackio:
- Monta un servidor MCP de HTTP transmisible junto con el panel de control
- Expone herramientas de inspección de solo lectura de proyecto/ejecución/métrica a los clientes de MCP
- Expone un pequeño conjunto de herramientas de mutación (eliminar/renombrar/sincronizar) controladas por un token de escritura
Uso de la API
Trackio expone cada herramienta MCP como un punto de acceso HTTP simple en POST /api/{tool_name}. El cuerpo es JSON; pase los argumentos como {"kwargs": {...}}, {"args": [...]} o simplemente como un objeto plano {"name": value}.
import httpx2
base = "http://127.0.0.1:7860"
projects = httpx2.post(f"{base}/api/get_all_projects").json()["data"]
print("Projects:", projects)
runs = httpx2.post(
f"{base}/api/get_runs_for_project",
json={"project": "my-project"},
).json()["data"]
print("Runs:", runs)
values = httpx2.post(
f"{base}/api/get_metric_values",
json={"project": "my-project", "run": "run-1", "metric_name": "loss"},
).json()["data"]
print("Loss values:", values)const base = "http://127.0.0.1:7860";
async function call(name, payload = {}) {
const res = await fetch(`${base}/api/${name}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
});
return (await res.json()).data;
}
console.log("Projects:", await call("get_all_projects"));
console.log("Runs:", await call("get_runs_for_project", { project: "my-project" }));
console.log("Loss:", await call("get_metric_values", {
project: "my-project",
run: "run-1",
metric_name: "loss",
}));# Get all projects
curl -s -X POST http://127.0.0.1:7860/api/get_all_projects \
-H "Content-Type: application/json" -d '{}'
# Get runs for a project
curl -s -X POST http://127.0.0.1:7860/api/get_runs_for_project \
-H "Content-Type: application/json" \
-d '{"project": "my-project"}'
# Get values for a metric
curl -s -X POST http://127.0.0.1:7860/api/get_metric_values \
-H "Content-Type: application/json" \
-d '{"project": "my-project", "run": "run-1", "metric_name": "loss"}'Uso de MCP
Al ejecutarse como un servidor MCP, Trackio expone sus herramientas en un único endpoint streamable-HTTP al que pueden conectarse clientes compatibles con MCP (Claude Desktop, Claude Code, etc.).
URL del servidor MCP
El servidor MCP está disponible en:
http://127.0.0.1:7860/mcp/
Cuando se despliega en un Hugging Face Space, la URL es https://<your-space>.hf.space/mcp/.
Herramientas MCP disponibles
Herramientas de lectura:
- get_all_projects – Lista todos los proyectos de Trackio en este servidor.
- get_runs_for_project – Lista las ejecuciones de un proyecto dado.
- get_metrics_for_run – Lista los nombres de las métricas registradas para una ejecución.
- get_metric_values – Obtiene los valores de métricas de una ejecución, opcionalmente alrededor de un paso o un tiempo.
- get_project_summary – Metadatos de resumen de un proyecto.
- get_run_summary – Metadatos de resumen de una ejecución.
- get_system_metrics_for_run – Lista los nombres de las métricas del sistema registradas para una ejecución.
- get_system_logs – Obtiene los registros de métricas del sistema para una ejecución.
- get_snapshot – Obtiene una única instantánea alrededor de un paso o marca de tiempo.
- get_logs – Obtiene los registros de métricas de una ejecución.
- get_alerts – Obtiene las alertas de un proyecto, opcionalmente filtradas por ejecución o nivel.
- get_settings – Devuelve la configuración del panel de control y la configuración de los recursos.
Herramientas de mutación (requieren acceso de escritura — ver más abajo):
- delete_run – Elimina una ejecución.
- rename_run – Cambia el nombre de una ejecución.
- trigger_sync – Dispara una pasada de exportación/sincronización con Hugging Face.
Acceso de escritura para herramientas de mutación
Las herramientas de mutación están restringidas:
- Local dashboard: el argumento
write_token. El token se imprime en la terminal al ejecutartrackio show(también está incrustado como?write_token=...en la URL del panel de control que se imprime al inicio). Por ejemplo:{"project": "my-project", "run": "run-1", "write_token": "<token from startup output>"} - Hugging Face Spaces: pase un argumento
hf_tokencon acceso de escritura al repositorio del Space. En este caso, no se utiliza elwrite_tokenlocal.
Las herramientas de lectura nunca requieren un token.
Configuración del cliente MCP
Para agregar Trackio a clientes que admiten servidores MCP de HTTP con streaming, use una configuración como:
{
"mcpServers": {
"trackio": {
"url": "http://127.0.0.1:7860/mcp/"
}
}
}