Skip to main content
Glama
schema-lint-mcp

schema-lint-mcp

by rebelice

Schema Lint MCP

An MCP server that validates schema files against lint rules using Claude or Gemini AI.

Installation

  1. Clone this repository

  2. Install dependencies: npm install

  3. Build the project: npm run build

Related MCP server: Drizzle Sentinel MCP

Configure with Claude Code

Add this to your Claude Code settings JSON file:

{
  "mcpServers": {
    "schema-lint": {
      "command": "node",
      "args": ["/path/to/schema-lint-mcp/dist/index.js"],
      "env": {
        "ANTHROPIC_API_KEY": "your-anthropic-api-key-here",
        "GEMINI_API_KEY": "your-gemini-api-key-here"
      }
    }
  }
}

Or use environment variables:

{
  "mcpServers": {
    "schema-lint": {
      "command": "node",
      "args": ["/path/to/schema-lint-mcp/dist/index.js"],
      "env": {
        "ANTHROPIC_API_KEY": "${env:ANTHROPIC_API_KEY}",
        "GEMINI_API_KEY": "${env:GEMINI_API_KEY}"
      }
    }
  }
}

Usage

Once configured, you can use the validate_schema tool in Claude Code:

// Using Claude (default)
validate_schema(schemaPath: "/path/to/schema.json", rulesPath: "/path/to/rules.json")

// Using Gemini
validate_schema(schemaPath: "/path/to/schema.json", rulesPath: "/path/to/rules.json", provider: "gemini")

Example Files

The examples/ directory contains sample schemas and rule sets:

Schema Files

  • schema.json - Example JSON schema

  • schema.sql - Example SQL schema with tables and relationships

Rule Sets

  • rules.json - Basic JSON schema validation rules

  • sql-rules.json - General SQL best practices

  • schema-rules.json - Database schema structure and naming conventions (inspired by Bytebase)

  • migration-rules.json - Database migration safety and compatibility rules (inspired by Bytebase)

Rule Categories

Schema Rules focus on:

  • Naming conventions (tables, columns, indexes)

  • Table structure requirements (primary keys, constraints)

  • Column definitions (types, defaults, nullability)

  • Index optimization

  • Documentation (comments)

Migration Rules focus on:

  • Backward compatibility

  • DDL safety (avoiding table locks, data loss)

  • DML safety (WHERE clauses, row limits)

  • Performance considerations

  • Migration hygiene (separation of concerns)

Available Tools

1 tool
validate_schemaC

Validate a schema file against lint rules

Inputs: rulesPath (required), schemaPath (required), provider.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 1 tool

    Disambiguation5/5

    With only one tool, there is no possibility of confusion between tools. The validate_schema tool has a unique and clear purpose.

    Naming Consistency5/5

    The single tool name follows the verb_noun pattern consistently (validate_schema). There is no inconsistency within the set.

    Tool Count3/5

    The server has exactly one tool, which is borderline for usability. It feels thin but could be acceptable given the narrow scope of schema validation.

    Completeness2/5

    The surface only provides validation, with no ability to inspect or configure lint rules. This is a significant gap for a schema linting server, as users cannot discover available rules or customize behavior.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables database governance for Drizzle ORM projects by inspecting schemas, linting migrations for unsafe operations, detecting schema drift, and explaining query plans with performance checks.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Gives AI coding assistants, IDEs, and CI full PostgreSQL schema intelligence from an offline snapshot, enabling linting, query validation, migration safety analysis, and foreign key graph exploration without ever exposing database credentials.
      36
      BSD 2-Clause "Simplified"
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables deterministic linting of locale files across JSON, Laravel PHP, gettext, and YAML, with no LLM or network, verifying translations for missing keys, placeholders, plural forms, glossary consistency, and stale entries.
      10 npm
      MIT