Releases: akshayjain3450/depot-mcp
Release list
depot-mcp 0.1.1
Install: npx -y depot-mcp (see the README for per-client config). Published to npm with provenance via trusted publishing, no stored token: https://www.npmjs.com/package/depot-mcp
First release published with npm trusted publishing (no stored token).
Fixed
- First live Depot CI run: Depot's diagnosis document uses longer enum names than the CLI's JSON (
FAILURE_DIAGNOSIS_STATE_GROUPED_FAILURES,FAILURE_DIAGNOSIS_TARGET_TYPE_RUN,DRILL_DOWN_COMMAND_KIND_LOGS, and so on); they now normalise togrouped_failures,run,logs, so states read correctly and next-step commands map to tools. depot_list_ci_runswith no status filter returned nothing, because Depot'sListRunsanswers an empty list unless a status filter is present; the tool now sends every status when the caller gives none.depot_get_ci_logsstrips ANSI colour and hyperlink escape sequences from log lines and labels lines with the step's name ([Run the test suite]) instead of its UUID key, when Depot provides one.
depot-mcp 0.1.0
First release of the read-only MCP server for Depot (depot.dev).
Install: npx -y depot-mcp (see the README for per-client config). Published to npm with provenance: https://www.npmjs.com/package/depot-mcp
First release.
Added
-
docs/tokens.md: which Depot token kind can call which tool and which Depot service, verified live. -
Read-only MCP server for Depot (depot.dev) over stdio, built on
@modelcontextprotocol/sdk1.x, protocol revision2025-11-25. -
16 read-only tools, all annotated
readOnlyHint: trueanddestructiveHint: false:- CI:
depot_diagnose_ci_failure,depot_list_ci_runs,depot_get_ci_run,depot_get_ci_logs,depot_get_ci_job_summary,depot_get_ci_metrics,depot_list_ci_artifacts,depot_list_ci_secrets,depot_list_ci_variables. - Builds and projects:
depot_diagnose_build,depot_list_builds,depot_list_projects,depot_get_project,depot_list_images,depot_get_usage. - Orientation:
depot_whoami, which validates the token and detects the multi-organization ambiguity.
- CI:
-
Two prompts:
diagnose-latest-failureandexplain-build-slowness. -
Bounded output on every tool (
DEPOT_MCP_OUTPUT_BUDGET,DEPOT_MCP_MAX_LOG_PAGES) with explicit truncation reporting. -
Credential-shaped CI variable values are redacted before they reach the model.
-
DEPOT_MCP_ALLOW_WRITESgate, reserved for a future version; enables nothing in 0.1.0. -
Distribution: npm package with
mcpNamefor the MCP Registry,server.json, an MCPBmanifest.jsonfor Claude Desktop, a Dockerfile, and a.mcp.json.examplefor Claude Code. -
CI on Node 20 and 22 (typecheck, lint, tests, build, pack, stdio smoke), a tag-triggered npm release workflow with provenance, Dependabot, issue and pull request templates.
-
CONTRIBUTING, SECURITY, CODE_OF_CONDUCT.
Changed
- License is Apache License 2.0 with the Commons Clause License Condition v1.0 (previously MIT during pre-release development). See LICENSE and NOTICE.
depot_get_ci_logsforward paging is an exact cursor: a window that closes mid-page returns a server-issuednextPageToken, and following tokens yields every line exactly once. Filters (grep,stepKey,stream) are documented as applied in this server after fetching.- When
DEPOT_MCP_MAX_LOG_PAGESstops a log walk,depot_get_ci_logsanddepot_diagnose_buildsay the log continues and return a continuation token instead of presenting the middle of the log as its tail. New output fields:pageCapHit,lines[].bodyTruncated,logPageCapHit,logNextPageToken,logLinesTruncated,failingStep.errorTruncated. - Log line bodies, step errors, and Depot's diagnosis and fix text are capped (2000 characters) so one oversized line cannot exceed the output budget through
structuredContent. depot_get_usagetreats dates as UTC and makes a date-onlyendAtinclusive of that day; unparseable dates are rejected with the field name.depot_list_ci_artifactsanddepot_list_projectsacceptpageToken.depot_whoamiwarns whenDEPOT_ORG_IDis not among the organizations the token can see.depot_get_ci_metricsrespectsDEPOT_MCP_OUTPUT_BUDGETfor the raw document it returns.openWorldHintisfalseon every tool: the server talks to one fixed, authenticated API.DEPOT_API_URLmust behttps://(plainhttp://only for localhost), with no credentials, query, or fragment. The rejected value is never echoed.DEPOT_TOKENmust be a single line of printable ASCII; the rejected value is never echoed.- Retries honour
Retry-After(capped at 8 s), retry a timed-out request once at most, and stop at a 40 s overall deadline per call. Responses over 8 MiB are refused. --help/-hand--version/-vflags; graceful shutdown on SIGINT, SIGTERM, and stdin close;main/exportspoint atdist/server.jsso importing the package does not start a server.- The package description and keywords lead with "depot.dev" so registry searches can tell this apart from unrelated "depot" projects.
Fixed
-
depot_diagnose_buildworks against a real failed build. Depot's JSON binding ofGetBuildStepsis broken server-side, so the two build-step RPCs now use Connect's binary protobuf encoding through a small dependency-free codec built from Depot's publishedbuild.proto. When Depot's step or step-log endpoints fail server-side the tool degrades to the build-level facts and says what is missing (stepsUnavailable,logsUnavailable) instead of returning an error. -
depot_diagnose_ci_failuresent the diagnosis target type as a name; Depot accepts only the enum number and answered every call with400 target_type is required. Found on the first live run against a real organization. -
depot_whoamireports the token kind. An Organization token cannot callListOrganizations(Depot answers401 Invalid token), so that call is no longer treated as the authentication check; the organization id comes from the visible projects instead. A user token is recognised by the opposite pattern and the affected tools are named. Both verified live on 2026-09-06. -
depot_get_ci_logsdropped lines when paging forward (lines pasttailLinesin the last fetched page were unreachable, and over-budget forward windows were trimmed from the start). -
The text budget could leave holes in a summary: an oversized line was dropped while later lines were still appended. The overflowing line is now truncated and nothing follows it.
-
Probe misses while resolving a job or attempt id counted against the log page cap.
-
Status enums with
JOB_CONCLUSION_/ATTEMPT_CONCLUSION_prefixes were not normalised, so such jobs never counted as failed. -
Wrong-kind-of-id fall-through is consistent across diagnose, metrics, logs, and summary (
not_foundandinvalid_argument). -
Prompt arguments are sanitised and quoted before interpolation.
-
Identifiers are trimmed; whitespace-only ids are rejected before any request is made.
Security
- Tokens containing line breaks or spaces no longer leak through the HTTP client's "invalid header value" error; transport and Connect error messages are scrubbed of the token.
- Untrusted CI content (logs, summaries, Depot's AI diagnosis and suggested fix) is fenced and labelled in tool summaries, and the server instructions tell the model to treat it as data.
- Credential redaction rewritten: unanchored vendor patterns (GitHub, GitLab, AWS, Google, Slack, Stripe, OpenAI, Anthropic, npm, PyPI, Docker Hub, Vault, Depot, JWT, Bearer/Basic, PEM), structural rules (
user:pass@URLs,password=-style fragments), a length rule, and a windowed entropy rule that no longer over-redacts URLs, paths, image references, semver strings, or git SHAs. Name matching is segment-based, soAUTHOR_NAMEandCERT_PATHare no longer redacted whileDB_PASSandSLACK_WEBHOOKare.