Skip to main content
Glama
Pawangunjkar

Artifact Registry MCP Server

by Pawangunjkar

Artifact Registry MCP Server

Open-source Model Context Protocol (MCP) server owned by Pawan Gunjkar (pawangunjkar@gmail.com · GitHub). MIT licensed.

Production-grade MCP server supporting both Sonatype Nexus Repository 3 and JFrog Artifactory. Bridges CI/CD build pipelines (github-mcp and jenkins-mcp) and Kubernetes/OpenShift deployment automation (k8s-mcp).


Project Information

Item

Value

Package

artifact-registry-mcp

CLI Entrypoint

artifact-mcp, artifact-registry-mcp

Runtime

Python 3.10+, FastMCP, stdio, httpx, pydantic

Supported Registries

Sonatype Nexus Repository 3, JFrog Artifactory

Supported Formats

maven2, docker/OCI, npm, pypi, helm, raw/generic

Security Model

Multi-session credential caching, Confirmation-gated mutations

Sibling MCPs

github-mcp, jenkins-mcp, k8s-mcp, observability-mcp


Related MCP server: MCP Workflow Engine

Architecture & Supply Chain Flow

flowchart TB
  subgraph CI["Layer 1 — CI & Source Control"]
    GH["github-mcp Actions"]
    JK["jenkins-mcp Build Jobs"]
  end

  subgraph MCP["Layer 2 — Binary Supply Chain Control Plane"]
    REG["artifact-registry-mcp"]
    CS["CredentialStore (~/.artifact-mcp-cache)"]
    GATE["Confirmation Gate (confirm=true)"]
  end

  subgraph BACKENDS["Layer 3 — Enterprise Registries"]
    NEXUS["Sonatype Nexus Repository 3 (:8081)"]
    JFROG["JFrog Artifactory (:8082)"]
  end

  subgraph DEPLOY["Layer 4 — Deployment Runtime"]
    K8S["k8s-mcp (OpenShift / EKS / AKS / GKE)"]
  end

  GH -->|"artifact_upload_binary"| REG
  JK -->|"artifact_upload_binary"| REG
  REG --> CS
  REG --> GATE
  GATE -->|"Upload / Promote / Prune"| NEXUS
  GATE -->|"Upload / Promote / Prune"| JFROG
  NEXUS -->|"artifact_verify_checksum_integrity"| REG
  JFROG -->|"artifact_verify_checksum_integrity"| REG
  REG -->|"artifact_get_docker_image_tags_and_digests"| K8S
sequenceDiagram
  autonumber
  actor Agent as AI Coding Agent
  participant CI as CI (jenkins-mcp / github-mcp)
  participant MCP as artifact-registry-mcp
  participant Reg as Nexus 3 / Artifactory
  participant K8s as k8s-mcp

  Agent->>CI: Run build & tests (output jar/archive + SHA256)
  CI-->>Agent: Build artifact + Expected SHA256
  Agent->>MCP: artifact_upload_binary(confirm=true)
  MCP->>Reg: Upload binary & compute remote SHA256
  Reg-->>MCP: Remote checksum attestation
  Agent->>MCP: artifact_verify_checksum_integrity(...)
  MCP-->>Agent: ATTESTATION PASSED (Tamper-Free)
  Agent->>MCP: artifact_promote_release(dev-local -> prod-release)
  MCP->>Reg: Atomic copy / staging promotion
  Agent->>MCP: artifact_get_docker_image_tags_and_digests(...)
  MCP-->>Agent: Resolved immutable sha256:... digest
  Agent->>K8s: k8s_update_deployment_image(image@sha256:...)

12 Core Tools Reference

Connection & Session Management (5 Tools)

Tool

Access

Description

artifact_connect

Read-only

Connect to Sonatype Nexus 3 or JFrog Artifactory and create a named session

artifact_status

Read-only

Check connection health, version, authenticated user, and storage quota

artifact_disconnect

Read-only

Disconnect an active session and close HTTP connections

artifact_list_sessions

Read-only

List all active and cached registry sessions with masked credentials

artifact_save_credentials

Read-only

Save connection credentials to local cache file

Binary Discovery & Supply-Chain Attestation (4 Tools)

Tool

Access

Description

artifact_list_repositories

Read-only

List repositories filtered by format (maven2, docker, npm, pypi, helm, raw) and type

artifact_search_binaries

Read-only

Search components by name, group, version, or SHA256; returns URLs, timestamps, checksums

artifact_get_docker_image_tags_and_digests

Read-only

Resolves immutable sha256:... container digest for handoff to k8s-mcp

artifact_verify_checksum_integrity

Read-only

Compares expected SHA256 from CI against stored checksum before allowing deployment

Confirmation-Gated Mutating Tools (3 Tools)

Tool

Access

Description

artifact_upload_binary

Confirm (confirm=true)

Computes local SHA256, uploads file to registry, and verifies remote checksum match

artifact_promote_release

Confirm (confirm=true)

Promotes immutable artifact from staging to release repository without rebuilding

artifact_cleanup_old_snapshots

Confirm (dry_run=false, confirm=true)

Prunes stale snapshot builds beyond retention count (dry_run=true safe simulation)


Setup & Configuration

Environment Variables

Configure the following environment variables (or let the agent prompt you via artifact_connect):

# Registry Type: "nexus" or "artifactory"
export ARTIFACT_REGISTRY_TYPE=nexus

# Registry Base URL
export ARTIFACT_REGISTRY_URL=http://localhost:8081

# Credentials
export ARTIFACT_REGISTRY_USER=admin
export ARTIFACT_REGISTRY_TOKEN=your-token-or-password

Cursor Setup (.cursor/mcp.json)

{
  "mcpServers": {
    "artifact-registry": {
      "command": "uvx",
      "args": ["artifact-registry-mcp"],
      "env": {
        "ARTIFACT_REGISTRY_TYPE": "${ARTIFACT_REGISTRY_TYPE}",
        "ARTIFACT_REGISTRY_URL": "${ARTIFACT_REGISTRY_URL}",
        "ARTIFACT_REGISTRY_USER": "${ARTIFACT_REGISTRY_USER}",
        "ARTIFACT_REGISTRY_TOKEN": "${ARTIFACT_REGISTRY_TOKEN}"
      }
    }
  }
}

Claude Code Setup (.mcp.json)

{
  "mcpServers": {
    "artifact-registry": {
      "command": "uvx",
      "args": ["artifact-registry-mcp"],
      "env": {
        "ARTIFACT_REGISTRY_TYPE": "${ARTIFACT_REGISTRY_TYPE}",
        "ARTIFACT_REGISTRY_URL": "${ARTIFACT_REGISTRY_URL}",
        "ARTIFACT_REGISTRY_USER": "${ARTIFACT_REGISTRY_USER}",
        "ARTIFACT_REGISTRY_TOKEN": "${ARTIFACT_REGISTRY_TOKEN}"
      }
    }
  }
}

Testing & Quality Assurance

Run the test suite:

uv run -m unittest discover tests

Build the Agensi skill package:

uv run python scripts/build_agensi_zip.py

Build distribution packages (wheel and sdist):

uv build

License

MIT License. Copyright (c) 2026 Pawan Gunjkar.

Available Tools

12 tools
artifact_cleanup_old_snapshotsA

Identify and prune stale snapshot artifacts to reclaim storage.

⚠️ CONFIRMATION-GATED MUTATING TOOL: Requires dry_run=false AND confirm=true to delete.

Finds all snapshot versions of a component, sorts by timestamp/version descending, preserves the latest keep_latest_n snapshots, and simulates or deletes stale items.

Purpose: Maintain storage quotas and enforce artifact retention policies. When to Use: In Workflow 4 during scheduled maintenance or when storage alerts trigger. Behavior: Dry-run simulation by default. Destructive deletion when dry_run=false and confirm=true. Side Effects: Permanently deletes pruned snapshot artifacts when executed.

Args: repository: Repository containing snapshot artifacts (e.g. 'maven-snapshots', 'libs-snapshot-local') component_name: Name of the component to clean up (e.g. 'billing-engine') keep_latest_n: Number of most recent snapshots to preserve (default: 5) dry_run: If True, simulates cleanup without deleting files (default: True) confirm: Must be True when dry_run=False to execute permanent deletion (default: False) session_name: Session to use (default: 'default')

NameRequiredDescriptionDefault
confirmNo
dry_runNo
repositoryYes
session_nameNodefault
keep_latest_nNo
component_nameYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so well. It discloses that the tool is confirmation-gated and mutating, defaults to dry-run simulation, requires dry_run=false and confirm=true for permanent deletion, and explicitly warns about permanent side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the safety warning, then structured into Purpose, When to Use, Behavior, Side Effects, and Args. Despite some repetition between the warning and behavior sections, every part earns its place by supporting safe invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return value details are not required in the description. For a destructive cleanup tool, the description supplies purpose, usage context, safety gating, side effects, and all parameter semantics needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all six parameters. It explains repository, component_name, keep_latest_n, dry_run, confirm, and session_name with defaults and examples, adding substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: identify and prune stale snapshot artifacts to reclaim storage. It explains the algorithm of finding snapshot versions, sorting them, preserving the latest N, and deleting the rest, which clearly distinguishes this cleanup operation from siblings such as upload, search, and promote.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit usage context: Workflow 4 during scheduled maintenance or when storage alerts trigger. It also clarifies the dry-run versus destructive execution path, though it does not name alternatives or state when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_connectA

Connect to Sonatype Nexus 3 or JFrog Artifactory and create a named session.

Probes registry system status and version to verify connectivity and credentials. Credentials are automatically cached to ~/.artifact-mcp-cache/credentials.json.

Purpose: Establish an authenticated session before calling any registry tool. When to Use: At the start of an artifact supply chain workflow or to switch between staging/production registries using named sessions. Behavior: Read-Only probe (no artifacts mutated). Side Effects: Caches session credentials locally.

Args: registry_type: 'nexus' (Sonatype Nexus 3) or 'artifactory' (JFrog Artifactory) base_url: Registry base URL (e.g. 'http://localhost:8081' or 'https://myorg.jfrog.io/artifactory') token_or_password: Password, API Token, or Access Token username: Username (e.g. 'admin' or 'ci-agent') session_name: Name for this session, e.g. 'prod', 'staging' (default: 'default')

NameRequiredDescriptionDefault
base_urlNo
usernameNo
session_nameNodefault
registry_typeNo
token_or_passwordNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it declares the probe is read-only with no artifacts mutated and discloses the concrete local side effect (credentials cached to ~/.artifact-mcp-cache/credentials.json). It doesn't describe what happens on auth failure or whether a session name collision overwrites an existing session, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, when-to-use, behavior, and side effects are bolded and front-loaded, so an agent can scan it quickly. The Args block partly duplicates the schema, but given 0% schema coverage that redundancy is doing useful work rather than wasting space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter connection tool with no annotations, the description covers purpose, prerequisites, every parameter, and the credential-caching side effect; the output schema handles return values. Only edge-case behavior (auth failure, session overwrite) is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and the Args block does: it explains registry_type values ('nexus'/'artifactory'), gives base_url examples, clarifies token_or_password can be a password, API token, or access token, and states the session_name default. It could add the defaults for base_url/username/registry_type, but the mapping of meaning to each parameter is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Connect to Sonatype Nexus 3 or JFrog Artifactory and create a named session') and names both supported registry products. It is clearly distinguishable from siblings like artifact_disconnect and artifact_list_sessions without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to Use' block explicitly says to call it at the start of an artifact supply chain workflow or to switch between staging/production registries, and the Purpose line states it must be called 'before calling any registry tool.' Both the when and the prerequisite ordering are spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_disconnectA

Disconnect an active artifact registry session and close HTTP connections.

Purpose: Clean up open network sessions and release memory. When to Use: When switching environments or finishing a pipeline run. Behavior: Closes local HTTP client. Side Effects: Removes session from active memory.

Args: session_name: Session to disconnect (default: 'default')

NameRequiredDescriptionDefault
session_nameNodefault

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and discloses meaningful behavior: it closes the local HTTP client and removes the session from active memory. It does not cover failure behavior, idempotency, or auth requirements, but the main side effects are stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and organized into useful headings. There is minor redundancy between purpose, behavior, and side effects, but no wasted prose that impedes understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single optional parameter and the presence of an output schema, the description is reasonably complete for a cleanup tool. It covers purpose, timing, behavior, side effects, and the parameter, leaving only minor operational details unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description should add meaning. It identifies session_name as the session to disconnect and repeats the default, but it does not explain how to discover valid session names or what happens if the named session does not exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: disconnect an active artifact registry session and close HTTP connections. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools such as artifact_connect or artifact_list_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage contexts: when switching environments or finishing a pipeline run. It does not name alternatives or exclusions, but the intended situation is clear enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_get_docker_image_tags_and_digestsA

Query Docker/OCI repositories to resolve an immutable sha256:... image digest.

Queries Docker v2 manifest endpoints and AQL in Nexus and Artifactory. Produces an immutable image reference (image@sha256:...) and ready-to-run tool arguments for k8s-mcp rollouts.

Purpose: Bridge container registry images to Kubernetes deployments securely. When to Use: Right before calling k8s-mcp to deploy or update a container workload. Behavior: Read-Only query. Side Effects: None.

Args: repository: Docker repository key/name in the registry (e.g. 'docker-local' or 'docker-hosted') image_name: Container image name (e.g. 'payment-service' or 'microservices/auth') limit: Maximum number of tags to return (default: 20) session_name: Session to query (default: 'default')

NameRequiredDescriptionDefault
limitNo
image_nameYes
repositoryYes
session_nameNodefault

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the safety burden and states 'Read-Only query' and 'Side Effects: None.' It also discloses the underlying endpoints (Docker v2 manifests and AQL in Nexus/Artifactory) and the output shape, though it omits auth or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the key operation, then uses clear Purpose, When to Use, Behavior, Side Effects, and Args sections. Despite some repetition around immutability, every section contributes useful selection or invocation context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter tool with an output schema, the description supplies the missing schema semantics, states the safety profile, explains the deployment workflow, and describes what gets produced. No critical invocation detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all four parameters with examples and defaults. Repository, image_name, limit, and session_name each receive meaningful context beyond their bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: query Docker/OCI repositories to resolve an immutable sha256 digest. It also explains the concrete output—an image@sha256 reference and ready-to-run k8s-mcp arguments—which clearly distinguishes it from sibling artifact tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this right before calling k8s-mcp to deploy or update a container workload, giving a clear usage context. It does not name exclusions or alternative registry paths, but the intended timing is well specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_list_repositoriesA

List repositories filtered by package format and repository type.

Works across both Nexus 3 (/service/rest/v1/repositories) and Artifactory (/api/repositories).

Purpose: Inspect repository topology and locate target repos for upload or promotion. When to Use: During supply chain discovery before publishing or pulling artifacts. Behavior: Read-Only query. Side Effects: None.

Args: format_filter: Filter by package format: 'maven2', 'docker', 'npm', 'pypi', 'helm', 'raw' (or 'generic') type_filter: Filter by type: 'hosted' (or 'local'), 'proxy' (or 'remote'), 'group' (or 'virtual') session_name: Session to query (default: 'default')

NameRequiredDescriptionDefault
type_filterNo
session_nameNodefault
format_filterNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description must carry the full behavioral burden; it does declare 'Read-Only query' and 'Side Effects: None', which is the most important trait. It is silent on auth/session prerequisites (what happens if session_name is unauthenticated) and on result size or pagination, both material for a 3-param discovery call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then Purpose/When to Use/Behavior/Args sections that are easy to scan. 'Behavior: Read-Only query' and 'Side Effects: None' are somewhat redundant with each other, but necessary given the absence of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and all three parameters are documented with accepted values. The remaining gap is operational: no mention of behavior when the named session is missing or unauthenticated, nor of any result-size or pagination characteristics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (bare strings, no descriptions, no enums), so the description must compensate, and it does: it enumerates accepted format values ('maven2', 'docker', 'npm', 'pypi', 'helm', 'raw'/'generic'), type values with host-vs-cloud aliases ('hosted'/'local', 'proxy'/'remote', 'group'/'virtual'), and the session default. It does not state whether filters are case-insensitive or whether an empty filter returns all repositories.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List repositories') plus the two filter dimensions and notes it works against both Nexus 3 and Artifactory. An agent can tell what it returns without opening the schema. It does not name a sibling it could be confused with, though none of the siblings list repositories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'When to Use: During supply chain discovery before publishing or pulling artifacts' gives a clear situational trigger and implicitly ties it to artifact_upload_binary and artifact_promote_release. There is no explicit exclusion or 'use X instead' routing, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_list_sessionsA

List all active and cached registry sessions with masked credentials.

Purpose: Review available registry targets, environments, and versions. When to Use: To determine which sessions are configured before executing workflows. Behavior: Read-Only local inspection. Side Effects: None.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so reasonably: it declares read-only local inspection, no side effects, and that credentials come back masked. It stops short of stating whether sessions come from a local cache file or remote registry, which would matter for trust in the output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first sentence and organized under clear labels, so an agent can scan it quickly. There is mild redundancy between 'Read-Only local inspection' and 'Side Effects: None', which cost it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and with no inputs the description has little else to cover. It adequately supports correct invocation, though it leaves the notion of a 'session' versus a connection undefined relative to artifact_connect/artifact_disconnect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline applies. The schema is empty and fully self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('List all active and cached registry sessions') plus the scope of what is returned ('masked credentials'), which is enough to distinguish it from siblings like artifact_list_repositories or artifact_status. It is clear but does not explicitly contrast with those near-neighbors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to Use' line gives a concrete trigger: determining which sessions are configured before executing workflows. That establishes context well, but no exclusion or named alternative (e.g., 'use artifact_connect to add one') is offered, so the agent must infer when not to call it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_promote_releaseA

Promote an immutable artifact from staging/snapshot to production release repository.

⚠️ CONFIRMATION-GATED MUTATING TOOL: Requires confirm=true to execute.

Promotes a tested, immutable component from staging (e.g. 'dev-local', 'maven-staging') to production release (e.g. 'prod-release', 'maven-releases') without rebuilding, maintaining complete provenance and cryptographic integrity.

Purpose: Supply-chain promotion between pipeline stages. When to Use: In Workflow 2 after integration/smoke tests pass. Behavior: MUTATING. Copies component to target release repository. Side Effects: Modifies target release repository contents.

Args: source_repo: Source repository key (e.g. 'dev-local', 'staging-repo') target_repo: Target release repository key (e.g. 'prod-release', 'maven-releases') artifact_or_build_name: Name of the artifact or build component (e.g. 'cart-service') version: Version string to promote (e.g. '1.5.0') confirm: Must be True to execute promotion (default: False) session_name: Session to use (default: 'default')

NameRequiredDescriptionDefault
confirmNo
versionYes
source_repoYes
target_repoYes
session_nameNodefault
artifact_or_build_nameYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden well: it identifies the tool as MUTATING, confirmation-gated, and side-effecting because it modifies the target release repository. It could be slightly stronger by stating permission requirements or overwrite/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the confirmation warning and organized into useful sections. There is minor repetition between the opening sentence and the Purpose/Behavior sections, but the structure is efficient for a six-parameter mutating tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations, 0% schema description coverage, and the presence of an output schema, the description provides enough context to select and invoke the tool correctly. It covers purpose, usage timing, mutation behavior, side effects, confirmation, and every argument.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters, and it does. Each argument is named with meaning and examples, and defaults for confirm and session_name are stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: promote an immutable artifact from staging/snapshot to a production release repository. It clearly distinguishes promotion from sibling operations such as upload, cleanup, search, and checksum verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: in Workflow 2 after integration/smoke tests pass. It also makes the confirmation requirement clear, though it does not name alternatives or explicit when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_save_credentialsA

Save registry credentials to the local persistent cache file.

Purpose: Cache connection details so future sessions can reconnect automatically. When to Use: When pre-configuring staging/production environments without running queries. Behavior: Local file write to ~/.artifact-mcp-cache/credentials.json. Side Effects: Overwrites existing cached credentials for session_name.

Args: registry_type: 'nexus' or 'artifactory' base_url: Registry base URL token_or_password: Password, API Token, or Access Token username: Username (e.g. 'admin') session_name: Session name to store (default: 'default')

NameRequiredDescriptionDefault
base_urlYes
usernameNo
session_nameNodefault
registry_typeYes
token_or_passwordYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the local file write path (~/.artifact-mcp-cache/credentials.json) and the overwrite behavior for existing session_name credentials. It does not discuss credential security, permissions, or failure modes, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with bold headings and an Args block, making it easy to scan. There is minor redundancy between the opening sentence and the 'Behavior' line about the local cache file, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and an existing output schema, the description covers the key side effect (local file write), overwrite risk, and all parameters. It is largely complete, though it omits security handling and permission prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it mostly does. The Args block explains all five parameters, including allowed registry_type values ('nexus' or 'artifactory'), examples for username, and the default for session_name. It could be stronger on token format expectations or parameter optionality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Save registry credentials to the local persistent cache file.' It further clarifies the goal ('Cache connection details so future sessions can reconnect automatically'), which clearly separates it from siblings like artifact_connect and artifact_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'When to Use' section gives a concrete scenario: pre-configuring staging/production environments without running queries. It does not name alternatives such as artifact_connect or explicitly state when not to use it, but the context is clear enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_search_binariesA

Search components and artifacts across Nexus or Artifactory.

Returns download URLs, exact versions, creation/modification timestamps, and SHA256/SHA1/MD5 checksums.

Purpose: Locate specific binaries or verify build component presence. When to Use: To locate release artifacts before deployment or check artifact metadata. Behavior: Read-Only search. Side Effects: None.

Args: name: Artifact or component name (supports wildcards/substrings, e.g. 'order-service') group_or_repo: Repository name or Maven groupId (e.g. 'libs-release-local' or 'com.myorg') version: Specific version string (e.g. '1.4.2' or '2.0.0-SNAPSHOT') sha256: Exact 64-character SHA256 checksum to look up session_name: Session to query (default: 'default')

NameRequiredDescriptionDefault
nameYes
sha256No
versionNo
session_nameNodefault
group_or_repoNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it declares 'Read-Only search' and 'Side Effects: None,' and lists returned metadata including URLs, versions, timestamps, and checksums. It does not mention permission requirements, session behavior, or rate limits, leaving minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and organized into Purpose, When to Use, Behavior, Side Effects, and Args. There is mild redundancy between Purpose/When to Use and between Behavior/Side Effects, but it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five parameters, 0% schema description coverage, and no annotations, the description provides the missing behavioral and parameter context. It also describes return values even though an output schema exists, making the tool callable without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully. It explains each of the five parameters with examples and constraints: name supports wildcards/substrings, group_or_repo can be a repository or Maven groupId, version format is shown, sha256 is an exact 64-character checksum, and session_name has a default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: search components/artifacts across Nexus or Artifactory. It also names the returned data (URLs, versions, timestamps, checksums), which distinguishes it from sibling tools like artifact_list_repositories, artifact_verify_checksum_integrity, and artifact_get_docker_image_tags_and_digests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly says when to use the tool: locating release artifacts before deployment or checking artifact metadata. However, it does not explicitly state when not to use it or name a sibling alternative for overlapping tasks such as checksum verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_statusA

Check connection health, authenticated user, registry version, and storage quota.

Probes status endpoints (Nexus /service/rest/v1/status, Artifactory /api/system/ping), retrieves server version, and summarizes repository storage metrics.

Purpose: Verify registry availability, user privileges, and storage capacity. When to Use: Before initiating large binary uploads or checking health. Behavior: Read-Only probe. Side Effects: None.

Args: session_name: Artifact registry session to inspect (default: 'default')

NameRequiredDescriptionDefault
session_nameNodefault

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description explicitly carries the safety profile: 'Behavior: Read-Only probe' and 'Side Effects: None', plus the concrete endpoints probed (Nexus /status, Artifactory /api/system/ping). It stops short of noting failure modes or what happens if the registry is unreachable, but the important behavioral facts are stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded summary sentence followed by labeled sections (Purpose / When to Use / Behavior / Side Effects / Args) makes it scannable. The bolded headers add some length, and the endpoint detail partially duplicates the first line, but nothing is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and the description covers scope, safety, and the input argument. An agent could call it correctly, missing only session-discovery guidance and error/unreachable behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter and 0% schema description coverage, so the description does need to compensate. It labels session_name as the 'Artifact registry session to inspect' and repeats the default, but adds no guidance on discovering valid session names (a sibling, artifact_list_sessions, exists) or what an unknown session produces.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb-and-resource statement: 'Check connection health, authenticated user, registry version, and storage quota,' with the actual endpoints named. None of the sibling tools (upload, search, promote, cleanup) do health/status, so the boundary is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'When to Use: Before initiating large binary uploads or checking health' gives a concrete triggering condition. It does not name alternative tools or exclusions, but none of the siblings overlap with status probing, so the gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_upload_binaryA

Upload a local build artifact/archive to Nexus or Artifactory with checksum verification.

⚠️ CONFIRMATION-GATED MUTATING TOOL: Requires confirm=true to execute.

Computes local SHA256/SHA1/MD5 checksums, uploads the binary to the destination repository, and immediately verifies the remote checksum match.

Purpose: Publish build archives, JARs, wheels, or tarballs to the registry. When to Use: In Workflow 1 after jenkins-mcp or github-mcp build completes. Behavior: MUTATING. Writes binary to registry storage. Side Effects: Consumes registry storage space.

Args: repository: Destination repository (e.g. 'maven-releases', 'libs-snapshot-local') local_file_path: Absolute or relative path to the local file to upload target_path: Destination path in the repository (e.g. 'com/corp/auth/1.0.0/auth-1.0.0.jar') maven_coords: Optional dict of Maven coordinates {'groupId': '...', 'artifactId': '...', 'version': '...', 'packaging': 'jar'} confirm: Must be True to execute upload (default: False) session_name: Session to use (default: 'default')

NameRequiredDescriptionDefault
confirmNo
repositoryYes
target_pathYes
maven_coordsNo
session_nameNodefault
local_file_pathYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does substantial work: declares MUTATING, confirmation-gated via confirm=true, describes the local checksum computation plus immediate remote verification, and names the side effect (registry storage consumption). It omits auth/session prerequisites and, importantly, what happens if the target path already exists (overwrite vs. fail).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The warning and confirmation gate are front-loaded where they matter most, and the labeled sections (Purpose/When to Use/Behavior/Side Effects/Args) make it skimmable. There is mild redundancy — the mutation risk is stated in the header block, again in 'Behavior', and again in 'Side Effects'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the mutation risk, confirmation gate, and checksum flow. Gaps remain around overwrite semantics, required credentials/session state, and failure behavior for a write tool with no annotations to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate fully and it does: every one of the six parameters is documented with concrete examples, including repository values ('maven-releases', 'libs-snapshot-local'), a realistic target_path, the exact maven_coords keys, and defaults for confirm and session_name. This adds meaning the bare schema titles cannot.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — upload a local build artifact/archive to Nexus or Artifactory — plus the differentiator (checksum computation and remote verification). This clearly separates it from siblings like artifact_search_binaries and artifact_verify_checksum_integrity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"When to Use: In Workflow 1 after jenkins-mcp or github-mcp build completes" gives concrete triggering context, and the confirmation gate is stated up front. It stops short of naming explicit alternatives or when-not-to-use conditions (e.g. use artifact_promote_release instead when the artifact is already in the registry).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

artifact_verify_checksum_integrityA

Compare the SHA256 digest generated by CI against registry checksum before deployment.

Verifies cryptographic attestation: compares the expected SHA256 (produced by github-mcp GitHub Actions or jenkins-mcp build jobs) against the checksum stored in Nexus or Artifactory. Blocks deployment if tampering or corruption is detected.

Purpose: Supply-chain security attestation gate. When to Use: In CI/CD pipelines right before deployment to Kubernetes/OpenShift. Behavior: Read-Only verification. Side Effects: None.

Args: artifact_path_or_url: Remote artifact path (e.g. 'libs-release-local/com/corp/app-1.0.jar') or full URL expected_sha256: 64-character SHA256 digest from CI build or SBOM session_name: Session to query (default: 'default')

NameRequiredDescriptionDefault
session_nameNodefault
expected_sha256Yes
artifact_path_or_urlYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and does so well: declares 'Read-Only verification', 'Side Effects: None', and specifies the failure behavior ('Blocks deployment if tampering or corruption is detected'). Doesn't mention authentication or rate-limit needs, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded imperative sentence followed by Purpose/When to Use/Behavior/Side Effects/Args structure with zero filler. Slightly verbose with redundant restatement (the first sentence already implies the Purpose and Behavior blocks), but every section still adds signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described. For a 3-param read-only verification gate, the description covers what it does, when, side effects, and all parameter formats — minor remaining gap is what happens on mismatch beyond 'blocks deployment' (error vs. boolean result is delegated to the output schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate — and it does, documenting all three parameters with format hints: remote path vs. full URL for artifact_path_or_url, '64-character SHA256 digest' for expected_sha256, and default value for session_name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Compare the SHA256 digest... against registry checksum') and names the concrete sources (GitHub Actions/jenkins-mcp, Nexus/Artifactory). Clearly distinct from siblings like artifact_upload_binary or artifact_promote_release.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'When to Use: In CI/CD pipelines right before deployment to Kubernetes/OpenShift', which gives clear context. It doesn't name a sibling alternative or state when NOT to use it, keeping it short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv1.0.0
    • First observedartifact_cleanup_old_snapshots
    • First observedartifact_connect
    • First observedartifact_disconnect
    • First observedartifact_get_docker_image_tags_and_digests
    • First observedartifact_list_repositories
    • First observedartifact_list_sessions
    • First observedartifact_promote_release
    • First observedartifact_save_credentials
    • First observedartifact_search_binaries
    • First observedartifact_status
    • First observedartifact_upload_binary
    • First observedartifact_verify_checksum_integrity

TDQS

A4.2/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly distinct registry actions and resources, with confirmation-gated mutations separated from read-only operations. The main overlap is between artifact_save_credentials and artifact_connect, since connect also caches credentials, but descriptions clarify the difference.

Naming Consistency4/5

All tools use a consistent artifact_ prefix with snake_case naming, mostly following an artifact_verb_noun pattern. artifact_status is the minor exception, acting as a noun-only name rather than artifact_get_status.

Tool Count5/5

The 12-tool set is well-scoped for an artifact registry server, covering session management, discovery, verification, upload, promotion, and cleanup. Each tool appears to earn its place without excessive surface area.

Completeness4/5

The surface covers the core artifact supply-chain lifecycle well: connect, inspect, search, verify, upload, promote, and clean up. Minor gaps include no direct artifact download tool and no general-purpose artifact deletion beyond snapshot cleanup.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers