mcpField
M
Malloy MCP Server

Malloy MCP Server

ローカル
github.com/namabileデータ・分析282 週間前に更新

Malloy MCP Server について

Malloy MCP Serverは、データチームがMalloy Publisherを介してクエリを実行し、プロジェクト、パッケージ、モデルのメタデータを確認できるサーバーです。

主な機能

  1. 01Malloyクエリの実行
  2. 02プロジェクト、パッケージ、モデルのメタデータ取得
  3. 03詳細なクエリエラー情報
  4. 04型安全な実装

活用シーン

  1. 01MCPクライアントからMalloyクエリを実行
  2. 02Malloyモデルやパッケージのメタデータを確認

MCP 対応

MCPクライアントにクエリ実行ツールとMalloyメタデータのリソースを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Malloy MCP Server

Malloy クエリの実行と Malloy リソースの管理を行う MCP サーバーの実装です。

機能

  • MCP 経由で Malloy クエリを実行
  • Malloy プロジェクト、パッケージ、モデルのメタデータにアクセス
  • 詳細なコンテキストを含む堅牢なエラー処理
  • 包括的なテストカバレッジ
  • 型安全な実装

インストール

# Install using uv (recommended)
uv pip install malloy-mcp-server

# Or using pip
pip install malloy-mcp-server

使用方法

サーバーの起動
from malloy_mcp_server import mcp

# Run the server
if __name__ == "__main__":
    mcp.serve()
設定

サーバーは環境変数を使用して設定できます。

変数説明デフォルト
MALLOY_PUBLISHER_ROOT_URLMalloy Publisher API の URLhttp://localhost:4000

例:

# Set the publisher URL
export MALLOY_PUBLISHER_ROOT_URL="http://malloy-publisher:4000"

# Run with custom configuration
python -m malloy_mcp_server
クエリの実行

サーバーは Malloy クエリを実行するための MCP ツールを提供します。

from malloy_mcp_server import ExecuteMalloyQueryTool

# Example query execution
result = await ExecuteMalloyQueryTool(
    query="select * from users",
    model_path="my_package/users"
)
リソースへのアクセス

サーバーは次のリソースエンドポイントを提供します。

  • malloy://project/home/metadata - プロジェクトのメタデータ
  • malloy://project/home/package/{package_name} - パッケージのメタデータ
  • malloy://project/home/model/{model_path} - モデルのメタデータ

開発

セットアップ
  1. リポジトリをクローンします。
git clone https://github.com/namabile/malloy-mcp-server.git
cd malloy-mcp-server
  1. 依存関係をインストールします。
uv pip install -e ".[dev]"
テストの実行
# Run all tests
pytest

# Run with coverage
pytest --cov=malloy_mcp_server
コード品質

このプロジェクトでは次のツールを使用します。

  • コードのフォーマットに black
  • 型チェックに mypy
  • リンティングに ruff

品質チェックを実行します。

black .
mypy .
ruff check .

エラー処理

サーバーは詳細なコンテキストを含むエラー処理を提供します。

from malloy_mcp_server.errors import QueryExecutionError

try:
    result = await ExecuteMalloyQueryTool(...)
except QueryExecutionError as e:
    print(f"Error: {e.message}")
    print("Context:", e.context)

アーキテクチャ

サーバーは次の技術を基盤としています。

  • MCP サーバーの実装には FastMCP
  • Malloy とのやり取りには Malloy Publisher Client
  • データ検証には Pydantic

主なコンポーネント:

  • server.py - サーバーのコア実装
  • tools/query_executor.py - クエリ実行ツール
  • errors.py - エラー処理ユーティリティ

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を加えます
  4. 新しい機能のテストを追加します
  5. プルリクエストを送信します

ライセンス

MIT License - 詳細は LICENSE ファイルを参照してください

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。