Skip to main content
Glama
rebelice

schema-lint-mcp

by rebelice
README.md
# 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`

## Configure with Claude Code

Add this to your Claude Code settings JSON file:

```json
{
  "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:

```json
{
  "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)

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 issues