Skip to main content
Glama
stevefordev

SQLite MCP Server

by stevefordev
README.md
# 🧠 SQLite MCP Server: Zero-Config AI Sidekick

**SQLite MCP Server**λŠ” AIκ°€ λ‹Ήμ‹ μ˜ 둜컬 데이터에 μ ‘κ·Όν•˜κ³ , λΆ„μ„ν•˜λ©°, 지식을 관리할 수 있게 λ•λŠ” κ°€μž₯ λ‹¨μˆœν•˜κ³  κ°•λ ₯ν•œ μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€.

## πŸš€ ν”„λ‘œμ νŠΈ μ² ν•™: "Zero-Configuration Sidekick"

1.  **Zero-Config**: API Keyλ‚˜ λ³΅μž‘ν•œ μ„œλ²„ 섀정이 ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. 였직 `.db` 파일 ν•˜λ‚˜λ©΄ μΆ©λΆ„ν•©λ‹ˆλ‹€.
2.  **Portable Brain**: ν”„λ‘œμ νŠΈ ν΄λ”λ§ˆλ‹€ λ…λ¦½λœ SQLite DBλ₯Ό 두어 AIκ°€ ν•΄λ‹Ή ν”„λ‘œμ νŠΈμ˜ 'κΈ°μ–΅'을 λ‘œμ»¬μ— μ €μž₯ν•˜κ³  κΊΌλ‚΄ μ“Έ 수 있게 ν•©λ‹ˆλ‹€.
3.  **Security First**: κ°•λ ₯ν•œ 읽기 μ „μš© λͺ¨λ“œμ™€ SQL 필터링을 톡해 μ•ˆμ „ν•œ 데이터 관리λ₯Ό 보μž₯ν•©λ‹ˆλ‹€.

## πŸ›  μ£Όμš” κΈ°λŠ₯

-   πŸ” **Database Discovery**: νŠΉμ • 경둜 λ‚΄μ˜ λͺ¨λ“  SQLite 파일(`.db`, `.sqlite`, `.sqlite3`)을 μžλ™μœΌλ‘œ μŠ€μΊ”ν•©λ‹ˆλ‹€.
-   πŸ—Ί **Schema Introspection**: DB의 전체 ꡬ쑰λ₯Ό νŒŒμ•…ν•˜μ—¬ AIκ°€ λ°μ΄ν„°μ˜ λ§₯락을 μ™„λ²½νžˆ μ΄ν•΄ν•˜κ²Œ λ•μŠ΅λ‹ˆλ‹€.
-   ⚑ **Secure Querying**: `SELECT` 쿼리만 ν—ˆμš©ν•˜λŠ” κ°•λ ₯ν•œ λ³΄μ•ˆ λͺ¨λ“œλ‘œ 데이터 뢄석을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.
-   πŸ“ **Note & Record Support**: AIκ°€ μ•„μ΄λ””μ–΄λ‚˜ λ©”λͺ¨λ₯Ό νŠΉμ • DB에 μ¦‰μ‹œ 기둝할 수 μžˆλŠ” μ „μš© 도ꡬλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
-   πŸ“ **DB Creation**: ν•„μš”ν•œ 경우 μƒˆλ‘œμš΄ SQLite λ°μ΄ν„°λ² μ΄μŠ€ νŒŒμΌμ„ μ¦‰μ‹œ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

## πŸ“¦ μ„€μΉ˜ 및 μ„€μ •

### 1. 사전 μš”κ΅¬ 사항
- [uv](https://github.com/astral-sh/uv) μ„€μΉ˜ ꢌμž₯ λ˜λŠ” Python 3.10 이상.

### 2. μ‚¬μš© 방법

#### πŸ“¦ μ„€μΉ˜ 및 μ‹€ν–‰ (μΆ”μ²œ)
Windows의 λ³΄μ•ˆ μ •μ±…(Smart App Control λ“±)으둜 인해 `uvx` μ‚¬μš© μ‹œ 싀행이 차단될 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ νŒ¨ν‚€μ§€λ₯Ό 둜컬 λ„κ΅¬λ‘œ μ„€μΉ˜ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•©λ‹ˆλ‹€.

```bash
# uv μ‚¬μš© (ꢌμž₯)
uv tool install sqlite-mcp-server

# λ˜λŠ” pip μ‚¬μš©
pip install sqlite-mcp-server
```

μ„€μΉ˜ ν›„μ—λŠ” μ–΄λ””μ„œλ“  λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€:
```bash
sqlite-mcp-server
```

#### ⚑ uvx μ‚¬μš© (선택 사항)
μ„€μΉ˜ 없이 λΉ λ₯΄κ²Œ 싀행해보고 싢을 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€ (Windowsμ—μ„œ `os error 4551` λ°œμƒ μ‹œ μœ„ μ„€μΉ˜ 방법을 μ‚¬μš©ν•˜μ„Έμš”):
```bash
uvx sqlite-mcp-server
```

### 3. MCP ν΄λΌμ΄μ–ΈνŠΈ 연동

#### Gemini CLI (μΆ”μ²œ)
λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ—¬ μ„œλ²„λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€:
```bash
gemini mcp add sqlite-mcp uvx sqlite-mcp-server
```

직접 μ„€μ •ν•˜λ €λ©΄ `.gemini/settings.json` νŒŒμΌμ— λ‹€μŒ 섀정을 μΆ”κ°€ν•˜μ„Έμš”:
```json
{
  "mcpServers": {
    "sqlite-mcp": {
      "command": "uvx",
      "args": ["sqlite-mcp-server"]
    }
  }
}
```

#### Claude Desktop
Claude Desktop μ„€μ • νŒŒμΌμ— λ‹€μŒ λ‚΄μš©μ„ μΆ”κ°€ν•˜μ„Έμš”:
```json
{
  "mcpServers": {
    "sqlite-mcp": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "--from",
        "sqlite-mcp-server"
      ]
    }
  }
}
```

#### Claude Code
λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ—¬ μ„œλ²„λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€:
```bash
claude mcp add sqlite-mcp -- uvx sqlite-mcp-server
```

## πŸ”§ 제곡 도ꡬ (Tools)

- `create_database(db_path)`: μƒˆλ‘œμš΄ SQLite λ°μ΄ν„°λ² μ΄μŠ€ νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€.
- `list_databases(path)`: μ§€μ •λœ 경둜의 SQLite DB λͺ©λ‘μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
- `search_databases(path, query)`: μ§€μ •λœ 경둜 λ‚΄μ˜ λͺ¨λ“  DBλ₯Ό κ²€μƒ‰ν•˜μ—¬ νŠΉμ • ν‚€μ›Œλ“œ(ν…Œμ΄λΈ”λͺ…, 컬럼λͺ…)κ°€ ν¬ν•¨λœ μœ„μΉ˜λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.
- `get_schema_summary(db_path)`: DB의 λͺ¨λ“  ν…Œμ΄λΈ”κ³Ό 컬럼 ꡬ쑰λ₯Ό μš”μ•½ν•΄μ„œ λ³΄μ—¬μ€λ‹ˆλ‹€.
- `list_tables(db_path)`: DB λ‚΄μ˜ λͺ¨λ“  ν…Œμ΄λΈ” λͺ©λ‘μ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.
- `describe_table(db_path, table_name)`: νŠΉμ • ν…Œμ΄λΈ”μ˜ μŠ€ν‚€λ§ˆμ™€ μƒ˜ν”Œ 데이터λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.
- `add_record(db_path, table_name, title, content)`: λ°μ΄ν„°λ² μ΄μŠ€μ— μƒˆλ‘œμš΄ λ ˆμ½”λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€ (ν…Œμ΄λΈ” μžλ™ 생성 지원).
- `execute_query(db_path, query)`: SELECT 쿼리λ₯Ό μ‹€ν–‰ν•˜μ—¬ 데이터λ₯Ό λΆ„μ„ν•©λ‹ˆλ‹€.

## 🌟 개발자 κ°€μ΄λ“œ
```bash
# μ˜μ‘΄μ„± μ„€μΉ˜
uv sync

# μ„œλ²„ 둜컬 μ‹€ν–‰
uv run sqlite-mcp
```

## λΌμ΄μ„ μŠ€
MIT

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: database creation, table listing, schema inspection, querying, record insertion, and database search. No overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., create_database, list_tables, execute_query) using snake_case, making the set predictable and easy to navigate.

Tool Count5/5

8 tools cover essential SQLite operations like creating databases, inserting records, querying, and exploring schema. The number is well-scoped without being excessive or insufficient.

Completeness3/5

The tool set lacks update and delete operations, and execute_query is restricted to SELECT. This creates notable gaps for full CRUD coverage, though basic operations are present.

Maintenance

ActivityInactive
ResponsivenessNo issues