artifactory-mcp
artifactory-mcp
A Model Context Protocol (MCP) server that gives AI assistants like Claude Desktop or VS Code Copilot Chat the ability to query Maven artifacts in a JFrog Artifactory.
Reuses the same credentials Maven already uses (~/.m2/settings.xml) — no tokens passed via CLI args, no duplicate config, single source of truth.
Features
Reads credentials from
~/.m2/settings.xmlby default — no--artifactory-tokenCLI arg, nothing in process listingsLooks up the latest stable Maven version (excludes SNAPSHOT, alpha, beta, RC, milestone)
Wraps
mvn versions:*forcheck_dependency_updates— correct parent-chain and BOM resolution, reports plugin and property updates as well as dependency updatesUses the JFrog
/api/storage/REST API for directory listings — works even when HTML browsing is disabledWorks with Claude Desktop, VS Code Copilot, Cursor, and any MCP-compatible client
Prerequisites
Node.js 18 or higher
npm
Maven on
PATH(used bycheck_version_exists,check_dependency_updates, andget_pomwheneffective: true)Either a configured
<server id="artifactory">block in~/.m2/settings.xmlOR theARTIFACTORY_*environment variables (see below)
Installation
git clone <repo-url> artifactory-mcp
cd artifactory-mcp
npm installNo build step — the server runs directly from src/index.js.
Configuration
The server resolves credentials and the Artifactory URL in this order:
Env vars —
ARTIFACTORY_URL,ARTIFACTORY_USERNAME,ARTIFACTORY_TOKEN(orARTIFACTORY_PASSWORD). If all are set, they're used directly.~/.m2/settings.xml—<server id="artifactory">for credentials, plus<mirror>or<repository>for the URL.
Override the server id with ARTIFACTORY_SERVER_ID (defaults to artifactory).
Maven-encrypted passwords (
{...}syntax) are not supported. Use a plaintext token insettings.xmlor setARTIFACTORY_TOKEN.
Claude Desktop
Open Claude Desktop → Settings → Developer → Edit MCP configuration, and add:
{
"mcpServers": {
"artifactory": {
"command": "node",
"args": ["/absolute/path/to/artifactory-mcp/src/index.js"],
"type": "stdio"
}
}
}Credentials come from ~/.m2/settings.xml — no env vars or args needed.
VS Code (Copilot Chat / MCP extension)
Add to %APPDATA%\Code\User\mcp.json (Windows) or ~/.config/Code/User/mcp.json (Linux/macOS):
{
"servers": {
"artifactory": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/artifactory-mcp/src/index.js"]
}
}
}Override (optional)
To point at a different Artifactory instance or use a different <server> id:
{
"servers": {
"artifactory": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/artifactory-mcp/src/index.js"],
"env": {
"ARTIFACTORY_URL": "https://your-artifactory.example.com/artifactory/repo-key",
"ARTIFACTORY_SERVER_ID": "my-artifactory"
}
}
}
}Tokens passed via env (not CLI args) stay out of process listings.
Available Tools
get_metadata
Fetch the full maven-metadata.xml for an artifact.
Parameter | Type | Required | Description |
| string | yes | Maven groupId (e.g. |
| string | yes | Maven artifactId (e.g. |
get_latest_stable_version
Return the latest stable version of an artifact — excludes SNAPSHOT, alpha, beta, RC, and milestone builds.
Parameter | Type | Required |
| string | yes |
| string | yes |
check_version_exists
Verify whether a specific artifact version exists in Artifactory.
Parameter | Type | Required |
| string | yes |
| string | yes |
| string | yes |
list_artifacts
List artifacts under a Maven groupId. Uses JFrog's /api/storage/ REST endpoint.
Parameter | Type | Required |
| string | yes |
get_pom
Get the raw POM XML, or the effective POM with parent/BOM resolution applied.
Parameter | Type | Required | Description |
| string | yes | |
| string | yes | |
| string | yes | |
| boolean | no | If |
check_dependency_updates
Run a dependency update report. Wraps mvn versions:display-dependency-updates, versions:display-plugin-updates, and versions:display-property-updates.
Parameter | Type | Required | Description |
| string | yes* | For an Artifactory-hosted artifact |
| string | yes* | For an Artifactory-hosted artifact |
| string | yes* | For an Artifactory-hosted artifact |
| string | yes* | For a local Maven project directory (mutually exclusive with the above) |
* Provide either (groupId, artifactId, version) or projectPath.
Usage Examples (with an AI assistant)
What is the latest stable version of org.apache.commons:commons-lang3?Does version 3.14.0 of commons-lang3 exist in our Artifactory?List all artifacts under org.apache.logging.log4jShow me the effective POM for org.apache.commons:commons-lang3:3.14.0Check for dependency updates in the project at C:/path/to/my-projectNotes & Caveats
Stable-version filter.
get_latest_stable_versionexcludes pre-release tags like-SNAPSHOT,-alpha,-beta,-RC,-M1,-M2, etc. If you want the absolute latest including pre-releases, useget_metadataand pick from the full list.Effective POM is slow.
get_pomwitheffective: trueruns Maven, which downloads parent POMs and BOM artifacts. First-time runs against a cold local repo can take 30+ seconds.Maven required for
check_dependency_updates. This tool spawnsmvn— make sure Maven 3.x is onPATH.
Security
Use a token, not a password. Generate an identity token in Artifactory and put it in
~/.m2/settings.xml<password>(orARTIFACTORY_TOKEN).Don't commit
settings.xml. Treat it like a credential file.No Maven password encryption. This server does not decrypt
{...}encrypted passwords fromsettings.xml. Use plaintext tokens or env vars.
Troubleshooting
Symptom | Fix |
| Set |
| Set |
| Replace the |
| Install Maven 3.x and ensure it's on |
| Token is wrong or expired — regenerate in Artifactory UI |
Development
npm start # runs node src/index.jsSource lives in src/. Tools register themselves into the MCP server via the registerXxx(server, config) pattern.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/charanchelloju/artifactory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server