Mcp Tensorboard — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Tensorboard (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that exposes TensorBoard data through a standardized API. Built with FastMCP, this server enables AI coding agents to query and analyze TensorBoard experiment data programmatically.
uvx --from git+https://github.com/1Kraks/mcp-tensorboard mcp-tensorboard --logdir /path/to/logs# Clone the repository
git clone https://github.com/1Kraks/mcp-tensorboard
cd mcp-tensorboard
# Create virtual environment and install
uv venv
source .venv/bin/activate # macOS/Linux
uv sync
# Run the server
uv run mcp-tensorboard --logdir /path/to/logspip install -e .
mcp-tensorboard --logdir /path/to/logsmcp-tensorboard --logdir <path> [--transport stdio|http|sse] [--port PORT] [--host HOST] [--debug]| Option | Default | Description |
|---|---|---|
--logdir | (required) | Path to TensorBoard logs directory |
--transport | stdio | Transport protocol |
--port | 8000 | Port for HTTP/SSE transport |
--host | 0.0.0.0 | Host for HTTP/SSE transport |
--debug | off | Enable debug logging |
TENSORBOARD_LOGDIR - Default log directory (alternative to --logdir)TENSORBOARD_LOGS - Alternative log directory variable| Tool | Description |
|---|---|
tensorboard_list_runs | List all runs in the log directory |
| Tool | Description |
|---|---|
tensorboard_list_scalar_tags | List scalar tags for a run |
tensorboard_get_scalar_series | Get time series for a scalar |
tensorboard_get_scalar_series_batch | Get multiple scalars in one call |
tensorboard_get_scalar_last | Get the most recent scalar value |
| Tool | Description |
|---|---|
tensorboard_list_tensor_tags | List tensor tags for a run |
tensorboard_get_tensor_series | Get time series for scalar tensors |
| Tool | Description |
|---|---|
tensorboard_list_histogram_tags | List histogram tags |
tensorboard_get_histogram_series | Get raw histogram data |
tensorboard_list_distribution_tags | List distribution tags (alias) |
tensorboard_get_distribution_series | Get compressed distributions (recommended) |
| Tool | Description |
|---|---|
tensorboard_list_image_tags | List image tags |
tensorboard_get_image_series | Get image references (blob keys) |
tensorboard_get_image | Fetch image by blob key (returns base64) |
| Tool | Description |
|---|---|
reward_list_experiments | List all reward experiments with metadata |
reward_get_stats | Get summary statistics for a reward experiment |
reward_compare | Compare multiple reward functions side-by-side |
reward_get_trajectories | Get training trajectories for analysis |
reward_summary_report | Generate comprehensive analysis report |
| Tool | Description |
|---|---|
reward_rank_by_convergence | Rank rewards by convergence speed (steps to threshold GC) |
reward_get_convergence_summary | Get summary statistics for convergence analysis |
Convergence Metrics:
steps_to_threshold — First checkpoint where goal_completion >= thresholdgc_at_threshold — GC value at threshold step (tie-breaker for same-step convergence)converged — Whether threshold was reachedUsage Example:
{
"method": "tools/call",
"params": {
"name": "reward_rank_by_convergence",
"arguments": {
"reward_ids": ["reward_0001", "reward_0002", "reward_0003"],
"threshold": 0.95
}
}
}Ranking Logic:
Option 1: Run from git (no install)
claude mcp add --transport http tensorboard-http \
uvx --from git+https://github.com/1Kraks/mcp-tensorboard mcp-tensorboard --logdir /path/to/logs --transport httpOption 2: Local installation
# Install globally or in a shared venv
pip install -e /path/to/mcp-tensorboard
# Add to Claude Code
claude mcp add tensorboard mcp-tensorboard --logdir /path/to/logsOption 3: Via Claude Code settings.json
Add to ~/.claude/settings.json:
{
"mcpServers": {
"tensorboard": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/1Kraks/mcp-tensorboard",
"mcp-tensorboard",
"--logdir",
"/path/to/logs"
]
}
}
}Add to VS Code settings.json:
{
"github.copilot.chat.mcp.servers": {
"tensorboard": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"git+https://github.com/1Kraks/mcp-tensorboard",
"mcp-tensorboard",
"--logdir",
"/path/to/logs"
]
}
}
}Add to Cline's MCP settings:
{
"mcpServers": {
"tensorboard": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/1Kraks/mcp-tensorboard",
"mcp-tensorboard",
"--logdir",
"/path/to/logs"
]
}
}
}Add to Cursor's MCP configuration:
{
"mcpServers": {
"tensorboard": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/1Kraks/mcp-tensorboard",
"mcp-tensorboard",
"--logdir",
"/path/to/logs"
]
}
}
}For HTTP transport, run the server:
mcp-tensorboard --logdir /path/to/logs --transport http --port 8000Connect to http://localhost:8000/mcp from any MCP-compatible client.
{
"method": "tools/call",
"params": {
"name": "tensorboard_list_runs",
"arguments": {}
}
}{
"method": "tools/call",
"params": {
"name": "tensorboard_get_scalar_series",
"arguments": {
"run": ".",
"tag": "loss",
"max_points": 500
}
}
}{
"method": "tools/call",
"params": {
"name": "tensorboard_get_scalar_series_batch",
"arguments": {
"run": "experiment_1",
"tags": ["loss", "accuracy", "val_loss", "val_accuracy"],
"max_points": 200
}
}
}{
"method": "tools/call",
"params": {
"name": "tensorboard_get_distribution_series",
"arguments": {
"run": ".",
"tag": "weights",
"max_points": 50
}
}
}# Clone and set up environment
git clone https://github.com/1Kraks/mcp-tensorboard
cd mcp-tensorboard
uv venv
source .venv/bin/activate
uv sync --all-extraspytestmcp-tensorboard --logdir /path/to/logs --debug# Format code
ruff format .
# Lint
ruff check .mcp-tensorboard/
├── pyproject.toml # Project configuration
├── README.md # This file
├── src/mcp_tensorboard/
│ ├── __init__.py # Package init
│ ├── __main__.py # python -m entry point
│ ├── server.py # FastMCP server & tools
│ ├── data_reader.py # Pure Python event file reader
│ └── types.py # Pydantic response models
└── tests/
└── test_server.py # Unit testsNo runs found
--logdir points to the directory containing TensorBoard event filesevents.out.tfevents.*Import errors
uv sync or pip install -e . to install dependenciesHTTP transport not connecting
curl http://localhost:8000/mcpImages not displaying
pip install pillowMIT License - See LICENSE file for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.