Skip to main content
Glama
MCP Mermaid ER Server
by dixitayush

MCP Mermaid ER Server

An open-source Model Context Protocol (MCP) server that parses Mermaid ER diagrams, creates PostgreSQL database tables, and exposes automatic REST/GraphQL CRUD APIs.

MCP TypeScript License

Features

  • πŸ” Parse Mermaid ER Diagrams - Extract entities, attributes, and relationships

  • πŸ—„οΈ Auto-Create PostgreSQL Tables - Generate DDL and execute against your database

  • πŸš€ REST API Generation - Automatic CRUD endpoints for all entities

  • πŸ“Š GraphQL API Generation - Type-safe queries and mutations

  • πŸ”‘ Key Detection - Identifies PK, FK, and UK constraints

  • βš™οΈ Configurable - Environment variables for database and API settings

Related MCP server: mcp-db-server

Installation

git clone https://github.com/yourusername/mcp-mermaid-er-server.git
cd mcp-mermaid-er-server
npm install
npm run build

Configuration

Create a .env file (copy from .env.example):

# Mermaid Source
MERMAID_DIAGRAM_PATH=./examples/sample-er.mmd

# Database (PostgreSQL)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mydb
DB_USER=postgres
DB_PASSWORD=password

# API Server
API_TYPE=rest       # rest, graphql, or both
API_PORT=3000
API_HOST=0.0.0.0

Claude Desktop Integration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "mermaid-er": {
      "command": "node",
      "args": ["/path/to/mcp-tools/dist/index.js"],
      "env": {
        "MERMAID_DIAGRAM_PATH": "/path/to/your/diagram.mmd",
        "DB_HOST": "localhost",
        "DB_NAME": "mydb",
        "DB_USER": "postgres",
        "DB_PASSWORD": "password"
      }
    }
  }
}

Available MCP Tools (12 Total)

Parsing Tools

Tool

Description

parse_er_diagram

Parse ER diagram, return full schema

list_entities

List all entity names

get_entity_details

Get attributes for an entity

get_relationships

Get all relationships

validate_diagram

Validate diagram syntax

Database Tools

Tool

Description

test_connection

Test PostgreSQL connection

generate_sql

Generate DDL without executing

create_schema

Create tables in database

drop_schema

Drop all tables (requires confirmation)

API Tools

Tool

Description

start_api_server

Start REST/GraphQL server

stop_api_server

Stop the API server

get_api_endpoints

List all endpoints

Workflow Example

  1. Parse your ER diagram β†’ parse_er_diagram

  2. Review the SQL β†’ generate_sql

  3. Create database tables β†’ create_schema

  4. Start the API server β†’ start_api_server

  5. Use the auto-generated endpoints!

API Endpoints

REST (when API_TYPE=rest or both)

GET    /api/{entity}       - List all records
GET    /api/{entity}/:id   - Get by ID
POST   /api/{entity}       - Create record
PUT    /api/{entity}/:id   - Update record
DELETE /api/{entity}/:id   - Delete record

GraphQL (when API_TYPE=graphql or both)

# Queries
query { customers { customer_id email } }
query { customer(id: "1") { email } }

# Mutations
mutation { createCustomer(input: { email: "test@example.com" }) { customer_id } }
mutation { updateCustomer(id: "1", input: { email: "new@example.com" }) { email } }
mutation { deleteCustomer(id: "1") { customer_id } }

Supported ER Syntax

erDiagram
    CUSTOMER {
        int customer_id PK "Primary key"
        string email UK "Unique email"
        string name
    }
    
    ORDER {
        int order_id PK
        int customer_id FK
        datetime order_date
    }
    
    CUSTOMER ||--o{ ORDER : "places"

Development

npm run dev      # Run with ts-node
npm run build    # Compile TypeScript
npm test         # Run tests

License

MIT License - see LICENSE

Available Tools

12 tools
create_schemaA

Create PostgreSQL tables from the ER diagram. This will execute DDL statements to create tables and foreign key constraints.

Inputs: diagram, dropExisting.

drop_schemaA

Drop all tables defined in the ER diagram. WARNING: This will delete all data!

Inputs: confirm (required), diagram.

generate_sqlA

Generate SQL DDL statements from the ER diagram without executing them. Useful for reviewing the SQL before creating tables.

Inputs: diagram.

get_api_endpointsB

Get information about the running API server and its endpoints.

Inputs: no named parameters.

get_entity_detailsA

Get detailed information about a specific entity including all its attributes, types, and keys (PK, FK, UK).

Inputs: entityName (required), diagram.

get_relationshipsB

Get all relationships between entities in the ER diagram with cardinality information.

Inputs: diagram, entityName.

list_entitiesC

List all entities (tables) in the ER diagram with their names and aliases.

Inputs: diagram.

parse_er_diagramB

Parse a Mermaid ER diagram and extract the complete database schema including entities, attributes, and relationships.

Inputs: diagram.

start_api_serverA

Start the REST/GraphQL API server for the entities in the ER diagram.

Inputs: diagram.

stop_api_serverB

Stop the running API server.

Inputs: no named parameters.

test_connectionA

Test the PostgreSQL database connection. Returns success or error message.

Inputs: no named parameters.

validate_diagramB

Validate a Mermaid ER diagram for syntax errors and structural issues.

Inputs: diagram (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 12 tools

    Disambiguation5/5

    Each tool targets a distinct action or resource: read operations are separated into entities, relationships, and diagram parsing, while generate_sql is clearly distinct from create_schema since one only outputs DDL and the other executes it. The API server lifecycle is also cleanly split into start, stop, and endpoint inspection. No two tools appear likely to be confused.

    Naming Consistency5/5

    All tool names follow a consistent lower_snake_case verb_noun convention. The verbs clearly indicate the action being taken, such as list, get, validate, generate, create, drop, start, and stop. The minor use of both list and get for read operations is not a meaningful inconsistency.

    Tool Count5/5

    With 12 tools, the server is well-scoped for its combined purpose of parsing Mermaid ER diagrams, managing PostgreSQL schema, and controlling an API server. Each tool supports a distinct part of the workflow without unnecessary duplication. The count fits comfortably within the ideal range.

    Completeness4/5

    The core lifecycle is well covered: parse and validate the diagram, inspect entities and relationships, generate and execute SQL, drop the schema, and start/stop the API server. Minor gaps exist, such as no tool for incremental schema updates or altering existing tables, but these are not essential to the stated purpose. Overall, the surface is complete enough for the primary workflow.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI to query and manage PostgreSQL and MongoDB databases through natural language. Supports automatic schema discovery, safe data operations, and network-wide database access with zero-configuration deployment.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables querying PostgreSQL and MySQL databases using natural language, with RESTful endpoints for listing tables, describing schemas, and executing read-only queries.
      1
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Acts as a secure bridge connecting PostgreSQL databases to AI models, enabling natural language querying, schema analysis, and controlled write operations with multi-layer security.
      -