プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Spark SQL

作者:aidancorrellバージョン 0.1.2i★ –iパソコンで動く
レジストリ名io.github.aidancorrell/spark-sql-mcp-server

インストール

概要

作者による説明(英語の原文)

Query Spark SQL clusters via Thrift/HiveServer2. Works with Spark, EMR, Hive, Impala.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: データベース・データセット
  • 入力が必要なもの:SPARK_HOST, SPARK_PASSWORD

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: SPARK_HOST, SPARK_PORT, SPARK_DATABASE, SPARK_AUTH, SPARK_USERNAME, SPARK_PASSWORD, SPARK_KERBEROS_SERVICE_NAME

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "spark-sql": {
      "command": "uvx",
      "args": [
        "spark-sql-mcp-server"
      ],
      "env": {
        "SPARK_HOST": "your-value",
        "SPARK_PORT": "your-value",
        "SPARK_DATABASE": "your-value",
        "SPARK_AUTH": "your-value",
        "SPARK_USERNAME": "your-value",
        "SPARK_PASSWORD": "your-value",
        "SPARK_KERBEROS_SERVICE_NAME": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add spark-sql --env SPARK_HOST=your-value --env SPARK_PORT=your-value --env SPARK_DATABASE=your-value --env SPARK_AUTH=your-value --env SPARK_USERNAME=your-value --env SPARK_PASSWORD=your-value --env SPARK_KERBEROS_SERVICE_NAME=your-value -- uvx spark-sql-mcp-server

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "spark-sql": {
      "command": "uvx",
      "args": [
        "spark-sql-mcp-server"
      ],
      "env": {
        "SPARK_HOST": "your-value",
        "SPARK_PORT": "your-value",
        "SPARK_DATABASE": "your-value",
        "SPARK_AUTH": "your-value",
        "SPARK_USERNAME": "your-value",
        "SPARK_PASSWORD": "your-value",
        "SPARK_KERBEROS_SERVICE_NAME": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "spark-sql": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "spark-sql-mcp-server"
      ],
      "env": {
        "SPARK_HOST": "your-value",
        "SPARK_PORT": "your-value",
        "SPARK_DATABASE": "your-value",
        "SPARK_AUTH": "your-value",
        "SPARK_USERNAME": "your-value",
        "SPARK_PASSWORD": "your-value",
        "SPARK_KERBEROS_SERVICE_NAME": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • SPARK_HOST 必須 env
    Hostname of the Spark Thrift Server
  • SPARK_PORT env
    Port of the Spark Thrift Server (default: 10000)
  • SPARK_DATABASE env
    Default database to use
  • SPARK_AUTH env
    Authentication method: NONE, LDAP, KERBEROS, CUSTOM, or NOSASL
  • SPARK_USERNAME env
    Username for LDAP authentication
  • SPARK_PASSWORD 秘密 env
    Password for LDAP authentication
  • SPARK_KERBEROS_SERVICE_NAME env
    Kerberos service name (default: hive)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント aidancorrell で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

データベース・データセットのほかのサーバーとの比較i

  • このカテゴリのほかの953件のうち0%よりスターが多い
  • このカテゴリのほかの953件のうち4%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの953件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Spark SQLは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:SPARK_HOST, SPARK_PASSWORD

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.2)がレジストリに届いたのは9 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Supabase

作者:supabase

MCP server for interacting with the Supabase platform

パソコンでもクラウドでも★ 2,993Apache-2.0昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Spark SQL MCP Server

An MCP server that enables AI assistants to query Spark SQL clusters via the Thrift/HiveServer2 protocol.

Works with any HiveServer2-compatible system: Apache Spark, AWS EMR, Hive, Impala, Presto.

Features

  • Query Spark SQL — Execute read-only SQL queries against your Spark cluster
  • Schema Discovery — List databases, tables, and describe table structures
  • Multiple Auth Methods — NONE, LDAP, NOSASL, CUSTOM, and Kerberos authentication
  • EMR Compatible — Works with AWS EMR clusters out of the box
  • Read-Only Enforcement — Only SELECT, SHOW, DESCRIBE, EXPLAIN, and WITH statements are allowed
  • Safety Defaults — Automatic LIMIT clause on unbounded queries, sanitized error messages

Installation

pip install spark-sql-mcp-server

Or run directly with uvx:

uvx spark-sql-mcp-server

Quick Start

1. Set Environment Variables
export SPARK_HOST="your-emr-master-node.amazonaws.com"

export SPARK_PORT="10000" # default export SPARK_DATABASE="default" # default export SPARK_AUTH="NONE" # NONE | LDAP | KERBEROS | CUSTOM | NOSASL

2. Add to Claude Code

Global (all projects) — add to ~/.claude.json under your project's mcpServers:

{

"mcpServers": { "spark-sql": { "command": "uvx", "args": ["spark-sql-mcp-server"], "env": { "SPARK_HOST": "your-emr-master-node.amazonaws.com", "SPARK_PORT": "10000", "SPARK_AUTH": "NONE" } } } }

Project-level — add to .claude/mcp.json in your repo:

{

"mcpServers": { "spark-sql": { "command": "uvx", "args": ["spark-sql-mcp-server"], "env": { "SPARK_HOST": "your-emr-master-node.amazonaws.com", "SPARK_PORT": "10000", "SPARK_AUTH": "NONE" } } } }

3. Add to Claude Desktop

Add to your claude_desktop_config.json:

{

"mcpServers": { "spark-sql": { "command": "uvx", "args": ["spark-sql-mcp-server"], "env": { "SPARK_HOST": "your-emr-master-node.amazonaws.com", "SPARK_PORT": "10000" } } } }

4. Query

Ask Claude things like:

  • "What databases are available in our Spark cluster?"
  • "Show me the schema of the sales.transactions table"
  • "Query the top 10 customers by revenue from the analytics database"

Available Tools

ToolDescription
list_databasesList all available databases
list_tablesList tables in a database
describe_tableGet table schema (columns, types)
execute_queryRun read-only SQL queries with formatted results

Authentication

No Auth (default)
export SPARK_AUTH="NONE"
LDAP
export SPARK_AUTH="LDAP"

export SPARK_USERNAME="your-username" export SPARK_PASSWORD="your-password"

Kerberos
export SPARK_AUTH="KERBEROS"

export SPARK_KERBEROS_SERVICE_NAME="hive" # default

Ensure you have a valid Kerberos ticket (kinit)

AWS EMR Setup

  1. Security Group — Allow inbound traffic on port 10000 from your IP
  2. SSH Tunnel (recommended):
   ssh -i your-key.pem -L 10000:localhost:10000 hadoop@your-emr-master
  1. Set SPARK_HOST=localhost

Development

git clone https://github.com/aidancorrell/spark-sql-mcp-server.git

cd spark-sql-mcp-server pip install -e ".[dev]" pytest ruff check .

Local Testing with Docker

A Docker Compose setup provides a local Spark Thrift Server with sample data for integration testing.

# Start the Spark Thrift Server

cd docker && docker compose up -d

Wait for it to be ready (takes ~30s on first start)

docker logs -f spark-thrift-server # look for "Sample data loaded."

Run integration tests

pytest -m integration -v

Tear down

cd docker && docker compose down -v

The local server comes with sample tables: default.employees, default.orders, and test_db.metrics.

Unit tests run by default with pytest (integration tests are skipped unless -m integration is specified).

Using the local server with Claude Code

With the Docker Spark server running, add it to your MCP config to test the server interactively.

Global — add to ~/.claude.json under your project's mcpServers:

{

"spark-sql": { "command": "uvx", "args": ["spark-sql-mcp-server"], "env": { "SPARK_HOST": "localhost", "SPARK_PORT": "10000", "SPARK_AUTH": "NONE" } } }

Project-level — add to .claude/mcp.json:

{

"mcpServers": { "spark-sql": { "command": "uvx", "args": ["spark-sql-mcp-server"], "env": { "SPARK_HOST": "localhost", "SPARK_PORT": "10000", "SPARK_AUTH": "NONE" } } } }

Then start a new Claude Code session and ask it to query the sample data.

Security

Read-Only Enforcement

The execute_query tool only allows read-only SQL statements. Queries must start with one of: SELECT, SHOW, DESCRIBE, DESC, EXPLAIN, or WITH. All other statement types (DROP, INSERT, DELETE, CREATE, ALTER, SET, ADD JAR, etc.) are rejected before reaching the Spark cluster.

Error Sanitization

Database errors are sanitized before being returned to the MCP client. Internal details such as server hostnames, file paths, and stack traces are not exposed. Connection failures report only the target host/port and error type.

Credential Handling
  • Passwords are never included in log output or error messages
  • The SparkConfig object masks passwords in its string representation
  • SPARK_PASSWORD is marked as a secret in the MCP registry schema
Known Limitations
  • No TLS/SSL support — Thrift connections are unencrypted. For production use with LDAP auth, use an SSH tunnel to protect credentials in transit.
  • No query timeout — Long-running queries are not automatically cancelled. Rely on Spark cluster-level timeout configuration.
  • No per-user access control — All queries execute with the privileges of the configured Spark user. Use HiveServer2 authorization (Ranger, Sentry) to restrict access at the database level.
  • Auth mode defaults to NONE — Appropriate for local development but not for production. Set SPARK_AUTH to LDAP or KERBEROS for authenticated environments.

License

MIT

PopNxに聞く