SchemaForge MCP server
2026년 10월 23일 커밋SQL, Prisma, Django, SQLAlchemy를 포함한 11가지 다양한 형식 간에 데이터베이스 스키마와 ORM 모델을 양방향으로 변환합니다.
다른 이름 Coding-Dev-Tools/schemaforge
- 스타
- 4
- Tools
- 5
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 10월 23일
- 라이선스
- MIT
SchemaForge MCP란?
SchemaForge은(는) MCP server입니다. SQL, Prisma, Django, SQLAlchemy를 포함한 11가지 다양한 형식 간에 데이터베이스 스키마와 ORM 모델을 양방향으로 변환합니다. 5개 도구를 제공합니다. 예: convert, diff, check.
프로젝트 README에서 생성된 요약
SchemaForge MCP server 정보
서로 다른 데이터베이스 기술이나 ORM 간에 마이그레이션을 진행하는 개발자는 SchemaForge를 사용하여 11가지 서로 다른 형식으로 스키마 정의를 변환할 수 있습니다. SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, JSON Schema, GraphQL SDL, EF Core, Scala case classes 간의 데이터 모델 이동을 지원합니다. 이 도구는 Python 기반 CLI를 통해 로컬에서 작동하며, Python 3.10 이상의 버전이 필요합니다.
공통 내부 표현 방식을 활용하여 대부분의 형식에 대해 양방향 변환을 지원하며, 테이블, 컬럼, 타입, enum의 높은 충실도를 가진 라운드트립(roundtripping)이 가능합니다. 대부분의 형식은 양방향 이동을 지원하지만, Alembic은 다른 스키마 유형으로부터 마이그레이션 스크립트를 생성하기 위한 생성 전용 타겟으로 사용됩니다. 또한 사용자는 YAML 또는 JSON 설정 파일을 통해 커스텀 타입 매핑을 적용함으로써, 특정 데이터 타입이 대상 환경의 요구 사항과 일치하도록 복잡한 전환 과정을 관리할 수 있습니다.
활용 사례
- 1ORM 모델 마이그레이션새 프로젝트를 위해 Prisma 스키마를 Drizzle ORM 스키마로 변환합니다.
- 2API 정의 생성기존 SQL DDL 파일로부터 GraphQL SDL 스키마를 직접 생성합니다.
- 3데이터베이스 마이그레이션 생성SQL 스키마 또는 Prisma 파일을 시작점으로 Alembic 마이그레이션 스크립트를 생성합니다.
- 4스키마 버전 비교두 가지 서로 다른 버전의 Prisma 스키마 간의 라인 단위 차이점을 식별합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
SchemaForge MCP 도구 5
README에서 감지됨convertdiffcheckformatsdetect_format
| convert | — | |
| diff | — | |
| check | — | |
| formats | — | |
| detect_format | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능coding-dev-tools/schemaforge is public and reachablegithub.com/coding-dev-tools/schemaforge ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-10-23github.com/coding-dev-tools/schemaforge ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음5 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨No tool named like delete, drop or exec통과
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기SchemaForge
Bidirectional ORM schema converter — convert between SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, Alembic migrations, JSON Schema, GraphQL SDL, EF Core (C#), and Scala case classes. 11 formats, 100 conversion directions.
Why SchemaForge?
Convert any schema to any format, verify equivalence with the diff command, generate Alembic migrations, produce JSON Schema definitions, create GraphQL SDL types, convert Entity Framework (C#) entities, generate Scala case classes, and batch-process entire directories. Whether you're migrating from Prisma to Drizzle, sharing a schema with a Django backend, exposing your data model as GraphQL, translating C# entities to Scala, or working with the SchemaForge VS Code extension for live preview — SchemaForge handles it.
Quick Start
# Install (package publishing pending — install from source)
pip install git+https://github.com/Coding-Dev-Tools/schemaforge.git
# Convert Prisma → Drizzle
schemaforge convert --from prisma --to drizzle --input schema.prisma
# Generate GraphQL from SQL
schemaforge convert --from sql --to graphql --input schema.sql --output schema.graphql
# Generate JSON Schema from Prisma
schemaforge convert --from prisma --to json_schema --input schema.prisma --output schema.json
# Generate Alembic migration from SQL
schemaforge convert --from sql --to alembic --input schema.sql --output migrations/initial.py
# Apply custom type mappings
schemaforge convert --from sql --to prisma --input schema.sql --type-map my-types.yaml
# Diff two schemas
schemaforge diff schema-v1.prisma schema-v2.prisma
# Check all schemas in a directory are consistent
schemaforge check --dir ./schemas/
Installation
# Install from source (recommended — PyPI publishing pending)
pip install git+https://github.com/Coding-Dev-Tools/schemaforge.git
Requires Python 3.10+.
Commands
schemaforge convert
Convert a schema from one format to another. Every format converts to and from every other format, except Alembic which is generator-only (a target, not a source) — 100 direction pairs.
# Format-specific examples
schemaforge convert --from sql --to prisma --input schema.sql
schemaforge convert --from prisma --to drizzle --input schema.prisma
schemaforge convert --from drizzle --to sql --input schema.drizzle.ts
schemaforge convert --from typeorm --to django --input entities/
schemaforge convert --from django --to sqlalchemy --input models.py
schemaforge convert --from sqlalchemy --to prisma --input models.py
# Alembic migration generation
schemaforge convert --from sql --to alembic --input schema.sql --output migrations/initial.py
schemaforge convert --from prisma --to alembic --input schema.prisma --output migrations/
# JSON Schema
schemaforge convert --from sql --to json_schema --input schema.sql --output schema.json
schemaforge convert --from json_schema --to prisma --input schema.json
# GraphQL SDL
schemaforge convert --from sql --to graphql --input schema.sql --output schema.graphql
schemaforge convert --from graphql --to prisma --input schema.graphql
# Custom type mapping
schemaforge convert --from sql --to prisma --input schema.sql --type-map my-types.yaml
# Dir mode (check all files are consistent)
schemaforge check --dir ./schemas/ --canonical prisma
schemaforge diff
Compare two schema files in the same format and see line-level differences.
schemaforge diff schema-v1.prisma schema-v2.prisma
schemaforge diff schema.sql schema-updated.sql --format sql
schemaforge diff fixtures/sample.sql fixtures/sample.prisma --format prisma
Detects added, removed, and modified tables, columns, indexes, and constraints.
Supported Formats
| Format | Import | Export | Roundtrip |
|---|---|---|---|
| SQL DDL | ✓ | ✓ | ✓ |
| Prisma schema | ✓ | ✓ | ✓ |
| Drizzle schema | ✓ | ✓ | ✓ |
| TypeORM entities | ✓ | ✓ | ✓ |
| Django models | ✓ | ✓ | ✓ |
| SQLAlchemy models | ✓ | ✓ | ✓ |
| Alembic migrations | — | ✓ | — |
| JSON Schema | ✓ | ✓ | ✓ |
| GraphQL SDL | ✓ | ✓ | ✓ |
| EF Core (C#) | ✓ | ✓ | ✓ |
| Scala case class | ✓ | ✓ | ✓ |
Alembic is generator-only: you can create migration scripts from any format, but parsing existing migrations back to IR is not yet supported.
Limitations
- Foreign keys & relationships — the shared IR does not yet model foreign-key constraints or ORM relations, so
FOREIGN KEY/REFERENCESclauses, Prisma/TypeORM relation fields, and DjangoForeignKeyfields are dropped during conversion rather than roundtripped. Tables, columns, types, defaults, indexes, unique constraints, and enums are preserved. FK support is on the roadmap. - Alembic is generator-only (see above) — you can generate migrations from any format but not parse them back.
Format Identifiers for --from / --to
| CLI identifier | Format |
|---|---|
sql |
SQL DDL |
prisma |
Prisma schema |
drizzle |
Drizzle ORM schema |
typeorm |
TypeORM entities |
django |
Django models |
sqlalchemy |
SQLAlchemy declarative models |
alembic |
Alembic migration scripts |
json_schema |
JSON Schema (draft 2020-12) |
graphql |
GraphQL SDL |
ef |
Entity Framework Core (C#) |
scala |
Scala case classes (Doobie/Quill/Slick) |
How It Works
SchemaForge uses a shared Internal Representation (IR) — all formats convert to and from this common schema definition. This architecture guarantees:
- High-fidelity roundtripping:
sql → prisma → sqlreproduces tables, columns, types, defaults, indexes, unique constraints, and enums. Foreign-key/relationship constraints are not yet modeled in the IR and are dropped (see Limitations). - Bidirectional conversion: every format can convert to every other format, except Alembic, which is generator-only (a target, not a source)
- Extensibility: adding a new format requires only a parser and a generator — no pairwise converters
| SQL DDL ───┐
| Prisma ────┤
| Drizzle ───┤
| TypeORM ───┤
| Django ────┤
| SQLAlchemy ───┤
| Alembic ────┤
| JSON Schema ──┤
| GraphQL ────┤
| EF Core ─────┤
| Scala ─────┤
Each parser reads format-specific syntax and builds a schema IR. Each generator takes the same IR and produces format-native output. The fn: prefix convention preserves SQL function defaults (CURRENT_TIMESTAMP, NOW(), gen_random_uuid()) across format boundaries.
Custom Type Mappings (v1.1.0+)
Override default type mappings with YAML or JSON configuration files.
# type-overrides.yaml
overrides:
prisma:
STRING: "String @db.VarChar({length})"
UUID: "String @db.Uuid"
sql:
STRING: "TEXT"
DATETIME: "TIMESTAMP WITH TIME ZONE"
Template variables available: {length}, {precision}, {scale}, {values}.
# Apply overrides during conversion
schemaforge convert --from sql --to prisma --input schema.sql --type-map type-overrides.yaml
Type Mapping
SchemaForge maps types intelligently between ORM systems. The core ColumnType enum represents all supported data types, and each format maps them to their native equivalents.
| ColumnType | SQL DDL | Prisma | Drizzle | TypeORM | Django | SQLAlchemy | Alembic | JSON Schema | GraphQL |
|---|---|---|---|---|---|---|---|---|---|
| STRING | VARCHAR(n) / TEXT | String @db.VarChar(n) | varchar(n) | varchar | CharField(max_length=n) | String(n) | sa.String(n) | type: string | String |
| INTEGER | INTEGER | Int | integer | integer | IntegerField | Integer | sa.Integer | type: integer | Int |
| FLOAT | FLOAT | Float | real | float | FloatField | Float | sa.Float | type: number | Float |
| BOOLEAN | BOOLEAN | Boolean | boolean | boolean | BooleanField | Boolean | sa.Boolean | type: boolean | Boolean |
| DATETIME | TIMESTAMP | DateTime | timestamp | timestamp | DateTimeField | DateTime | sa.DateTime | format: date-time | DateTime |
| DATE | DATE | DateTime | date | date | DateField | Date | sa.Date | format: date | Date |
| TIME | TIME | DateTime | time | time | TimeField | Time | sa.Time | format: time | Time |
| TEXT | TEXT | String | text | text | TextField | Text | sa.Text | type: string | String |
| BLOB | BLOB | Bytes | blob | blob | BinaryField | LargeBinary | sa.LargeBinary | format: binary | String |
| JSON | JSON | Json | json | json | JSONField | JSON | sa.JSON | type: object | JSON |
| UUID | UUID | String | uuid | uuid | UUIDField | Uuid | sa.Uuid | format: uuid | ID |
| ENUM | ENUM('a','b') | (via enum) | pgEnum | enum | CharField | Enum | sa.Enum | (enum) | enum |
| DECIMAL | DECIMAL(p,s) | Decimal | numeric(p,s) | decimal(p,s) | DecimalField | Numeric(p,s) | sa.Numeric(p,s) | type: number | Float |
| CUSTOM | (passthrough) | (passthrough) | (passthrough) | (passthrough) | (passthrough) | (passthrough) | (passthrough) | (passthrough) | (passthrough) |
Function defaults (CURRENT_TIMESTAMP, NOW(), gen_random_uuid(), etc.) are preserved across conversions using a fn: prefix convention.
Demo Fixtures
Try SchemaForge immediately with our example blog schema. The fixtures/ directory contains an equivalent schema (users, posts, categories with enums and various data types) in all 11 formats:
# List all fixtures
ls fixtures/
# Convert SQL → Prisma
schemaforge convert --from sql --to prisma --input fixtures/sample.sql
# Convert Prisma → Django
schemaforge convert --from prisma --to django --input fixtures/sample.prisma
# Convert SQL → GraphQL
schemaforge convert --from sql --to graphql --input fixtures/sample.sql
# Convert SQL → JSON Schema
schemaforge convert --from sql --to json_schema --input fixtures/sample.sql
# Convert Prisma → Alembic migration
schemaforge convert --from prisma --to alembic --input fixtures/sample.prisma --output migrations/
# Custom type mapping demo
schemaforge convert --from sql --to prisma --input fixtures/sample.sql \
--type-map fixtures/sample-type-overrides.yaml
# Batch convert all fixtures from SQL
schemaforge check --dir fixtures/
# Diff two format outputs
schemaforge diff fixtures/sample.sql fixtures/sample.prisma --format prisma
Each fixture demonstrates the same blog schema so you can compare ORM syntax side-by-side and verify roundtrip consistency.
Features
- Bidirectional conversion — every format converts to and from every other format (Alembic is generator-only: a target, not a source)
- High-fidelity roundtripping —
sql → prisma → sqlreproduces tables, columns, types, defaults, indexes, and enums (foreign keys are not yet preserved — see Limitations) - Custom type mappings — YAML/JSON config files to override any type mapping with template variables
- VS Code extension — live preview, schema diff, and one-click conversion from VS Code
- Alembic migration generation — create database migration scripts from any schema format
- JSON Schema — import/export schema definitions as JSON Schema (draft 2020-12)
- GraphQL SDL — generate or consume GraphQL type definitions with enums, directives, and scalars
- EF Core (C#) support — import/export Entity Framework entity classes with data annotations
- Scala case class support — generate case classes targeting Doobie/Quill/Slick
- Diff mode — compare two schemas in the same format with line-level differences
- Batch mode — convert entire directories of schema files with one command
- Intelligent type mapping — types map correctly across all 11 formats
- Function default preservation —
CURRENT_TIMESTAMP,NOW(),gen_random_uuid()survive roundtrips - MySQL support — ENGINE=InnoDB, AUTO_INCREMENT, DEFAULT CHARSET, COMMENT table options
- Inline ENUM —
ENUM('small', 'medium', 'large')column types parsed and roundtripped - Index & constraint preservation — indexes and unique constraints maintained across all conversions (foreign-key/relationship constraints are not yet modeled — see Limitations)
- Custom type handling — dialect-specific types (JSONB, etc.) pass through via CUSTOM type
MCP Server
SchemaForge includes an MCP (Model Context Protocol) server that exposes all schema operations as tools for AI agents. This allows AI coding assistants like Claude Code, Cursor, and others to convert, diff, and check schemas directly.
# Install with MCP support
pip install "schemaforge[mcp] @ git+https://github.com/Coding-Dev-Tools/schemaforge.git"
# Start the server (stdio mode — default for AI clients)
schemaforge mcp
# Start as SSE HTTP server
schemaforge mcp --sse --port 8000
Available Tools
| Tool | Description |
|---|---|
convert |
Convert a schema between any two of the 11 formats |
diff |
Compare two schemas and show differences |
check |
Verify schema consistency across a directory |
formats |
List all supported formats with descriptions |
detect_format |
Identify format from filename |
Configuration for AI Clients
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"schemaforge": {
"command": "schemaforge",
"args": ["mcp"]
}
}
}
Cursor: Add to .cursor/mcp.json:
{
"mcpServers": {
"schemaforge": {
"command": "schemaforge",
"args": ["mcp"]
}
}
}
VS Code Extension
The SchemaForge VS Code extension provides live schema preview, quick conversion, and schema diffing directly from your editor.
Features
- Live Preview — opens a side panel showing your active schema file converted to all other formats (tabbed interface for quick comparison)
- Quick Convert —
Ctrl+Alt+S/Cmd+Alt+Sto convert the active editor's schema to your configured default target format - Format Detection —
Ctrl+Alt+D/Cmd+Alt+Dto detect and display the format of the active schema file - Diff Two Schemas — select two schema files to diff them side-by-side in VS Code's native diff editor
- Right-Click Conversion — right-click any schema file in the explorer to convert it
- Custom Editor — open
.schemaforgefiles for a rich conversion preview - Auto-Refresh — preview panel updates when you save a schema file or switch tabs
Installation
- Install SchemaForge:
pip install git+https://github.com/Coding-Dev-Tools/schemaforge.git - Install the extension from the VS Code Marketplace
- Open a
.sql,.prisma,.graphql,.cs, or.scalafile - Run
SchemaForge: Show Previewfrom the command palette
Configuration
| Setting | Default | Description |
|---|---|---|
schemaforge.cliPath |
schemaforge |
Path to the schemaforge CLI executable |
schemaforge.defaultTargetFormat |
prisma |
Default target format for quick conversions |
schemaforge.livePreview.enabled |
true |
Enable live preview panel when editing schema files |
Development
git clone https://github.com/Coding-Dev-Tools/vscode-schemaforge.git
cd vscode-schemaforge
npm install
npm run compile
# Press F5 in VS Code to launch extension host
Roadmap
| Version | Features |
|---|---|
| v0.1.0 | SQL DDL ↔ Prisma bidirectional conversion |
| v0.2.0 | Drizzle schema support |
| v0.3.0 | TypeORM entities support |
| v0.4.0 | Django models support |
| v0.5.0 | SQLAlchemy support, diff mode, batch mode, custom type mappings |
| v0.6.0 | SQL parser edge cases (TEMPORARY TABLE, backtick quoting, fn: defaults) |
| v0.7.0 | MySQL table options (ENGINE, CHARSET), inline ENUM('a','b','c') |
| v0.8.0 | Alembic migration generation (7th format) |
| v0.9.0 | Shared generator base module, refactored fn: default handling |
| v1.0.0 | Stable release — comprehensive docs, CLI polish |
| v1.1.0 | Custom type mapping configuration (YAML/JSON overrides) |
| v1.2.0 | JSON Schema support (8th format) |
| v1.3.0 | GraphQL SDL support (9th format) |
| v1.4.0 | Schema consistency check, CI/CD workflow, MCP server |
| v1.5.0 | Entity Framework Core (C#) support (10th format) |
| v1.6.0 | Scala case class support (11th format) |
| v1.7.0 | VS Code extension — live preview, diff, quick convert |
Planned
- VS Code extension: in-editor syntax highlighting for all 11 schema formats
- Live schema watch mode for automatic re-conversion on file change
- Mermaid/ERD diagram generation from schema IR
- Terraform/OpenTofu provider for schema drift detection
- Web dashboard with schema diff history
Pricing
SchemaForge is one of 11 tools in the Revenue Holdings suite. One license covers all CLI tools.
| Plan | Price | Best For |
|---|---|---|
| Free | $0 | Individual devs, OSS — CLI only, rate-limited |
| SchemaForge Individual | $15/mo ($12 billed annually) | Professional devs — unlimited conversions, batch mode |
| Suite (all 11 tools) | $49/mo ($39 billed annually) | Full Revenue Holdings toolkit — 40% savings |
| Team | $79/mo ($63 billed annually) | Up to 5 devs — shared schemas, team dashboard, alerts |
| Enterprise | Custom | SSO, RBAC, compliance reports, dedicated support |
🔹 No lock-in: CLI works fully offline on the free tier — no telemetry, no phone-home. 🔹 Annual billing: Save 20%.
Per-Tier Features
| Feature | Free | Individual | Suite | Team | Enterprise |
|---|---|---|---|---|---|
| CLI: convert, diff | ✓ | ✓ | ✓ | ✓ | |
| All 11 format directions | — | ✓ | ✓ | ✓ | |
| Alembic migration generation | — | ✓ | ✓ | ✓ | |
| JSON Schema import/export | — | ✓ | ✓ | ✓ | |
| GraphQL SDL import/export | — | ✓ | ✓ | ✓ | |
| MCP server (AI agent tools) | ✓ | ✓ | ✓ | ✓ | |
| Custom type mappings | — | ✓ | ✓ | ✓ | |
| Batch directory conversion | — | ✓ | ✓ | ✓ | |
| Team shared type mappings | — | — | — | ✓ | |
| Dashboard & analytics | — | — | — | ✓ | |
| Compliance reports | — | — | — | — | |
| RBAC / SSO / SAML / OIDC | — | — | — | — | |
| Priority support | Community | 24h | 24h | 8h | Dedicated |
Development
# Clone and install in dev mode
git clone https://github.com/Coding-Dev-Tools/schemaforge.git
cd schemaforge
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run tests with coverage
pytest tests/ --cov=schemaforge
Contributing
PRs welcome! New format parsers/generators, bug fixes, and documentation improvements are all appreciated.
- Fork the repo
- Create a feature branch (
git checkout -b feat/awesome-format) - Add your parser and generator in
src/schemaforge/parsers/andsrc/schemaforge/generators/ - Register in
src/schemaforge/convert.py - Add tests in
tests/ - Run the full test suite (
pytest tests/ -v) - Submit a PR
License
MIT — see LICENSE
Part of Revenue Holdings — a suite of 11 developer CLI tools built by autonomous AI agents. Also check out the SchemaForge VS Code extension, ConfigDrift (config drift detection), DataMorph (data format conversion), DeadCode (dead code cleanup), DeployDiff (infrastructure diffs), Envault (env sync), APIAuth (API key management), APIGhost (mock API server), json2sql (JSON → SQL), API Contract Guardian (breaking change detection), and click-to-mcp (CLI → MCP server).
SchemaForge MCP 질문
SchemaForge MCP는 어떤 도구를 제공하나요?
5개 도구를 제공합니다. 예: convert, diff, check, formats, detect_format.
SchemaForge는 어떤 형식을 지원하나요?
SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, Alembic migrations, JSON Schema, GraphQL SDL, EF Core (C#), Scala case classes 등 총 11가지 형식을 지원합니다.
외래 키(foreign key) 관계가 유지되나요?
현재 내부 표현 방식에 모델링되지 않아 변환 시 외래 키 및 ORM 관계는 유지되지 않습니다.
데이터 타입 매핑을 커스텀할 수 있나요?
네, YAML 또는 JSON 설정 파일을 사용하여 템플릿 변수로 기본 타입 매핑을 재정의할 수 있습니다.