Skip to main content
Glama

streamlit-dashboard-mcpserver

QueryForge — データベースに話しかける。ダッシュボードに変わるのを見守る。

Claude が任意の SQLite データベースにクエリを実行し、ナレッジベースから企業固有のビジネスロジックを取得し、ライブの Streamlit ダッシュボードを構築できるようにする、統合 Model Context Protocol サーバーです。すべて 1 回の会話で完結します。

Project Structure

streamlit-dashboard-mcpserver/
├── .venv/                  # Python virtual environment (managed by uv)
├── data/
│   ├── seed.py             # Generates the sample CRM database
│   └── database.db         # SQLite database (generated by seed.py)
├── knowledge_base/
│   ├── docs/                # Source documents (formulas, business rules, definitions)
│   ├── ingest.py             # Chunks + embeds docs into the vector store
│   └── index/                 # Persisted vector store (generated by ingest.py)
├── .python-version         # Pinned Python version for uv
├── dashboard.py            # Auto-generated by Claude at runtime
├── server.py               # The MCP server
├── uv.lock                 # Dependency lock file
└── README.md

Related MCP server: TheMCP-server

What it does

Tool

Description

list_tables

データベース内のすべてのテーブルを一覧表示します

describe_table

テーブルの列、型、制約を表示します

sample_table

任意のテーブルの最初の N 行を返します

query_database

読み取り専用の SELECT クエリを実行します

query_knowledge_base

エンタープライズドキュメント(カスタム計算式、ビジネスルール、メトリクス定義)から関連チャンクを取得し、Claude が正しいクエリとダッシュボードロジックを書くのを支援します

create_dashboard

Streamlit アプリを書き、依存関係を自動インストールし、起動します

stop_dashboard

実行中の Streamlit プロセスを停止します

get_dashboard_status

ダッシュボードが実行中かどうか、どのポートで実行されているかを確認します

read_dashboard

現在の dashboard.py ソースを読み取ります

読み取り専用が強制されます。 INSERT、UPDATE、DELETE、DROP およびその他のすべての書き込み操作はサーバーレベルでブロックされます。ナレッジベースは取得専用です。Claude はこのサーバーを介して書き戻すことはできません。

query_knowledge_base は、ダッシュボードを単なる推測ではなく 正しい ものにするためのものです。組織が「純収益」や「アクティブ顧客」などをどのように定義しているかを推測する代わりに、Claude は SQL やダッシュボードコードを書く前に、チャンク化されたエンタープライズドキュメントから実際に文書化された計算式を取得します。

screenshot1-dashboard screenshot2-chat

Prerequisites

  • Python 3.11+(.python-version で固定)

  • uv — このプロジェクトですでに使用されています(uv.lock を参照)

  • Claude Desktop

  • ナレッジベース用のソースドキュメントのフォルダ(PDF、Markdown、またはプレーンテキスト — 例:社内の計算式シート、メトリクス用語集、SOP など)

Installation

1. Claude Desktop をインストール

お使いの OS 用の Claude Desktop をダウンロードしてインストールします: Windows / macOS: https://claude.ai/download インストール後、Anthropic アカウントでサインインします。

2. リポジトリをクローン

HTTPS:

git clone https://github.com/your-username/streamlit-dashboard-mcpserver.git
cd streamlit-dashboard-mcpserver

SSH:

git clone git@github.com:your-username/streamlit-dashboard-mcpserver.git
cd streamlit-dashboard-mcpserver

GitHub CLI:

gh repo clone your-username/streamlit-dashboard-mcpserver
cd streamlit-dashboard-mcpserver

3. uv で環境をセットアップ

このプロジェクトは環境管理に uv を使用しています。.python-versionuv.lock ファイルはすでにコミットされているため、セットアップは 1 つのコマンドで完了します。

uv をまだインストールしていない場合はインストールします:

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

ロックファイルから仮想環境を作成し、すべての依存関係をインストールします:

uv sync

環境をアクティベートします:

# Windows PowerShell
.venv\Scripts\Activate.ps1
# Windows CMD
.venv\Scripts\activate.bat

アクティブになると、プロンプトにプロジェクト名が表示されます:

(streamlit-dashboard-mcpserver) PS C:\Users\benij\ds_project\streamlit-dashboard-mcpserver>

主要なパッケージがインストールされていることを確認します:

pip list | findstr "mcp streamlit"

不足しているものがある場合:

uv pip install mcp streamlit pandas plotly

4. データベースを生成

data/ 内の seed.py スクリプトは、完全なスノーフレークスキーマにわたる 10,000 件以上のレコードを持つ現実的な CRM データベースを生成します。

cd data
python seed.py
cd ..

これにより data/database.db が作成されます。これは MCP サーバーが読み取るものです。

5. ナレッジベースインデックスを構築

エンタープライズドキュメント(計算式シート、メトリクス定義、ビジネスルール — PDF、Markdown、または .txt)を knowledge_base/docs/ に配置し、次を実行します:

python knowledge_base/ingest.py

これによりドキュメントがチャンク化され埋め込まれ、結果のベクトルストアが knowledge_base/index/ に書き込まれます。これは実行時に query_knowledge_base が読み取るものです。ソースドキュメントが変更された場合は、このスクリプトを再実行してください。

6. Claude Desktop を設定

Claude Desktop は JSON 設定ファイルから MCP サーバー定義を読み取ります。

設定ファイルを開きます:

notepad $env:APPDATA\Claude\claude_desktop_config.json

ファイルがまだ存在しない場合、Notepad が作成を尋ねます — [はい] をクリックします。

次の設定を貼り付け、benij を Windows ユーザー名が異なる場合は置き換えます:

{
  "mcpServers": {
    "sqlite-dashboard": {
      "command": "C:\\Users\\benij\\ds_project\\streamlit-dashboard-mcpserver\\.venv\\Scripts\\python.exe",
      "args": [
        "C:\\Users\\benij\\ds_project\\streamlit-dashboard-mcpserver\\server.py"
      ],
      "env": {
        "DB_PATH": "C:\\Users\\benij\\ds_project\\streamlit-dashboard-mcpserver\\data\\database.db",
        "DASHBOARD_PORT": "8501",
        "KB_INDEX_PATH": "C:\\Users\\benij\\ds_project\\streamlit-dashboard-mcpserver\\knowledge_base\\index"
      }
    }
  }
}

正確な Python パスを確認するには、venv をアクティブにして次を実行します:

where.exe python

期待される出力:

C:\Users\benij\ds_project\streamlit-dashboard-mcpserver\.venv\Scripts\python.exe

その正確な文字列を設定の command 値として使用します。

常に絶対パスを使用してください。 Claude Desktop は MCP サーバーを予測できない作業ディレクトリからサブプロセスとして起動するため、相対パスは正しく解決されません。

7. Claude Desktop を再起動

設定を保存したら、Claude Desktop を完全に終了します — システムトレイアイコンを右クリック → [終了] を選択します。その後、再度開きます。

再起動したら、チャット入力の左下にある 🔨 ハンマーアイコンをクリックします。9 つのツール がすべて一覧表示され、サーバーが接続されていることを確認できます。

Usage

接続したら、自然に Claude に話しかけます:

"What tables are in my database?"

"How do we define 'net revenue' internally?"

"Show me the top 10 customers by total revenue, using our
 company's official revenue formula"

"Build a dashboard with monthly sales trends, a bar chart
 by product category, and a salesperson leaderboard"

Claude はスキーマを探索し、必要に応じてナレッジベースから関連するビジネスロジックを取得し、クエリを実行し、Streamlit コードを書き、不足している依存関係をインストールし、ブラウザで開く URL を返します — デフォルトでは http://localhost:8501 です。

Environment Variables

Variable

Default

Description

DB_PATH

./database.db

SQLite データベースへの絶対パス

DASHBOARD_PORT

8501

Streamlit がリッスンするポート

KB_INDEX_PATH

./knowledge_base/index

ingest.py によって構築されたベクトルストアへの絶対パス

Troubleshooting

🔨 Claude Desktop にハンマーアイコンが表示されない 設定 JSON が無効である可能性が高いです — 末尾のカンマや括弧の不一致がよくある間違いです。jsonlint.com に貼り付けて検証してください。設定を変更した後は、必ず Claude Desktop を完全に終了して再度開いてください。

「データベースが見つかりません」エラー DB_PATH が絶対パスであり、database.dbdata/ フォルダ内に存在することを確認してください。まだ生成されていない場合は seed.py を実行してください。

query_knowledge_base が結果を返さない / インデックスが空 knowledge_base/docs/ に実際にドキュメントがあることを確認し、python knowledge_base/ingest.py を再実行してください。設定の KB_INDEX_PATHknowledge_base/index/ を指していることを確認してください。

Streamlit ページが読み込まれない Claude に「ダッシュボードは実行中ですか?」と尋ねて get_dashboard_status を呼び出してください。実行中でない場合は、Claude に create_dashboard を再度実行するよう依頼してください。また、ポート 8501 が他のプロセスによって使用されていないか確認してください。

uv sync が失敗する インストールされている Python のバージョンが .python-version と一致していることを確認してください。python --version で確認し、必要に応じて python.org から正しいバージョンをインストールしてください。

.venv をアクティベートするときの PowerShell ExecutionPolicy エラー

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

その後、再度アクティベートします。

About

自然言語を SQL クエリと、ビジネスロジックを認識したライブの Streamlit ダッシュボードに変換する MCP サーバーです。Claude と、エンタープライズ固有のルールと計算式の検索拡張ナレッジベースを利用しています。

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    One config, one CLI that turns your databases (Postgres, MySQL, SQLite, MongoDB) into MCP servers for Claude, GPT, Cursor, and any MCP-compatible agent.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with SQLite databases, filesystem, AWS IAM, and Gmail through a master MCP server with a Streamlit UI optimized for Claude.
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for Claude that connects to MySQL, MariaDB, and SQLite databases. Query your databases using natural language.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.
    16
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mikebenisberchmans/Queryforge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server