Skip to main content
Glama
nao9net
by nao9net

SQLite 데이터베이스를 MCP(Model Context Protocol) 경유로 조작할 수 있는 서버입니다. 기동 시에 복수의 DB를 "alias=path" 형식으로 등록해 두고, 툴 호출 시에는 에일리어스명으로 DB를 선택합니다. 실행 시에 임의의 파일 경로를 받지 않으므로 안전합니다.

기능(툴)

  • list_databases — 등록된 DB의 에일리어스 목록을 표시

  • list_tables — 지정 DB 내의 전체 테이블명을 목록 표시

  • describe_table — 지정 테이블의 스키마(컬럼/형/외부 키/인덱스)를 취득

  • read_query — SELECT / WITH / PRAGMA 를 실행(읽기 전용)

  • write_query — INSERT / UPDATE / DELETE / DDL 를 실행(데이터 변경)

list_tables/describe_table/read_query/write_query 는 임의의 database 인수(에일리어스명)를 받아들입니다. 등록 DB가 1개뿐인 경우는 생략 가능(자동으로 그것이 디폴트가 됩니다). 2개 이상 등록하고 있는 경우는 매회 database 지정이 필수입니다.

Related MCP server: MCP SQLite Server

셋업

npm install

기동

에일리어스=패스 형식으로, 1개 이상의 DB를 지정하여 기동합니다.

node index.js main=/path/to/main.db logs=/path/to/logs.db

1개만 등록하는 경우(이 경우는 database 인수를 생략할 수 있습니다):

node index.js main=/path/to/main.db

환경 변수

변수명

설명

SQLITE_READONLY=1

모든 접속을 읽기 전용으로 엽니다(write_query 는 사용 불가가 됩니다)

사용 예

// 登録済みDB一覧を確認
{ "tool": "list_databases", "arguments": {} }

// "main" DBのテーブル一覧
{ "tool": "list_tables", "arguments": { "database": "main" } }

// "logs" DBに対してクエリ
{ "tool": "read_query", "arguments": { "sql": "SELECT * FROM events", "database": "logs" } }

// DBが1つしか登録されていない場合は database 省略可
{ "tool": "read_query", "arguments": { "sql": "SELECT * FROM users" } }

MCP 클라이언트에 등록

Claude Desktop

claude_desktop_config.json 에 다음을 추가합니다(패스는 환경에 맞춰 절대 패스로 지정):

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": [
        "/絶対パス/sqlite-mcp-server/index.js",
        "main=/絶対パス/main.db",
        "logs=/絶対パス/logs.db"
      ]
    }
  }
}

설정 후, Claude Desktop을 재기동하면 sqlite 서버의 툴이 이용 가능해집니다.

Claude Code(CLI / VS Code 확장)

VS Code 내의 터미널, 또는 보통 터미널에서 claude 커맨드로 등록합니다.

claude mcp add --transport stdio sqlite -- node /絶対パス/sqlite-mcp-server/index.js main=/絶対パス/main.db logs=/絶対パス/logs.db
  • -- 의 뒤가 그대로 서버 기동 커맨드로서 전달됩니다.

  • 읽기 전용으로 하고 싶은 경우는 --env SQLITE_READONLY=1 를 추가합니다:

    claude mcp add --transport stdio --env SQLITE_READONLY=1 sqlite -- node /絶対パス/index.js main=/絶対パス/main.db
  • 디폴트는 로컬 스코프(자신의 현재 프로젝트만). 전 프로젝트에서 사용하려면 --scope user, 팀에서 .mcp.json으로 공유하려면 --scope project 를 붙입니다.

    claude mcp add --transport stdio --scope user sqlite -- node /絶対パス/index.js main=/絶対パス/main.db

등록 내용의 확인·삭제:

claude mcp list
claude mcp remove sqlite

VS Code에서 Claude Code 패널을 열면(또는 claude 세션을 시작하면) list_databases나 read_query 등의 툴이 이용 가능해집니다.

주의 사항

  • write_query 는 SQL 인젝션 대책으로서 ? 플레이스홀더의 이용을 권장합니다(params 인수).

  • 테이블명은 영숫자와 언더스코어만 허용하도록 밸리데이션하고 있습니다.

  • 에일리어스명은 영숫자·언더스코어·하이픈만 사용할 수 있습니다.

  • 각 DB에의 접속은 최초 액세스 시에 열리고, 이후는 재사용됩니다. 서버 종료 시에 전부 클로즈됩니다.

  • 기동 시에 등록한 에일리어스 이외의 DB에는 일절 액세스할 수 없습니다(임의 패스의 수취 없음).

  • 프로덕션 데이터베이스에 접속하는 경우는 SQLITE_READONLY=1 로 기동하는 것을 검토해 주세요.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes sqlite3 database functionality as MCP tools, enabling SQL query execution, schema management, and CRUD operations.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive SQLite database interaction through MCP, enabling CRUD operations, custom SQL queries, and database exploration.
    462 npm
    127
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage and query SQLite databases through MCP tools, supporting CRUD operations, schema management, and saved views.
    4 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables read-only querying of a local SQLite database via MCP, with tools to list tables, retrieve schema, and execute SELECT/WITH/EXPLAIN queries.
    -