cortex_enable_analyzer
Enable an analyzer definition in your organization by providing its ID and optional configuration values for API keys, rate limits, and job caching.
Instructions
Enable an analyzer definition in the current organization. Provide configuration values for any required fields.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| definitionId | Yes | The analyzer definition ID (e.g., 'Abuse_Finder_3_0', 'VirusTotal_GetReport_3_1') | |
| configuration | No | Configuration key-value pairs (API keys, URLs, etc.). Check cortex_list_analyzer_definitions for required fields. | |
| rate | No | Rate limit: max jobs per rate unit (default: 100) | |
| rateUnit | No | Rate limit unit (default: Day) | Day |
| jobCache | No | Cache duration in minutes for identical jobs (default: 10) |
Implementation Reference
- The main tool definition and handler for 'cortex_enable_analyzer'. Registers it on the MCP server with Zod schema for definitionId, configuration, rate, rateUnit, jobCache. The handler calls client.enableAnalyzer() and returns a JSON response with the enabled analyzer details.
server.tool( "cortex_enable_analyzer", "Enable an analyzer definition in the current organization. Provide configuration values for any required fields.", { definitionId: z .string() .describe("The analyzer definition ID (e.g., 'Abuse_Finder_3_0', 'VirusTotal_GetReport_3_1')"), configuration: z .record(z.string(), z.unknown()) .default({}) .describe("Configuration key-value pairs (API keys, URLs, etc.). Check cortex_list_analyzer_definitions for required fields."), rate: z .number() .int() .min(0) .default(100) .describe("Rate limit: max jobs per rate unit (default: 100)"), rateUnit: z .enum(["Day", "Hour", "Minute"]) .default("Day") .describe("Rate limit unit (default: Day)"), jobCache: z .number() .int() .min(0) .default(10) .describe("Cache duration in minutes for identical jobs (default: 10)"), }, async ({ definitionId, configuration, rate, rateUnit, jobCache }) => { try { const analyzer = await client.enableAnalyzer({ name: definitionId, configuration, rate, rateUnit, jobCache, }); return { content: [ { type: "text" as const, text: JSON.stringify( { id: analyzer.id, name: analyzer.name, version: analyzer.version, dataTypes: analyzer.dataTypeList, message: `Analyzer "${analyzer.name}" enabled successfully. It can now analyze: ${analyzer.dataTypeList.join(", ")}`, }, null, 2, ), }, ], }; } catch (error) { return { content: [ { type: "text" as const, text: `Error enabling analyzer: ${error instanceof Error ? error.message : String(error)}`, }, ], isError: true, }; } }, ); - Zod input validation schema for cortex_enable_analyzer: definitionId (string), configuration (record of string->unknown, default {}), rate (int min 0, default 100), rateUnit (enum Day/Hour/Minute, default Day), jobCache (int min 0, default 10).
{ definitionId: z .string() .describe("The analyzer definition ID (e.g., 'Abuse_Finder_3_0', 'VirusTotal_GetReport_3_1')"), configuration: z .record(z.string(), z.unknown()) .default({}) .describe("Configuration key-value pairs (API keys, URLs, etc.). Check cortex_list_analyzer_definitions for required fields."), rate: z .number() .int() .min(0) .default(100) .describe("Rate limit: max jobs per rate unit (default: 100)"), rateUnit: z .enum(["Day", "Hour", "Minute"]) .default("Day") .describe("Rate limit unit (default: Day)"), jobCache: z .number() .int() .min(0) .default(10) .describe("Cache duration in minutes for identical jobs (default: 10)"), }, - src/index.ts:40-44 (registration)Registration call: registerAnalyzerDefinitionTools(server, client) is invoked in the main index.ts to plug the tool into the MCP server.
registerAnalyzerDefinitionTools(server, client); registerResponderDefinitionTools(server, client); registerStatusTools(server, client); registerOrganizationTools(server, client); registerUserTools(server, client); - src/types.ts:205-211 (helper)EnableWorkerRequest interface type used by the helper method. Defines the shape: name, configuration, optional rate/rateUnit/jobCache.
export interface EnableWorkerRequest { name: string; configuration: Record<string, unknown>; rate?: number; rateUnit?: string; jobCache?: number; } - src/client.ts:237-251 (helper)The client.enableAnalyzer() method that performs the actual HTTP POST request to /organization/analyzer/{name} with the configuration body.
async enableAnalyzer(data: EnableWorkerRequest): Promise<Analyzer> { return this.request<Analyzer>( `/organization/analyzer/${encodeURIComponent(data.name)}`, { method: "POST", body: JSON.stringify({ name: data.name, configuration: data.configuration, rate: data.rate ?? 100, rateUnit: data.rateUnit ?? "Day", jobCache: data.jobCache ?? 10, }), }, ); }