Skip to main content
Glama
jfrog

JFrog MCP Server

Official
by jfrog

jfrog_get_package_version_vulnerabilities

Identify vulnerabilities in specific versions of open source packages across multiple ecosystems. Input package type, name, and version to retrieve detailed security insights.

Instructions

Useful for when you need the list of known vulnerabilities affecting a specific version of an open source package.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the package, as it appears in the package repository.
pageCountNoNumber of pages to return.
pageSizeNoNumber of vulnerabilities to return per page.
typeYesThe type of package.
versionNoThe version of the package, as it appears in the package repository. Default value is 'latest'.latest

Implementation Reference

  • The core handler function that performs a GraphQL query to the JFrog Catalog API to retrieve vulnerabilities for a specific package version, processes and validates the response, and returns the list of vulnerabilities.
    export async function getPackageVersionVulnerabilities(options: JFrogCatalogPackageVersionVulnerabilitiesSchema) { const query = `query GetCatalogPackageVersionVulnerabilities( $type: String!, $name: String!, $version: String!, $first: Int!, $orderBy: VulnerabilityOrder! ) { packageVersion(type: $type, name: $name, version: $version) { vulnerabilities( first: $first, orderBy: $orderBy ) { edges { node { name description severity } } } } }`; const variables = { type: options.type, name: options.name, version: options.version, first: options.pageSize, orderBy: { field: "SEVERITY_VALUE", direction: "DESC" } }; function processResponse(response: unknown) { const validatedResponse = z.object({ data: z.object({ packageVersion: z.object({ vulnerabilities: z.object({ edges: z.array(z.object({ node: JFrogCatalogVulnerabilityResponseSchema })) }) }).nullable() }) }).parse(response); if (!validatedResponse.data.packageVersion) { return []; } return validatedResponse.data.packageVersion.vulnerabilities.edges.map(edge => edge.node); } const processedData = await jfrogRequest( "xray/catalog/graphql", { method: "POST", body: JSON.stringify({ query, variables }) }, processResponse ); return JFrogCatalogVulnerabilityResponseSchema.array().parse(processedData); }
  • Zod schema defining the input parameters for the tool: package type, name, version, pageSize, and pageCount.
    export const JFrogCatalogPackageVersionVulnerabilitiesSchema = JFrogCatalogPackageVersionSchema.extend({ pageSize: z.number().default(10).describe("Number of vulnerabilities to return per page."), pageCount: z.number().default(1).describe("Number of pages to return.") });
  • The tool registration object that defines the tool's name, description, input schema, and a thin handler wrapper delegating to the main handler function.
    const getCatalogPackageVersionVulnerabilitiesTool = { name: "jfrog_get_package_version_vulnerabilities", description: "Useful for when you need the list of known vulnerabilities affecting a specific version of an open source package.", inputSchema: zodToJsonSchema(JFrogCatalogPackageVersionVulnerabilitiesSchema), //outputSchema: zodToJsonSchema(JFrogCatalogVulnerabilityResponseSchema), handler: async (args: any) => { const parsedArgs = JFrogCatalogPackageVersionVulnerabilitiesSchema.parse(args); return await getPackageVersionVulnerabilities(parsedArgs); } };

Latest Blog Posts

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/jfrog/mcp-jfrog'

If you have feedback or need assistance with the MCP directory API, please join our Discord server