analyze_database
Analyze PostgreSQL database configuration, performance, or security to identify optimization opportunities and ensure efficient operations.
Instructions
Analyze PostgreSQL database configuration and performance
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connectionString | Yes | PostgreSQL connection string | |
| analysisType | No | Type of analysis to perform |
Implementation Reference
- src/tools/analyze.ts:15-37 (handler)Core handler function that orchestrates database analysis: connects to DB, fetches version/settings/metrics, generates recommendations, and returns structured AnalysisResult.export async function analyzeDatabase( connectionString: string, analysisType: 'configuration' | 'performance' | 'security' = 'configuration' ): Promise<AnalysisResult> { const db = DatabaseConnection.getInstance(); await db.connect(connectionString); try { const version = await getVersion(); const settings = await getSettings(); const metrics = await getMetrics(); const recommendations = await generateRecommendations(analysisType, settings, metrics); return { version, settings, metrics, recommendations, }; } finally { await db.disconnect(); } }
- src/index.ts:16-34 (schema)Tool definition including name, description, and input schema (connectionString required, analysisType optional enum). Used in TOOL_DEFINITIONS[0] and capabilities.{ name: 'analyze_database', description: 'Analyze PostgreSQL database configuration and performance', inputSchema: { type: 'object', properties: { connectionString: { type: 'string', description: 'PostgreSQL connection string' }, analysisType: { type: 'string', enum: ['configuration', 'performance', 'security'], description: 'Type of analysis to perform' } }, required: ['connectionString'] } },
- src/index.ts:102-106 (registration)Registers the analyze_database tool in the MCP server's capabilities object, advertising it to clients.tools: { analyze_database: TOOL_DEFINITIONS[0], get_setup_instructions: TOOL_DEFINITIONS[1], debug_database: TOOL_DEFINITIONS[2] },
- src/index.ts:122-124 (registration)Registers handler for ListToolsRequestSchema that returns all tool definitions including analyze_database.this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOL_DEFINITIONS }));
- src/index.ts:129-143 (registration)Dispatch logic in CallToolRequestSchema handler: extracts arguments, calls analyzeDatabase, formats and returns result as MCP content.case 'analyze_database': { const { connectionString, analysisType } = request.params.arguments as { connectionString: string; analysisType?: 'configuration' | 'performance' | 'security'; }; const result = await analyzeDatabase(connectionString, analysisType); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2) } ] }; }