@rolandohuber/mysql-mcp-server
Version:
A comprehensive MCP server for MySQL database operations with 16 tools, multi-transport support, and intelligent test data generation
47 lines • 1.75 kB
JavaScript
export const generateSchemaDiagramSchema = {
name: 'mysql_generateSchemaDiagram',
description: 'Generates a JSON structure representing the database schema for diagramming',
inputSchema: {
type: 'object',
properties: {},
required: [],
},
};
export async function generateSchemaDiagramHandler(mysqlService) {
try {
const tables = await mysqlService.listTables();
const nodes = [];
const edges = [];
// Create nodes for each table
for (const table of tables) {
const schema = await mysqlService.describeTable(table);
const relations = await mysqlService.getTableRelations(table);
const columns = schema.map(column => ({
name: column.column_name,
type: column.data_type,
isPrimaryKey: column.column_key === 'PRI',
isForeignKey: relations.outgoing.some(rel => rel.column_name === column.column_name),
}));
nodes.push({
id: table,
name: table,
columns,
});
// Create edges for foreign key relationships
for (const relation of relations.outgoing) {
edges.push({
from: table,
to: relation.referenced_table_name,
fromColumn: relation.column_name,
toColumn: relation.referenced_column_name,
label: relation.constraint_name,
});
}
}
return { nodes, edges };
}
catch (error) {
throw new Error(`Failed to generate schema diagram: ${error}`);
}
}
//# sourceMappingURL=generateSchemaDiagram.js.map