Leverages Gradio's built-in MCP server support to expose trackio functionality as tools for AI agents
Enables seamless deployment to Hugging Face Spaces, with support for both public and private spaces, and includes authentication for private datasets
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@trackio-mcpshow me the latest metrics from my image-classification project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
trackio-mcp
MCP (Model Context Protocol) server support for trackio experiment tracking
This package enables AI agents to observe and interact with trackio experiments through the Model Context Protocol (MCP). Simply import trackio_mcp before trackio to automatically enable MCP server functionality.
Features
Zero-code integration: Just import
trackio_mcpbeforetrackioAutomatic MCP server: Enables MCP server on all trackio deployments (local & Spaces)
Rich tool set: Exposes trackio functionality as MCP tools for AI agents
Spaces compatible: Works seamlessly with Hugging Face Spaces deployments
Drop-in replacement: No changes needed to existing trackio code
Related MCP server: ActiveCampaign MCP Server
Installation
pip install trackio-mcpOr with development dependencies:
pip install trackio-mcp[dev]Quick Start
Basic Usage
Simply import trackio_mcp before importing trackio:
import trackio_mcp # This enables MCP server functionality
import trackio as wandb
# Your existing trackio code works unchanged
wandb.init(project="my-experiment")
wandb.log({"loss": 0.1, "accuracy": 0.95})
wandb.finish()The MCP server will be automatically available at:
Local:
http://localhost:7860/gradio_api/mcp/sseSpaces:
https://your-space.hf.space/gradio_api/mcp/sse
Deploy to Hugging Face Spaces with MCP
import trackio_mcp
import trackio as wandb
# Deploy to Spaces with MCP enabled automatically
wandb.init(
project="my-experiment",
space_id="username/my-trackio-space"
)
wandb.log({"loss": 0.1})
wandb.finish()Standalone MCP Server
Launch a dedicated MCP server for trackio tools:
from trackio_mcp.tools import launch_trackio_mcp_server
# Launch standalone MCP server on port 7861
launch_trackio_mcp_server(port=7861, share=False)Available MCP Tools
Once connected, AI agents can use these trackio tools:
Core Tools (via Gradio API)
log: Log metrics to a trackio run
upload_db_to_space: Upload local database to a Space
Extended Tools (via trackio-mcp)
get_projects: List all trackio projects
get_runs: Get runs for a specific project
filter_runs: Filter runs by name pattern
get_run_metrics: Get metrics data for a specific run
get_available_metrics: Get all available metric names for a project
load_run_data: Load and process run data with optional smoothing
get_project_summary: Get comprehensive project statistics
Example Agent Interaction
Human: "Show me the latest results from my 'image-classification' project"
Agent: I'll check your trackio projects and get the latest results.
[Tool: get_projects] → finds "image-classification" project
[Tool: get_runs] → gets runs for "image-classification"
[Tool: get_run_metrics] → gets metrics for latest run
[Tool: get_available_metrics] → gets metric names
Agent: Your latest image-classification run achieved 94.2% accuracy with a final loss of 0.18. The model trained for 50 epochs with best validation accuracy of 94.7% at epoch 45.MCP Client Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent:
Public Spaces:
{
"mcpServers": {
"trackio": {
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}Private Spaces/Datasets:
{
"mcpServers": {
"trackio": {
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}Local Development:
{
"mcpServers": {
"trackio": {
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}See Claude Code MCP docs for more info.
Public Spaces:
claude mcp add --transport sse trackio https://your-space.hf.space/gradio_api/mcp/ssePrivate Spaces/Datasets:
claude mcp add --transport sse --header "Authorization: Bearer YOUR_HF_TOKEN" trackio https://your-private-space.hf.space/gradio_api/mcp/sseLocal Development:
{
"mcpServers": {
"trackio": {
"type": "sse",
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}Add to your Cursor ~/.cursor/mcp.json file or create .cursor/mcp.json in your project folder. See Cursor MCP docs for more info.
Public Spaces:
{
"mcpServers": {
"trackio": {
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}Private Spaces/Datasets:
{
"mcpServers": {
"trackio": {
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}Local Development:
{
"mcpServers": {
"trackio": {
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}Add to your Windsurf MCP config file. See Windsurf MCP docs for more info.
Public Spaces:
{
"mcpServers": {
"trackio": {
"serverUrl": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}Private Spaces/Datasets:
{
"mcpServers": {
"trackio": {
"serverUrl": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}Local Development:
{
"mcpServers": {
"trackio": {
"serverUrl": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}Add to .vscode/mcp.json. See VS Code MCP docs for more info.
Public Spaces:
{
"mcp": {
"servers": {
"trackio": {
"type": "http",
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}
}Private Spaces/Datasets:
{
"mcp": {
"servers": {
"trackio": {
"type": "http",
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}
}Local Development:
{
"mcp": {
"servers": {
"trackio": {
"type": "http",
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
}Add to mcp.json in your project directory. See Gemini CLI Configuration for details.
Public Spaces:
{
"mcpServers": {
"trackio": {
"command": "npx",
"args": ["mcp-remote", "https://your-space.hf.space/gradio_api/mcp/sse"]
}
}
}Private Spaces/Datasets:
{
"mcpServers": {
"trackio": {
"command": "npx",
"args": ["mcp-remote", "https://your-private-space.hf.space/gradio_api/mcp/sse"],
"env": {
"HF_TOKEN": "YOUR_HF_TOKEN"
}
}
}
}Local Development:
{
"mcpServers": {
"trackio": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:7860/gradio_api/mcp/sse"]
}
}
}Create .cursor/mcp.json (or equivalent for your IDE):
Public Spaces:
{
"mcpServers": {
"trackio": {
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}Private Spaces/Datasets:
{
"mcpServers": {
"trackio": {
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}Local Development:
{
"mcpServers": {
"trackio": {
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}Configuration
Environment Variables
TRACKIO_DISABLE_MCP: Set to"true"to disable MCP functionality (default: MCP enabled)
Programmatic Control
import os
os.environ["TRACKIO_DISABLE_MCP"] = "true" # Disable MCP
import trackio_mcp # MCP won't be enabled
import trackioHow It Works
trackio-mcp uses monkey-patching to automatically:
Enable MCP server: Sets
mcp_server=Trueon all Gradio launchesEnable API: Sets
show_api=Trueto expose Gradio API endpointsAdd tools: Registers additional trackio-specific MCP tools
Preserve compatibility: No changes needed to existing trackio code
The package patches:
gradio.Blocks.launch()- Core Gradio launch methodtrackio.ui.demo.launch()- Trackio dashboard launchesAdds new MCP endpoints at
/gradio_api/mcp/sse
Deployment Examples
Local Development
import trackio_mcp
import trackio
# Start local tracking with MCP enabled
trackio.show() # Dashboard + MCP server at http://localhost:7860Public Spaces Deployment
import trackio_mcp
import trackio as wandb
# Deploy to public Spaces with MCP support
wandb.init(
project="public-model",
space_id="username/model-tracking"
)
wandb.log({"epoch": 1, "loss": 0.5})
wandb.finish()Private Spaces/Datasets Deployment
import trackio_mcp
import trackio as wandb
# Deploy to private Spaces with private dataset
wandb.init(
project="private-model",
space_id="organization/private-model-tracking", # Private space
dataset_id="organization/private-model-metrics" # Private dataset
)
wandb.log({"epoch": 1, "loss": 0.5})
wandb.finish()CLI Interface
# Launch standalone MCP server
trackio-mcp server --port 7861
# Check status and configuration
trackio-mcp status
# Test MCP server functionality
trackio-mcp test --url http://localhost:7860Security Considerations
Private Spaces: Use HF tokens for authentication with private spaces/datasets
Access Control: MCP server inherits trackio's access controls
Network Security: Consider firewall rules for production deployments
Token Management: Store HF tokens securely, use environment variables
Troubleshooting
MCP Server Not Available
import trackio_mcp
import trackio
# Check if MCP was disabled
import os
print("MCP Disabled:", os.getenv("TRACKIO_DISABLE_MCP"))
# Manual verification
trackio.show() # Look for MCP server URL in outputConnection Issues
Check URL: Ensure correct
/gradio_api/mcp/sseendpointAuthentication: Add Bearer token for private Spaces/datasets
Network: Verify firewall/proxy settings
Dependencies: Ensure
gradio[mcp]is installed
Tool Discovery Issues
# Test tools manually
from trackio_mcp.tools import register_trackio_tools
tools = register_trackio_tools()
tools.launch(mcp_server=True) # Test tools interfaceContributing
Fork the repository
Install development dependencies:
pip install -e .[dev]Make your changes
Run tests:
pytestSubmit a pull request
License
MIT License - see LICENSE file.
Acknowledgments
trackio - The excellent experiment tracking library
Gradio - For built-in MCP server support
Model Context Protocol - For the standardized AI tool protocol
Made with care for the AI research community