Skip to main content
Glama

training.import

Import training data from HTB or PortSwigger labs to enhance vulnerability detection capabilities in security testing workflows.

Instructions

Import training data from HTB or PortSwigger labs

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceYesSource of training data
sourceIdNoID from source (e.g., lab name)
vulnerabilityTypeYesType of vulnerability (XSS, SQLi, IDOR, etc.)
targetPatternYesPattern to match target URLs
payloadPatternYesPattern for successful payloads
successPatternNoPattern indicating success in response
failurePatternNoPattern indicating failure in response
contextDataNoAdditional context data
scoreNoScore for this training example (0-10)

Implementation Reference

  • Primary registration of the 'training.import' tool, including input schema and execution handler function that saves data to database and updates pattern matcher.
    'training.import', { description: 'Import training data from HTB or PortSwigger labs', inputSchema: { type: 'object', properties: { source: { type: 'string', enum: ['htb', 'portswigger', 'custom'], description: 'Source of training data', }, sourceId: { type: 'string', description: 'ID from source (e.g., lab name)' }, vulnerabilityType: { type: 'string', description: 'Type of vulnerability (XSS, SQLi, IDOR, etc.)', }, targetPattern: { type: 'string', description: 'Pattern to match target URLs' }, payloadPattern: { type: 'string', description: 'Pattern for successful payloads' }, successPattern: { type: 'string', description: 'Pattern indicating success in response' }, failurePattern: { type: 'string', description: 'Pattern indicating failure in response' }, contextData: { type: 'object', description: 'Additional context data' }, score: { type: 'number', description: 'Score for this training example (0-10)' }, }, required: ['source', 'vulnerabilityType', 'targetPattern', 'payloadPattern'], }, }, async (params: any): Promise<ToolResult> => { try { const id = await saveTrainingData( params.source, params.sourceId || '', params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '', params.contextData, params.score || 5 ); // Learn the pattern patternMatcher.learnPattern( params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '' ); return formatToolResult(true, { id, message: 'Training data imported successfully', }); } catch (error: any) { return formatToolResult(false, null, error.message); } } );
  • The handler function for 'training.import' that processes input parameters, saves training data using saveTrainingData, learns patterns via PatternMatcher, and returns formatted result.
    async (params: any): Promise<ToolResult> => { try { const id = await saveTrainingData( params.source, params.sourceId || '', params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '', params.contextData, params.score || 5 ); // Learn the pattern patternMatcher.learnPattern( params.vulnerabilityType, params.targetPattern, params.payloadPattern, params.successPattern || '', params.failurePattern || '' ); return formatToolResult(true, { id, message: 'Training data imported successfully', }); } catch (error: any) { return formatToolResult(false, null, error.message); } }
  • Input schema for 'training.import' tool defining parameters like source, vulnerabilityType, patterns, and score.
    type: 'object', properties: { source: { type: 'string', enum: ['htb', 'portswigger', 'custom'], description: 'Source of training data', }, sourceId: { type: 'string', description: 'ID from source (e.g., lab name)' }, vulnerabilityType: { type: 'string', description: 'Type of vulnerability (XSS, SQLi, IDOR, etc.)', }, targetPattern: { type: 'string', description: 'Pattern to match target URLs' }, payloadPattern: { type: 'string', description: 'Pattern for successful payloads' }, successPattern: { type: 'string', description: 'Pattern indicating success in response' }, failurePattern: { type: 'string', description: 'Pattern indicating failure in response' }, contextData: { type: 'object', description: 'Additional context data' }, score: { type: 'number', description: 'Score for this training example (0-10)' }, }, required: ['source', 'vulnerabilityType', 'targetPattern', 'payloadPattern'], },
  • src/index.ts:47-47 (registration)
    Top-level registration call that invokes registerTrainingTools(server), which includes the 'training.import' tool registration.
    registerTrainingTools(server);
  • PatternMatcher.learnPattern method used by the handler to store learned patterns from imported training data.
    learnPattern( vulnType: string, targetPattern: string, payloadPattern: string, successPattern: string, failurePattern: string ) { if (!this.patterns.has(vulnType)) { this.patterns.set(vulnType, []); } this.patterns.get(vulnType)!.push({ targetPattern, payloadPattern, successPattern, failurePattern, }); }

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/telmon95/VulneraMCP'

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