Skip to main content
Glama
southglory

mcp-db-schema-tools

by southglory
README.md
# MCP DB Schema Tools ๐Ÿ› ๏ธ

**Claude Code์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ MCP ์„œ๋ฒ„**

๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ๋ถ€ํ„ฐ ์™„์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊นŒ์ง€, ์ž์—ฐ์–ด๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜์„ธ์š”.

---

## ๐Ÿ“‹ ๋ชฉ์ฐจ

- [๐ŸŽฏ ์ฃผ์š” ๊ธฐ๋Šฅ](#-์ฃผ์š”-๊ธฐ๋Šฅ)
- [โšก ๋น ๋ฅธ ์‹œ์ž‘](#-๋น ๋ฅธ-์‹œ์ž‘)
- [๐Ÿ”ง ์ค€๋น„์‚ฌํ•ญ](#-์ค€๋น„์‚ฌํ•ญ)
- [๐Ÿ› ๏ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋“ค](#๏ธ-์‚ฌ์šฉ-๊ฐ€๋Šฅํ•œ-๋„๊ตฌ๋“ค)
- [๐Ÿ“– ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐ€์ด๋“œ](#-์›Œํฌํ”Œ๋กœ์šฐ-๊ฐ€์ด๋“œ)
- [๐ŸŽ‰ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ](#-์‹ค์ œ-์‚ฌ์šฉ-์˜ˆ์‹œ)
- [๐Ÿš€ ๊ณ ๊ธ‰ ์‚ฌ์šฉ๋ฒ•](#-๊ณ ๊ธ‰-์‚ฌ์šฉ๋ฒ•)
- [๐Ÿ”ง ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ](#-๊ฐœ๋ฐœ-๊ฐ€์ด๋“œ)

---

## ๐ŸŽฏ ์ฃผ์š” ๊ธฐ๋Šฅ

### โœจ **์™„์ „ํ•œ AI ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ**
```
๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐํš์„œ โ†’ JSON ์Šคํ‚ค๋งˆ โ†’ SQL DDL โ†’ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
```

### ๐Ÿ”„ **์–‘๋ฐฉํ–ฅ ๋ณ€ํ™˜ ์ง€์›**
- JSON โ†” SQL ์™„๋ฒฝ ๋ณ€ํ™˜
- ๊ธฐ์กด DB โ†’ JSON ์Šคํ‚ค๋งˆ ์ถ”์ถœ
- ์—ฌ๋Ÿฌ ์Šคํ‚ค๋งˆ ํŒŒ์ผ ๋ณ‘ํ•ฉ

### ๐Ÿค– **Claude Code์™€ ์™„๋ฒฝ ํ†ตํ•ฉ**
- ์ž์—ฐ์–ด๋กœ ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ
- ์‹ค์‹œ๊ฐ„ ๊ฒ€์ฆ ๋ฐ ํ”ผ๋“œ๋ฐฑ
- ์›ํด๋ฆญ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

### ๐Ÿ›ก๏ธ **์•ˆ์ •์„ฑ ๋ณด์žฅ**
- ๊ด€๊ณ„ ๋ฌด๊ฒฐ์„ฑ ์ž๋™ ๊ฒ€์ฆ
- ์•ˆ์ „ํ•œ ์‹œ๋“œ ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
- ๋ฐฑ์—”๋“œ ๋ชจ๋ธ๊ณผ ๋™๊ธฐํ™” ํ™•์ธ

---

## โšก ๋น ๋ฅธ ์‹œ์ž‘

### 1๏ธโƒฃ ์„ค์น˜
```bash
# uv๊ฐ€ ์—†๋‹ค๋ฉด ๋จผ์ € ์„ค์น˜
curl -LsSf https://astral.sh/uv/install.sh | sh

# ํ”„๋กœ์ ํŠธ ์„ค์น˜
cd mcp-db-schema-tools
uv sync

# ์„ค์น˜ ํ™•์ธ
uv run python -c "import mcp_db_schema_tools; print('โœ… MCP server ready!')"
```

### 2๏ธโƒฃ Claude Code ์„ค์ •
`.claude/settings.json`์— ๋‹ค์Œ์„ ์ถ”๊ฐ€:

```json
{
  "mcpServers": {
    "db-schema-tools": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/mcp-db-schema-tools",
        "python",
        "-m",
        "mcp_db_schema_tools"
      ]
    }
  }
}
```

### 3๏ธโƒฃ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ! ๐ŸŽ‰
Claude Code์—์„œ ์ž์—ฐ์–ด๋กœ ์š”์ฒญํ•˜์„ธ์š”:

```
"๋‚ด ๊ธฐํš์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งŒ๋“ค์–ด์ค˜"
"์ด ์Šคํ‚ค๋งˆ๋กœ SQLite ํŒŒ์ผ ์ƒ์„ฑํ•ด์ค˜"
"๊ธฐ์กด DB์™€ ๋ฐฑ์—”๋“œ ๋ชจ๋ธ์ด ๋™๊ธฐํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์ค˜"
```

---

## ๐Ÿ”ง ์ค€๋น„์‚ฌํ•ญ

### โœ… **ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ**
- Python 3.8+
- uv (ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž)
- Claude Code

### ๐Ÿ“ฆ **๊ถŒ์žฅ ์ค€๋น„๋ฌผ**
- ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ (`.md`, `.txt` ๋“ฑ)
- ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ (์„ ํƒ์‚ฌํ•ญ)
- ๋ฐฑ์—”๋“œ ๋ชจ๋ธ ํŒŒ์ผ (๋™๊ธฐํ™” ํ™•์ธ์šฉ, ์„ ํƒ์‚ฌํ•ญ)

### ๐ŸŽฏ **์ง€์› ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค**
- โœ… **SQLite** (์™„์ „ ์ง€์›)
- ๐Ÿšง **PostgreSQL** (๊ธฐ๋ณธ ์ง€์›)
- ๐Ÿšง **MySQL** (๊ธฐ๋ณธ ์ง€์›)

---

## ๐Ÿ› ๏ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋“ค

### ๐Ÿค– **1. AI ์Šคํ‚ค๋งˆ ์ƒ์„ฑ**
```typescript
// ๋„๊ตฌ๋ช…: generate_schema_json_from_text
"์ด ๊ธฐํš์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ๋งŒ๋“ค์–ด์ค˜"
```
- **์ž…๋ ฅ**: ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ ํ…์ŠคํŠธ/๋ฌธ์„œ
- **์ถœ๋ ฅ**: ์™„์„ฑ๋œ JSON ์Šคํ‚ค๋งˆ
- **ํŠน์ง•**: AI๊ฐ€ ์ž๋™์œผ๋กœ ํ…Œ์ด๋ธ”๊ณผ ๊ด€๊ณ„ ๋ถ„์„

### ๐Ÿ”„ **2. JSON โ†’ SQL ๋ณ€ํ™˜**
```typescript
// ๋„๊ตฌ๋ช…: schema_json_to_sql
"JSON ์Šคํ‚ค๋งˆ๋ฅผ SQLite SQL๋กœ ๋ณ€ํ™˜ํ•ด์ค˜"
```
- **์ž…๋ ฅ**: JSON ์Šคํ‚ค๋งˆ ํŒŒ์ผ ๋˜๋Š” ๋‚ด์šฉ
- **์ถœ๋ ฅ**: ์‹คํ–‰ ์ค€๋น„๋œ SQL DDL
- **์ง€์›**: SQLite, PostgreSQL, MySQL

### ๐Ÿ—„๏ธ **3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ**
```typescript
// ๋„๊ตฌ๋ช…: create_database_from_schema
"์ด ์Šคํ‚ค๋งˆ๋กœ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค์–ด์ค˜"
```
- **์ž…๋ ฅ**: JSON ์Šคํ‚ค๋งˆ
- **์ถœ๋ ฅ**: ์™„์„ฑ๋œ SQLite ํŒŒ์ผ
- **๊ธฐ๋Šฅ**: ์‹œ๋“œ ๋ฐ์ดํ„ฐ ์ž๋™ ์‚ฝ์ž…

### ๐Ÿ“ค **4. ๊ธฐ์กด DB โ†’ JSON ์ถ”์ถœ**
```typescript
// ๋„๊ตฌ๋ช…: extract_schema_from_db
"๊ธฐ์กด SQLite ํŒŒ์ผ์—์„œ ์Šคํ‚ค๋งˆ๋ฅผ JSON์œผ๋กœ ์ถ”์ถœํ•ด์ค˜"
```
- **์ž…๋ ฅ**: ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ
- **์ถœ๋ ฅ**: JSON ์Šคํ‚ค๋งˆ + ๋ฌธ์„œํ™”
- **ํ™œ์šฉ**: ๋ ˆ๊ฑฐ์‹œ DB ๋ฌธ์„œํ™”

### ๐Ÿ” **5. ์Šคํ‚ค๋งˆ ๊ฒ€์ฆ**
```typescript
// ๋„๊ตฌ๋ช…: validate_schema
"์ด ์Šคํ‚ค๋งˆ์— ๋ฌธ์ œ์—†๋Š”์ง€ ๊ฒ€์ฆํ•ด์ค˜"
```
- **๊ฒ€์ฆ ํ•ญ๋ชฉ**: Foreign Key, ์ธ๋ฑ์Šค, ๋ฐ์ดํ„ฐ ํƒ€์ž…
- **๊ฒฐ๊ณผ**: ์˜ค๋ฅ˜/๊ฒฝ๊ณ  ๋ฆฌ์ŠคํŠธ + ๊ฐœ์„  ์ œ์•ˆ

### ๐Ÿงฉ **6. ์Šคํ‚ค๋งˆ ๋ณ‘ํ•ฉ**
```typescript
// ๋„๊ตฌ๋ช…: merge_schemas
"core์™€ admin ์Šคํ‚ค๋งˆ๋ฅผ ํ•ฉ์ณ์ค˜"
```
- **์ž…๋ ฅ**: ์—ฌ๋Ÿฌ JSON ์Šคํ‚ค๋งˆ ํŒŒ์ผ
- **์ถœ๋ ฅ**: ํ†ตํ•ฉ๋œ ๋‹จ์ผ ์Šคํ‚ค๋งˆ
- **ํ™œ์šฉ**: ๋ชจ๋“ˆ๋ณ„ ์Šคํ‚ค๋งˆ ๊ด€๋ฆฌ

### โš–๏ธ **7. ๋ชจ๋ธ ๋™๊ธฐํ™” ํ™•์ธ**
```typescript
// ๋„๊ตฌ๋ช…: compare_with_models
"ํ˜„์žฌ DB์™€ ๋ฐฑ์—”๋“œ ๋ชจ๋ธ์ด ๋™๊ธฐํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์ค˜"
```
- **์ž…๋ ฅ**: SQLite DB + Python ๋ชจ๋ธ ํŒŒ์ผ๋“ค
- **์ถœ๋ ฅ**: ๋ˆ„๋ฝ/์ถ”๊ฐ€ ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ ์ฐจ์ด
- **ํ™œ์šฉ**: ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ณ„ํš ์ˆ˜๋ฆฝ

---

## ๐Ÿ“– ์›Œํฌํ”Œ๋กœ์šฐ ๊ฐ€์ด๋“œ

### ๐ŸŒŸ **์‹œ๋‚˜๋ฆฌ์˜ค 1: ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘**
```mermaid
graph LR
    A[๊ธฐํš์„œ.md] --> B[AI ์Šคํ‚ค๋งˆ ์ƒ์„ฑ]
    B --> C[JSON ์Šคํ‚ค๋งˆ]
    C --> D[์Šคํ‚ค๋งˆ ๊ฒ€์ฆ]
    D --> E[SQLite DB ์ƒ์„ฑ]
    E --> F[๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ์ž‘]
```

**Claude Code ๋ช…๋ น์–ด ์ˆœ์„œ:**
1. `"ํ”„๋กœ์ ํŠธ ๊ธฐํš์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งŒ๋“ค์–ด์ค˜"`
2. `"์ƒ์„ฑ๋œ ์Šคํ‚ค๋งˆ ๊ฒ€์ฆํ•ด์ค˜"`
3. `"๊ฒ€์ฆ๋œ ์Šคํ‚ค๋งˆ๋กœ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑํ•ด์ค˜"`

### ๐Ÿ”„ **์‹œ๋‚˜๋ฆฌ์˜ค 2: ๊ธฐ์กด DB ๋ฌธ์„œํ™”**
```mermaid
graph LR
    A[legacy.db] --> B[์Šคํ‚ค๋งˆ ์ถ”์ถœ]
    B --> C[JSON ์Šคํ‚ค๋งˆ]
    C --> D[๋ฌธ์„œ ์ƒ์„ฑ]
    D --> E[README.md]
```

**Claude Code ๋ช…๋ น์–ด ์ˆœ์„œ:**
1. `"legacy.db์—์„œ ์Šคํ‚ค๋งˆ๋ฅผ JSON์œผ๋กœ ์ถ”์ถœํ•ด์ค˜"`
2. `"์ถ”์ถœ๋œ ์Šคํ‚ค๋งˆ๋กœ README ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜"`

### ๐Ÿ”ง **์‹œ๋‚˜๋ฆฌ์˜ค 3: ํŒ€ ํ˜‘์—… (๋ชจ๋“ˆ๋ณ„ ๊ฐœ๋ฐœ)**
```mermaid
graph LR
    A[core.json] --> C[merge_schemas]
    B[admin.json] --> C
    C --> D[unified.json]
    D --> E[์ตœ์ข… DB]
```

**Claude Code ๋ช…๋ น์–ด ์ˆœ์„œ:**
1. `"core.json๊ณผ admin.json ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ‘ํ•ฉํ•ด์ค˜"`
2. `"๋ณ‘ํ•ฉ๋œ ์Šคํ‚ค๋งˆ ๊ฒ€์ฆํ•ด์ค˜"`
3. `"์ตœ์ข… ์Šคํ‚ค๋งˆ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑํ•ด์ค˜"`

---

## ๐ŸŽ‰ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ

### ๐Ÿš€ **์˜ˆ์‹œ 1: ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ ํ”„๋กœ์ ํŠธ**
```prompt
์‚ฌ์šฉ์ž: "blog_platform.md ํŒŒ์ผ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ๋งŒ๋“ค์–ด์ค˜"

Claude: generate_schema_json_from_text ๋„๊ตฌ๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โœ… Schema generated and saved to: blog_schema.json
๐Ÿ“Š Generated Schema Summary:
- Database: blog_platform  
- Tables: 6
- Relationships: 8

๐Ÿ“‹ Tables Created:
- users: ์‚ฌ์šฉ์ž ์ •๋ณด (์ด๋ฉ”์ผ ์ธ์ฆ)
- categories: ๊ฒŒ์‹œ๊ธ€ ์นดํ…Œ๊ณ ๋ฆฌ
- posts: ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€
- comments: ๋Œ“๊ธ€ ์‹œ์Šคํ…œ
- tags: ํƒœ๊ทธ ๊ด€๋ฆฌ
- post_tags: ๊ฒŒ์‹œ๊ธ€-ํƒœ๊ทธ ๊ด€๊ณ„
```

```prompt
์‚ฌ์šฉ์ž: "์ƒ์„ฑ๋œ ์Šคํ‚ค๋งˆ๋กœ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค์–ด์ค˜"

Claude: create_database_from_schema ๋„๊ตฌ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โœ… SQLITE Database created successfully!
๐Ÿ“ Database: blog_platform.db
๐Ÿ“Š Tables created: 6
๐ŸŒฑ Seed records inserted: 3

์ค€๋น„ ์™„๋ฃŒ! ์ด์ œ FastAPI ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
```

### ๐Ÿ” **์˜ˆ์‹œ 2: ๋ ˆ๊ฑฐ์‹œ DB ๋ถ„์„**
```prompt
์‚ฌ์šฉ์ž: "old_system.db ํŒŒ์ผ์„ ๋ถ„์„ํ•ด์„œ ํ˜„๋Œ€์ ์ธ JSON ์Šคํ‚ค๋งˆ๋กœ ๋ณ€ํ™˜ํ•ด์ค˜"

Claude: extract_schema_from_db ๋„๊ตฌ๋กœ ์Šคํ‚ค๋งˆ๋ฅผ ์ถ”์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โœ… SQLITE Schema extracted and saved to: legacy_schema.json
๐Ÿ“Š Schema Summary:
- Database: old_system
- Tables: 15
- Relationships: 8

โš ๏ธ ๋ฐœ๊ฒฌ๋œ ๋ฌธ์ œ์ :
- Missing foreign key constraints (3๊ฐœ)
- Inconsistent naming convention
- Missing indexes on frequently queried columns

๐Ÿ’ก ๊ฐœ์„  ์ œ์•ˆ:
- users.email์— UNIQUE ์ธ๋ฑ์Šค ์ถ”๊ฐ€
- created_at ์ปฌ๋Ÿผ๋“ค์— ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
- ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€
```

### โš–๏ธ **์˜ˆ์‹œ 3: ๋ฐฑ์—”๋“œ ๋™๊ธฐํ™” ํ™•์ธ**
```prompt
์‚ฌ์šฉ์ž: "ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ SQLAlchemy ๋ชจ๋ธ๊ณผ ๋™๊ธฐํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์ค˜"

Claude: compare_with_models ๋„๊ตฌ๋กœ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ” Database vs Models Comparison

โŒ Missing Tables in Database (2):
- user_profiles
- activity_logs

โš ๏ธ Extra Tables in Database (1):
- temp_migration_backup

๐Ÿ“ Missing Columns:
- users: last_login_ip, preferences
- orders: tracking_number

๐Ÿ’ก Suggestions:
- Create migration script for missing tables
- Remove temporary backup table
- Consider adding missing columns to models
```

---

## ๐Ÿš€ ๊ณ ๊ธ‰ ์‚ฌ์šฉ๋ฒ•

### ๐ŸŽจ **์ปค์Šคํ…€ ์Šคํ‚ค๋งˆ ํ…œํ”Œ๋ฆฟ**
```json
{
  "database": {
    "name": "my_project",
    "type": "sqlite",
    "version": "1.0.0",
    "description": "ํ”„๋กœ์ ํŠธ ์„ค๋ช…"
  },
  "tables": {
    "users": {
      "description": "์‚ฌ์šฉ์ž ์ •๋ณด",
      "columns": {
        "id": {
          "type": "INTEGER",
          "primary_key": true,
          "auto_increment": true
        }
      }
    }
  }
}
```

### ๐Ÿ”„ **๋ฐฐ์น˜ ์ฒ˜๋ฆฌ**
```bash
# ์—ฌ๋Ÿฌ ์Šคํ‚ค๋งˆ ํŒŒ์ผ ์ผ๊ด„ ๋ณ€ํ™˜
for schema in schemas/*.json; do
  echo "Converting $schema..."
  # Claude Code์—์„œ ์ž๋™ํ™” ๊ฐ€๋Šฅ
done
```

### ๐Ÿงช **ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ**
```json
{
  "seed_data": {
    "users": [
      {
        "id": 1,
        "email": "test@example.com",
        "name": "ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ์ž"
      }
    ]
  }
}
```

---

## ๐Ÿ”ง ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ

### ๐Ÿ“ฆ **๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •**
```bash
# ๊ฐœ๋ฐœ ์˜์กด์„ฑ ํฌํ•จ ์„ค์น˜
uv sync --dev

# ์ฝ”๋“œ ํ’ˆ์งˆ ๊ฒ€์‚ฌ
uv run black .
uv run ruff check .

# ํ…Œ์ŠคํŠธ ์‹คํ–‰
uv run pytest -v

# MCP ์„œ๋ฒ„ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ
uv run python -m mcp_db_schema_tools --debug
```

### ๐Ÿงช **ํ…Œ์ŠคํŠธ ์ž‘์„ฑ**
```python
def test_schema_generation():
    """๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์—์„œ ์Šคํ‚ค๋งˆ ์ƒ์„ฑ ํ…Œ์ŠคํŠธ"""
    requirements = "์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ์‹œ์Šคํ…œ..."
    schema = generate_schema_from_text(requirements)
    assert "users" in schema["tables"]
```

### ๐Ÿ“‹ **๊ธฐ์—ฌ ๋ฐฉ๋ฒ•**
1. **Fork** this repository
2. **Branch** ์ƒ์„ฑ: `git checkout -b feature/amazing-feature`
3. **Commit** ๋ณ€๊ฒฝ์‚ฌํ•ญ: `git commit -m 'Add amazing feature'`
4. **Push** to branch: `git push origin feature/amazing-feature`
5. **Pull Request** ์ƒ์„ฑ

### ๐Ÿ› **์ด์Šˆ ๋ฆฌํฌํŠธ**
๋ฌธ์ œ ๋ฐœ๊ฒฌ ์‹œ ๋‹ค์Œ ์ •๋ณด์™€ ํ•จ๊ป˜ GitHub Issues์— ๋ณด๊ณ ํ•ด์ฃผ์„ธ์š”:
- MCP ์„œ๋ฒ„ ๋ฒ„์ „
- Claude Code ๋ฒ„์ „
- ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€
- ์žฌํ˜„ ๋‹จ๊ณ„

---

## ๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License - ์ž์„ธํ•œ ๋‚ด์šฉ์€ [LICENSE](LICENSE) ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

---

## ๐Ÿ™ ๊ฐ์‚ฌ์˜ ๋ง

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ ๊ธฐ์ˆ ๋“ค๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค:
- โšก **uv** - ์ดˆ๊ณ ์† Python ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ
- ๐Ÿค– **Claude Code** - AI ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
- ๐Ÿ”— **MCP Protocol** - ๋ชจ๋ธ-์ปดํ“จํ„ฐ ๊ฐ„ ํ†ต์‹ 

---

**Made with โšก uv and โค๏ธ for Claude Code integration**

> ๐Ÿ’ก **ํŒ**: ์ด README๋„ MCP DB Schema Tools๋กœ ๊ด€๋ฆฌ๋˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!