mavis_cron_list
List all scheduled cron jobs for a specified agent. Retrieve the current cron schedule to manage periodic tasks in the Mavis system.
Instructions
List all scheduled cron jobs for an agent.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agentName | No | Agent name to list crons for (default: mavis) |
Implementation Reference
- src/index.js:32-53 (handler)execMavis: The underlying execution function that spawns the 'mavis' CLI binary and returns raw output. Used by runTool to execute all tool commands including mavis_cron_list.
function execMavis(args, input = '') { return new Promise((resolve, reject) => { const SESSION_COMMANDS = new Set(['communication', 'session', 'spawn']); const sessionId = process.env.__MAVIS_PARENT_SESSION_ID; const subcmd = args[0]; const needsSession = SESSION_COMMANDS.has(subcmd) && sessionId; const finalArgs = needsSession ? [...args, '--session', sessionId] : args; const proc = spawn(MAVIS_BIN, finalArgs, { stdio: ['pipe', 'pipe', 'pipe'] }); let stdout = ''; let stderr = ''; proc.stdout.on('data', d => stdout += d.toString()); proc.stderr.on('data', d => stderr += d.toString()); proc.on('close', code => { if (code === 0) resolve(stdout.trim()); else reject(new Error(stderr.split('\n')[0] || `exit code ${code}`)); }); proc.on('error', reject); if (input) proc.stdin.write(input), proc.stdin.end(); }); } - src/index.js:328-330 (schema)Input schema for mavis_cron_list: an optional string field 'agentName' with default 'mavis'.
inputSchema: z.object({ agentName: z.string().optional().describe('Agent name to list crons for (default: mavis)') }), - src/index.js:325-332 (registration)Tool spec registration for 'mavis_cron_list' inside the tools array. Contains name, description, inputSchema, and buildArgs. No execFn is set, so runTool will use execMavisJSON (JSON output path).
{ name: 'mavis_cron_list', description: 'List all scheduled cron jobs for an agent.', inputSchema: z.object({ agentName: z.string().optional().describe('Agent name to list crons for (default: mavis)') }), buildArgs: ({ agentName }) => ['cron', 'list', agentName || 'mavis'] }, - src/index.js:77-92 (handler)runTool: The generic tool runner that dispatches execution for all tools including mavis_cron_list. Since mavis_cron_list has no execFn, it uses execMavisJSON (JSON parsing path) and since there's no outputMode set (falsy), it falls through to JSON.stringify.
function runTool(spec, parsedArgs) { const { execFn, outputMode, stdin, buildArgs } = spec; const args = buildArgs(parsedArgs); const input = typeof stdin === 'function' ? stdin(parsedArgs) : stdin; const execPromise = execFn ? execMavis(args, input || '') : execMavisJSON(args); return execPromise.then(result => { const text = outputMode === OUTPUT_RAW ? (result || '') : JSON.stringify(result, null, 2); return [{ type: 'text', text }]; }); } - src/index.js:484-492 (registration)MavisServer registers tools via ListToolsRequestSchema and handles tool calls via CallToolRequestSchema. The toolMap is built from the tools array which includes mavis_cron_list.
this.toolMap = new Map(tools.map(t => [t.name, t])); this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: tools.map(t => ({ name: t.name, description: t.description, inputSchema: normalizeObjectSchema(t.inputSchema), })), }));