Skip to main content
Glama

SingleStore MCP Server

generate_er_diagram

Create Mermaid ER diagrams of database schemas using SingleStore MCP Server, enabling clear visualization of table relationships and structures for better database understanding.

Instructions

Generate a Mermaid ER diagram of the database schema

Input Schema

NameRequiredDescriptionDefault

No arguments

Input Schema (JSON Schema)

{ "properties": {}, "required": [], "type": "object" }

Implementation Reference

  • The handler function for 'generate_er_diagram' tool. It queries the database for tables and columns, fetches foreign key relationships (though not used), builds a Mermaid ER diagram with table schemas and adds some hardcoded relationships, then returns it as text content.
    case 'generate_er_diagram': { try { // Get all tables const [tables] = await conn.query( 'SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE()' ) as [TableRowDataPacket[], mysql.FieldPacket[]]; // Get foreign key relationships const [relationships] = await conn.query( `SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = DATABASE() AND REFERENCED_TABLE_NAME IS NOT NULL` ) as [mysql.RowDataPacket[], mysql.FieldPacket[]]; // Start building Mermaid diagram let mermaidDiagram = 'erDiagram\n'; // Add tables and their columns for (const table of tables) { const [columns] = await conn.query( 'DESCRIBE ??', [table.TABLE_NAME] ) as [ColumnRowDataPacket[], mysql.FieldPacket[]]; mermaidDiagram += `\n ${table.TABLE_NAME} {\n`; for (const column of columns) { const fieldType = column.Type.split('(')[0]; mermaidDiagram += ` ${fieldType} ${column.Field}${column.Key === 'PRI' ? ' PK' : ''}\n`; } mermaidDiagram += ' }\n'; } // Add relationships mermaidDiagram += ` Documents ||--o{ Document_Embeddings : "has embeddings" Documents ||--o{ Chunk_Metadata : "is chunked into" Documents ||--o{ ProcessingStatus : "has status" Document_Embeddings ||--o| Chunk_Metadata : "belongs to chunk" Entities ||--o{ Relationships : "has relationships" Entities ||--o{ Relationships : "is referenced by" Documents ||--o{ Relationships : "contains"`; return { content: [ { type: 'text', text: mermaidDiagram, }, ], }; } catch (error: unknown) { const err = error as Error; throw new McpError( ErrorCode.InternalError, `ER diagram generation error: ${err.message}` ); } }
  • src/index.ts:1177-1184 (registration)
    Registration of the 'generate_er_diagram' tool in the MCP server's list_tools response, including its name, description, and input schema (no required parameters).
    { name: 'generate_er_diagram', description: 'Generate a Mermaid ER diagram of the database schema', inputSchema: { type: 'object', properties: {}, required: [], },
  • Input schema definition for the generate_er_diagram tool (empty object, no parameters required).
    type: 'object', properties: {}, required: [], },
  • src/index.ts:136-144 (registration)
    Secondary registration of the tool in the SSE HTTP server's cached tools list for list_tools requests.
    { name: 'generate_er_diagram', description: 'Generate a Mermaid ER diagram of the database schema', inputSchema: { type: 'object', properties: {}, required: [], }, },

Other Tools

Related Tools

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/madhukarkumar/singlestore-mcp-server'

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