local-db-mcp-server

sotanengel/local-db-mcp-server

3.2

If you are the rightful owner of local-db-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Local Database MCP Server is a user-friendly server setup using Docker, Python, and DuckDB, designed for easy deployment even by those with limited programming knowledge.

Local Database MCP Server

DockerとPython、DuckDBを使ったMCPサーバーです。プログラミングに詳しくない方でも手元の環境で簡単に立ち上げることができます。

機能

  • 🐳 Docker環境での簡単セットアップ
  • 📊 CSV/TSVファイルのDuckDB形式での格納
  • 🌐 ブラウザでの分かりやすいUI
  • 🔧 データエンジニアが作成したDuckDBファイルの取り込み
  • 🤖 AIが欲しいデータをMCPサーバーが返却

開発環境のセットアップ

前提条件

  • Python 3.13以上
  • Docker
  • Make(オプション)

インストール

# リポジトリをクローン
git clone <repository-url>
cd local-db-mcp-server

# 開発用依存関係をインストール
make install-dev
# または
pip install -r requirements-dev.txt
pre-commit install

開発コマンド

# ヘルプを表示
make help

# コードをフォーマット
make format

# フォーマットチェック
make check-format

# リンター実行
make lint

# テスト実行
make test

# セキュリティチェック
make security

# pre-commitフックを手動実行
make pre-commit

# CIで実行される全てのチェック
make ci

Pre-commitフック

このプロジェクトでは、git commit時に自動的にコード品質チェックが実行されます。

実行されるチェック

  • コードフォーマット: black, isort
  • リンター: flake8, mypy
  • セキュリティ: bandit, safety
  • テスト: pytest
  • ファイルチェック: 末尾空白、改行、構文エラーなど
  • コミットメッセージ: 標準化された形式の検証

使用方法

# pre-commitフックをインストール
pre-commit install

# 手動で全ファイルをチェック
pre-commit run --all-files

# 特定のフックのみ実行
pre-commit run black
pre-commit run flake8

CI/CD

このプロジェクトはGitHub Actionsを使用してCI/CDパイプラインを構築しています。

実行されるチェック

  1. コード品質チェック

    • Black(フォーマッター)
    • isort(インポートソート)
    • flake8(リンター)
    • mypy(型チェック)
  2. テスト実行

    • pytest(単体テスト、Python 3.13)
  3. Docker環境テスト

    • Dockerイメージのビルド
    • コンテナの起動テスト
  4. 依存関係チェック

    • 古い依存関係の検出
  5. セキュリティ管理

    • Dependabotによる自動セキュリティアラート
    • 依存関係の自動更新

ワークフロー

  • mainブランチへのプッシュ時
  • プルリクエスト作成時

プロジェクト構造

local-db-mcp-server/
├── .github/
│   └── workflows/
│       └── ci.yml          # CI/CDパイプライン
├── app/                    # アプリケーションコード
├── tests/                  # テストコード
├── requirements.in         # 本番用依存関係
├── requirements-dev.in     # 開発用依存関係
├── pyproject.toml         # プロジェクト設定
├── Makefile               # 開発用コマンド
└── README.md              # このファイル

依存関係管理

このプロジェクトではpip-toolsを使用して依存関係を管理しています。

依存関係の更新

# 依存関係を更新
make update-deps
# または
pip-compile requirements.in
pip-compile requirements-dev.in

コントリビューション

  1. このリポジトリをフォーク
  2. フィーチャーブランチを作成 (git checkout -b feature/amazing-feature)
  3. 変更をコミット (git commit -m 'Add some amazing feature')
  4. ブランチにプッシュ (git push origin feature/amazing-feature)
  5. プルリクエストを作成

ライセンス

このプロジェクトはMITライセンスの下で公開されています。