harbor-mcp

harbor-mcp

MCP server for the Harbor hub that exposes evaluation jobs, trials, uploads, and published packages as tools for AI agents.

Category
Visit Server

README

harbor-mcp

An MCP server for the Harbor hub. It exposes your evaluation jobs, trials, uploads, and published packages as tools an agent (Claude Code, etc.) can call directly, so you can ask "did my upload work?" or "what was the mean reward on job X?" without leaving the chat.

It wraps Harbor's own async client classes (HubClient, UploadDB, RegistryDB, Uploader, Downloader, Publisher), so there is no separate API layer to maintain. Harbor reads HARBOR_API_KEY and handles token exchange itself.

Setup

uv sync
cp .env.example .env      # then set HARBOR_API_KEY

Mint a key with harbor auth login (it stores one in ~/.harbor/credentials.json) and put it in .env:

HARBOR_API_KEY=sk-harbor-...

The repo ships a .mcp.json that Claude Code auto-discovers when started from this directory. It sources .env before launching, so your key never lives in the config. Verify the connection by asking the agent to call whoami.

Tools

Read tools work with any valid HARBOR_API_KEY. Write tools are gated (see below).

Tool What it does
whoami Confirm credentials; returns the user id and key source (never the key)
list_jobs List your hub jobs with trial counts, cost, and reward
get_job_overview Roll up one job: counts, retries, tokens, cost, reward, models
get_job_trials List a job's trials (task, status, reward, error, duration)
get_trial_detail One trial's full record
check_job_upload Verify an upload: row exists, archive present, per-status counts, missing archives
check_task_published Whether a task version exists in the registry (missing → published: false)
resolve_dataset Resolve a dataset version and list its member tasks
upload_job Upload a local job directory (idempotent, resumable)
publish_task / publish_dataset Publish a local task/dataset to the registry
download_job Download and extract a job's archive locally
set_job_visibility Flip a job public/private
share_job Grant read access to orgs/users
delete_job Delete a job's rows (permanent; requires confirm)

Write gating

Every write tool refuses unless HARBOR_MCP_ENABLE_WRITES=true in the server environment. delete_job additionally requires confirm=true per call, which the agent should pass only after you explicitly approve deleting a specific job. This keeps read-only use the safe default.

Testing

Tier Command Needs Uses an LLM?
unit make test nothing (harbor clients mocked) no
integration make test-integration HARBOR_API_KEY no (tools driven directly over MCP stdio)
e2e make test-e2e HARBOR_API_KEY + HARBOR_TEST_ENV no (oracle agent runs solve.sh)
evals make evals HARBOR_API_KEY + ANTHROPIC_API_KEY + EVAL_* yes (agent rollouts)

HARBOR_TEST_ENV selects where harbor runs the fixture job: docker (default) or modal. Modal needs its own credentials (modal token new) and the modal extra (uv sync --dev --extra modal), which pulls in harbor's modal support; the base install omits it. The integration and e2e tiers are deterministic (no agent decisions), so they gate PRs without spending on model calls; the evals/ agent rollouts run separately once tool use is proven at the lower tiers.

The harbor dependency is pinned exactly because this server imports Harbor internals, which are not a stable public API. Bump it deliberately.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured