Skip to main content
Glama

JFrog MCP Server

Official
by jfrog
runtime.ts3 kB
import { z } from "zod"; import { zodToJsonSchema } from "zod-to-json-schema"; import { buildUrl, jfrogRequest } from "../common/utils.js"; import { getAllRuntimeClustersSchema, getRuntimeClusterSchema, JFrogRuntimeClusterDetailedSchema, JFrogRuntimeImagesResponseSchema, ListRunningImagesSchema, JFrogRuntimeClustersListResponseSchema } from "../schemas/runtime.js"; /* End of Schema Section */ /* Api Calls Section */ export async function getRuntimeCluster(clusterId: number | string) { const response = await jfrogRequest(`/runtime/api/v1/clusters/${clusterId}/`,{ method: "GET" }); return JFrogRuntimeClusterDetailedSchema.parse(response); } export async function getAllRuntimeClusters(limit:number) { const response = await jfrogRequest("/runtime/api/v1/clusters",{ method: "POST", body: { limit } }); return JFrogRuntimeClustersListResponseSchema.parse(response); } export async function getRunningImages(params: z.infer<typeof ListRunningImagesSchema>) { const queryString = new URLSearchParams({ num_of_rows: params.num_of_rows.toString(), statistics: params.statistics.toString(), timePeriod: params.timePeriod, filters: params.filters, page_num: params.page_num.toString() }).toString(); const response = await jfrogRequest(`/runtime/api/v1/live/images?${queryString}`, { method: "GET" }); return JFrogRuntimeImagesResponseSchema.parse(response); } /* End of Api Calls Section */ /* Tools Section */ const getAllRuntimeClustersTool = { name: "jfrog_list_runtime_clusters", description: "return a list of all my runtime clusters in the jfrog platform", inputSchema: zodToJsonSchema(getAllRuntimeClustersSchema), //outputSchema: zodToJsonSchema(JFrogRuntimeClustersListResponseSchema), handler: async (args: any) => { const parsedArgs = getAllRuntimeClustersSchema.parse(args); return await getAllRuntimeClusters(parsedArgs.limit); } }; const getRuntimeClusterTool = { name: "jfrog_get_runtime_specific_cluster", description: "return a runtime cluster by id", inputSchema: zodToJsonSchema(getRuntimeClusterSchema), //outputSchema: zodToJsonSchema(JFrogRuntimeClusterDetailedSchema), handler: async (args: any) => { const parsedArgs = getRuntimeClusterSchema.parse(args); return await getRuntimeCluster(parsedArgs.clusterId); } }; const listRunningImagesTool = { name: "jfrog_list_running_images", description: "List all running container images across runtime clusters with their security and operational status", inputSchema: zodToJsonSchema(ListRunningImagesSchema), //outputSchema: zodToJsonSchema(JFrogRuntimeImagesResponseSchema), handler: async (args: any) => { const parsedArgs = ListRunningImagesSchema.parse(args); return await getRunningImages(parsedArgs); } }; /* End of Tools creation Section */ export const RuntimeTools = [ getAllRuntimeClustersTool, getRuntimeClusterTool, listRunningImagesTool ];

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