Skip to main content
Glama

create_job

Create a new agent job by specifying job type, target channel, and optional parameters to initiate automated tasks on platforms like WhatsApp, Slack, or web.

Instructions

Create a new Agent Job with the minimal set of fields.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
job_type_idYesID of the job type (e.g. "mood-monitor")
target_channelYesWhere the agent will communicate.
paramsNoFree‑form params passed to the agent
scheduled_atNoSchedule the job to run later

Implementation Reference

  • The handler function that processes the input parameters, calls the agentJobsClient to create the job, logs debugging info, and returns a text response with job ID or error.
    async (params) => {
      mcpDebugger.toolCall("create_job", params);
    
      // Fall back to default org if none supplied.
      params.target_channel.org_id ??= config.DEFAULT_ORG_ID;
    
      mcpDebugger.debug("Job creation payload", {
        job_type_id: params.job_type_id,
        target_channel: params.target_channel,
        scheduled_at: params.scheduled_at,
        paramsCount: params.params ? Object.keys(params.params).length : 0
      });
    
      try {
        const res = await withTiming(
          () => agentJobsClient.post('/services/agent-jobs', params),
          "create_job API call"
        );
    
        const jobId = res.id ?? 'unknown';
    
        mcpDebugger.debug("Job creation response", { jobId, fullResponse: res });
    
        const result = {
          content: [
            {
              type: 'text' as const,
              text: `✅ Job created (id: ${jobId}).`
            }
          ]
        };
    
        mcpDebugger.toolResponse("create_job", { jobId });
    
        return result;
      } catch (error: any) {
        mcpDebugger.toolError("create_job", error);
    
        return {
          content: [
            {
              type: 'text' as const,
              text: `Error creating job: ${error.message}`
            }
          ]
        };
      }
    }
  • Input schema using Zod for validating job_type_id, target_channel (with platform, code, org_id), optional params and scheduled_at.
    inputSchema: {
      // Required fields
      job_type_id: z
        .string()
        .describe('ID of the job type (e.g. "mood-monitor")'),
    
      target_channel: z
        .object({
          platform: z
            .enum(['whatsapp', 'slack', 'web'])
            .describe('Destination platform.'),
          code: z
            .string()
            .describe('Channel identifier, phone number, or user ID.'),
          org_id: z
            .string()
            .optional()
            .describe('Org ID – defaults to config.DEFAULT_ORG_ID')
        })
        .describe('Where the agent will communicate.'),
    
      params: z
        .record(z.any())
        .optional()
        .describe('Free‑form params passed to the agent'),
      scheduled_at: flexibleDateTimeSchema
        .optional()
        .describe('Schedule the job to run later')
    }
  • Module that registers the create_job tool with the MCP server, providing name, description, schema, and handler function.
    export default (server: McpServer) => {
      server.registerTool(
        'create_job',
        {
          description: 'Create a new Agent Job with the minimal set of fields.',
          annotations: {
            title: 'Create Agent Job'
          },
          inputSchema: {
            // Required fields
            job_type_id: z
              .string()
              .describe('ID of the job type (e.g. "mood-monitor")'),
    
            target_channel: z
              .object({
                platform: z
                  .enum(['whatsapp', 'slack', 'web'])
                  .describe('Destination platform.'),
                code: z
                  .string()
                  .describe('Channel identifier, phone number, or user ID.'),
                org_id: z
                  .string()
                  .optional()
                  .describe('Org ID – defaults to config.DEFAULT_ORG_ID')
              })
              .describe('Where the agent will communicate.'),
    
            params: z
              .record(z.any())
              .optional()
              .describe('Free‑form params passed to the agent'),
            scheduled_at: flexibleDateTimeSchema
              .optional()
              .describe('Schedule the job to run later')
          }
        },
        async (params) => {
          mcpDebugger.toolCall("create_job", params);
    
          // Fall back to default org if none supplied.
          params.target_channel.org_id ??= config.DEFAULT_ORG_ID;
    
          mcpDebugger.debug("Job creation payload", {
            job_type_id: params.job_type_id,
            target_channel: params.target_channel,
            scheduled_at: params.scheduled_at,
            paramsCount: params.params ? Object.keys(params.params).length : 0
          });
    
          try {
            const res = await withTiming(
              () => agentJobsClient.post('/services/agent-jobs', params),
              "create_job API call"
            );
    
            const jobId = res.id ?? 'unknown';
    
            mcpDebugger.debug("Job creation response", { jobId, fullResponse: res });
    
            const result = {
              content: [
                {
                  type: 'text' as const,
                  text: `✅ Job created (id: ${jobId}).`
                }
              ]
            };
    
            mcpDebugger.toolResponse("create_job", { jobId });
    
            return result;
          } catch (error: any) {
            mcpDebugger.toolError("create_job", error);
    
            return {
              content: [
                {
                  type: 'text' as const,
                  text: `Error creating job: ${error.message}`
                }
              ]
            };
          }
        }
      );
    };

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