Skip to main content
Glama

training.get

Retrieve training data for learning security vulnerability patterns, enabling users to filter by vulnerability type and source to improve bug bounty hunting skills.

Instructions

Retrieve training data for learning patterns

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vulnerabilityTypeNoFilter by vulnerability type
sourceNoFilter by source (htb, portswigger)
limitNoMaximum number of results

Implementation Reference

  • Handler function for the 'training.get' MCP tool. Fetches training data from PostgreSQL via getTrainingData and formats the result as ToolResult.
    async ({ vulnerabilityType, source, limit = 100 }: any): Promise<ToolResult> => { try { const data = await getTrainingData(vulnerabilityType, source, limit); return formatToolResult(true, { trainingData: data, count: data.length, }); } catch (error: any) { return formatToolResult(false, null, error.message); } }
  • Description and input schema definition for the 'training.get' tool.
    { description: 'Retrieve training data for learning patterns', inputSchema: { type: 'object', properties: { vulnerabilityType: { type: 'string', description: 'Filter by vulnerability type' }, source: { type: 'string', description: 'Filter by source (htb, portswigger)' }, limit: { type: 'number', description: 'Maximum number of results', default: 100 }, }, },
  • Registration of the 'training.get' tool on the MCP server within registerTrainingTools, including schema and inline handler.
    server.tool( 'training.get', { description: 'Retrieve training data for learning patterns', inputSchema: { type: 'object', properties: { vulnerabilityType: { type: 'string', description: 'Filter by vulnerability type' }, source: { type: 'string', description: 'Filter by source (htb, portswigger)' }, limit: { type: 'number', description: 'Maximum number of results', default: 100 }, }, }, }, async ({ vulnerabilityType, source, limit = 100 }: any): Promise<ToolResult> => { try { const data = await getTrainingData(vulnerabilityType, source, limit); return formatToolResult(true, { trainingData: data, count: data.length, }); } catch (error: any) { return formatToolResult(false, null, error.message); } } );
  • Database helper function getTrainingData used by the tool handler to query training data from the 'training_data' PostgreSQL table with optional filters.
    export async function getTrainingData( vulnerabilityType?: string, source?: string, limit: number = 100 ): Promise<any[]> { const client = await initPostgres().connect(); try { let query = 'SELECT * FROM training_data'; const conditions: string[] = []; const params: any[] = []; let paramCount = 0; if (vulnerabilityType) { paramCount++; conditions.push(`vulnerability_type = $${paramCount}`); params.push(vulnerabilityType); } if (source) { paramCount++; conditions.push(`source = $${paramCount}`); params.push(source); } if (conditions.length > 0) { query += ' WHERE ' + conditions.join(' AND '); } query += ' ORDER BY learned_at DESC LIMIT $' + (paramCount + 1); params.push(limit); const result: QueryResult = await client.query(query, params); return result.rows; } finally { client.release(); } }

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