A Model Context Protocol (MCP) server implementation for SwanLab, combining SwanLab-OpenAPI & FastMCP.
- Workspace Queries - List accessible workspaces and enumerate workspace projects
- Project Queries - List projects and inspect a specific project with run summaries
- Run Queries - Inspect runs with normalized fields (
id,state,profile,user) - Metric Queries - Fetch metric tables with consistent
columns,rows, andtotal - API Integration - Provide read-only access through SwanLab OpenAPI (
swanlab.Api)
- Language: Python 3.12+
- Core Framework: FastMCP (v2.14.4+)
- API Client: SwanLab SDK
- Config Management: Pydantic Settings
Add the following configuration to your relative mcp config list
{
"mcpServers":
...
{
"swanlab-mcp": {
"command": "uvx",
"args": ["--from", "swanlab-mcp", "swanlab_mcp", "--transport", "stdio"],
"env": {
"SWANLAB_API_KEY": "your_api_key_here"
}
}
}
}For Claude Code Users, you can config like this:
claude mcp add --env SWANLAB_API_KEY=<your_api_key> -- swanlab_mcp uvx --from swanlab-mcp swanlab_mcp --transport stdio- Python >= 3.12
- SwanLab API Key (get it from SwanLab)
# Using uv (recommended)
uv sync
# Or using pip
pip install -e .Create a .env file and configure your API key:
cp .env.template .envEdit the .env file:
SWANLAB_API_KEY=your_api_key_here# Using stdio transport (default)
python -m swanlab_mcp
# Or using CLI
python -m swanlab_mcp --transport stdio
# Check version
python -m swanlab_mcp --versionAfter configuration, restart Claude Desktop to interact with SwanLab via the MCP protocol.
Available Tools:
swanlab_list_workspaces- List workspacesswanlab_get_workspace- Get workspace detailsswanlab_list_projects_in_workspace- List projects in one workspaceswanlab_list_projects- List projectsswanlab_get_project- Get project detailsswanlab_list_runs_in_project- List runs in one projectswanlab_list_runs- List runs with optional filters (state,config.*)swanlab_get_run- Get run detailsswanlab_get_run_config- Get run configswanlab_get_run_metadata- Get run metadataswanlab_get_run_requirements- Get run requirementsswanlab_list_run_metric_keys- List available metric keys for a runswanlab_get_run_metrics- Get run metric table
Resource Definitions:
- workspace: collection of projects (
PERSONorTEAM) identified byusername. - project: collection of runs identified by
path = username/project_name. - run: single experiment identified by
path = username/project_name/experiment_id. - metric: tabular run history returned as
{path, keys, x_axis, sample, columns, rows, total}.
# Using Makefile
make format
# Or manually
uvx isort . --skip-gitignore
uvx ruff format . --quietuvx ruff check .bash scripts/install-hooks.sh- SwanLab
- Model Context Protocol
- FastMCP v2
- modelscope-mcp-server
- TrackIO-mcp-server
- Simple-Wandb-mcp-server
MIT License