Skip to main content
Glama

get_jobs_stats

Retrieve aggregated statistics for agent jobs to monitor performance and track metrics without accessing individual job data. Optimized for dashboards with minimal network overhead.

Instructions

Get aggregated statistics for agent jobs without retrieving individual job data. Optimized for dashboards and monitoring with minimal network overhead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
org_idNoFilter by organization ID.
scheduled_at_gteNoStart of period (ISO 8601)
scheduled_at_lteNoEnd of period (ISO 8601)
created_at_gteNoFilter for jobs created at or after a specific time (ISO 8601).
created_at_lteNoFilter for jobs created at or before a specific time (ISO 8601).
job_type_idNoJob type filter
channel_codeNoChannel filter
tagsNoTags filter (comma-separated)
statusNoStatus filter

Implementation Reference

  • The main handler function for the 'get_jobs_stats' MCP tool. It logs the tool call, fetches stats via agentJobsClient.getStats, extracts stats and filters from response.meta, formats them into a text response using formatJobStats, logs the response, and handles errors gracefully.
    async (params) => { mcpDebugger.toolCall("get_jobs_stats", params); try { const response = await withTiming( () => agentJobsClient.getStats(params), "get_jobs_stats API call" ); const stats = response.meta?.stats || {}; const filters = response.meta?.filters || {}; mcpDebugger.debug("Raw API response", { stats, filters }); const result = { content: [{ type: "text" as const, text: formatJobStats(stats, filters), }] }; mcpDebugger.toolResponse("get_jobs_stats", result); return result; } catch (error: any) { mcpDebugger.toolError("get_jobs_stats", error); return { content: [{ type: "text" as const, text: `Error getting job stats: ${error.message}`, }], }; } }
  • Zod-based input schema validation for the 'get_jobs_stats' tool, defining optional filters such as org_id, date ranges (using flexibleDateTimeSchema), job_type_id, channel_code, tags, and status (from jobStatusSchema enum). Includes tool description and annotations.
    const jobStatusSchema = z.enum([ "waiting", "scheduled", "running", "completed", "failed", "canceled" ]); export default (server: McpServer) => { server.registerTool( "get_jobs_stats", { description: "Get aggregated statistics for agent jobs without retrieving individual job data. Optimized for dashboards and monitoring with minimal network overhead.", annotations: { title: "Get Job Statistics" }, inputSchema: { org_id: z.string().optional().describe("Filter by organization ID."), scheduled_at_gte: flexibleDateTimeSchema.optional().describe("Start of period (ISO 8601)"), scheduled_at_lte: flexibleDateTimeSchema.optional().describe("End of period (ISO 8601)"), created_at_gte: flexibleDateTimeSchema.optional().describe("Filter for jobs created at or after a specific time (ISO 8601)."), created_at_lte: flexibleDateTimeSchema.optional().describe("Filter for jobs created at or before a specific time (ISO 8601)."), job_type_id: z.string().optional().describe("Job type filter"), channel_code: z.string().optional().describe("Channel filter"), tags: z.string().optional().describe("Tags filter (comma-separated)"), status: jobStatusSchema.optional().describe("Status filter"), } },
  • The module registration function that attaches the 'get_jobs_stats' tool to the MCP server, specifying the tool name, input schema, and handler function.
    export default (server: McpServer) => { server.registerTool( "get_jobs_stats", { description: "Get aggregated statistics for agent jobs without retrieving individual job data. Optimized for dashboards and monitoring with minimal network overhead.", annotations: { title: "Get Job Statistics" }, inputSchema: { org_id: z.string().optional().describe("Filter by organization ID."), scheduled_at_gte: flexibleDateTimeSchema.optional().describe("Start of period (ISO 8601)"), scheduled_at_lte: flexibleDateTimeSchema.optional().describe("End of period (ISO 8601)"), created_at_gte: flexibleDateTimeSchema.optional().describe("Filter for jobs created at or after a specific time (ISO 8601)."), created_at_lte: flexibleDateTimeSchema.optional().describe("Filter for jobs created at or before a specific time (ISO 8601)."), job_type_id: z.string().optional().describe("Job type filter"), channel_code: z.string().optional().describe("Channel filter"), tags: z.string().optional().describe("Tags filter (comma-separated)"), status: jobStatusSchema.optional().describe("Status filter"), } }, async (params) => { mcpDebugger.toolCall("get_jobs_stats", params); try { const response = await withTiming( () => agentJobsClient.getStats(params), "get_jobs_stats API call" ); const stats = response.meta?.stats || {}; const filters = response.meta?.filters || {}; mcpDebugger.debug("Raw API response", { stats, filters }); const result = { content: [{ type: "text" as const, text: formatJobStats(stats, filters), }] }; mcpDebugger.toolResponse("get_jobs_stats", result); return result; } catch (error: any) { mcpDebugger.toolError("get_jobs_stats", error); return { content: [{ type: "text" as const, text: `Error getting job stats: ${error.message}`, }], }; } } ); }
  • Helper method in AgentJobsClient that prepares parameters for fetching job statistics (adds include='stats' and limit=1) and calls the GET endpoint '/services/agent-jobs'. This is invoked by the tool handler.
    async getStats(filters: Record<string, any> = {}) { const params = { ...filters, include: 'stats', limit: 1 }; return this.get('/services/agent-jobs', params); }

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/aiconnect-cloud/agentjobs-mcp'

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