mcpField
G
galaxy-mcp

galaxy-mcp

ローカル
github.com/galaxyproject科学・教育39今日更新

galaxy-mcp について

galaxy-mcp は、バイオインフォマティクス基盤 Galaxy 向けの MCP サーバーで、Python 版と TypeScript 版の二つの実装があります。AI アシスタントから Galaxy インスタンスに接続し、ツールの検索と実行、ワークフロー、ヒストリー、ファイルの管理を行えます。クライアント経由で Galaxy を操作したい研究者や開発者に向いています。

主な機能

  1. 01API キーによる Galaxy インスタンスへの接続
  2. 02ツールカタログの検索とツールの実行
  3. 03IWC ワークフローのインポートと呼び出しの追跡
  4. 04ヒストリー、データセット、ファイルの管理
  5. 05任意機能としての quay.io コンテナイメージの推奨

活用シーン

  1. 01AI アシスタントから Galaxy の解析ツールを実行
  2. 02IWC ワークフローをインポートして実行
  3. 03Galaxy のヒストリーと解析結果を整理

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"galaxyproject-galaxy": {
"command": "uvx",
"args": [
"galaxy-mcp"
],
"env": {
"GALAXY_URL": "<GALAXY_URL>",
"GALAXY_API_KEY": "<GALAXY_API_KEY>"
}
}
}
}
起動コマンドuvx galaxy-mcp
設定が必要な環境変数
GALAXY_URLURL of the Galaxy instance to connect to (e.g., https://usegalaxy.org)
GALAXY_API_KEYシークレットAPI key for authenticating with the Galaxy instance

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypigalaxy-mcp1.3.0

ツール

31

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlanyいいえGalaxy サーバーの URL(任意。指定しない場合は GALAXY_URL 環境変数を使用)
api_keyanyいいえGalaxy API キー(任意。指定しない場合は GALAXY_API_KEY 環境変数を使用)

詳細

Galaxy MCP サーバー

このプロジェクトは、Galaxy バイオインフォマティクスプラットフォームと連携するための Model Context Protocol(MCP)サーバーを提供します。AI アシスタントやその他のクライアントが Galaxy インスタンスに接続し、ツールの検索と実行、ワークフローの管理、Galaxy エコシステムのその他の機能へのアクセスを行えるようにします。

プロジェクトの概要

このリポジトリには、同じ Galaxy 操作セットを実装する独立した 2 つの実装と、 両者の整合性を保つための契約が含まれています。

  • python/ -- Python MCP サーバー。PyPI で galaxy-mcp として公開されています。 BioBlend を通じて Galaxy に接続します。Python README を参照してください。
  • typescript/ -- npm で @galaxyproject/galaxy-ops、galaxy-cli、galaxy-mcp として公開されている pnpm ワークスペースです。フレームワークに依存しないコア (galaxy-ops)に、コマンドラインと stdio MCP サーバーを組み合わせています。 TypeScript README を参照してください。
  • contract/ -- 両者が従うべき契約です。Python のサーフェスマニフェスト、 両方で再生されるゴールデン結果、Galaxy 組み込みサーバーのスナップショット、 既知の差異のレジストリが含まれています。契約 README を参照してください。

両者は整合性を保つことを意図しています。操作の名前と意味は、どちらの実装でも 同じです。ただし、個別のリリースサイクルを持つ別々のコードベースであるため、 各 README には実際に公開されている操作が記載されています。使用する実装の README を お読みください。

ROADMAP.md では、2 つの実装がある理由、Galaxy 組み込み MCP サーバーとの 関係、今後の予定について説明しています。PARITY.md は、差異を記録した 生成済みのドキュメントで、CI によってチェックされています。

主な機能

  • Galaxy への接続:URL と API キーを使って任意の Galaxy インスタンスに接続します
  • OAuth ログイン(任意):ブラウザーでのサインインを提供し、認証情報を一時的な Galaxy API キーと交換します
  • サーバー情報:バージョン、設定、機能など、サーバーの詳細情報を包括的に取得します
  • ツール管理:ツールカタログを検索し、ツールの入力項目を確認して、Galaxy ツールを実行します
  • ユーザー定義ツール:権限を必要としないユーザー定義ツールを作成、一覧表示、実行、無効化します
  • ワークフロー統合:Intergalactic Workflow Commission(IWC)からワークフローを検索してインポートし、呼び出して、その呼び出しを追跡します
  • 履歴操作:Galaxy の履歴、データセット、コレクションを管理し、それらに関連するジョブを確認します
  • ファイル管理:ローカルストレージまたは URL から Galaxy にファイルをアップロードし、結果をダウンロードします
  • ページ:履歴に添付されたノートブックや単独のレポートなど、Galaxy 形式の Markdown ページを読み書きし、改訂履歴も確認します
  • 検証済みコンテナーの推奨(任意):推測ではなく、conda パッケージのセットに対応する実在の quay.io/biocontainers イメージを特定します。任意の追加機能を参照してください
  • モックベースのテストスイート:デフォルトのスイートはすべてモックされた Galaxy の応答に対して実行されるため、サーバーは不要です。ライブ Galaxy に対する別のスイートは任意で有効化でき、認証情報が設定されていない場合はスキップされます

任意の追加機能

container-recommend

recommend_biocontainer ツールを有効にします。このツールは、conda パッケージのセットに対応する、検証済みの quay.io/biocontainers イメージを解決します。ユーザー定義ツールを作成するにはコンテナ名を指定する必要がありますが、架空のイメージタグは、UDT が検証を通過した後、実行時に manifest unknown で失敗する最も一般的な原因です。この機能は galaxy.tool_util.deps.mulled.recommend をラップしています。これは、Galaxy 自身のカスタムツールエージェントが使用するものと同じリゾルバーです(Galaxy 26.1 で追加、galaxyproject/galaxy#22981)。そのため、イメージをでっち上げるのではなく、quay.io に照会して確認します。

galaxy-tool-util は lxml と conda-package-streaming を依存関係として取り込むため、また、このサーバー上のほかのすべてのツールはこれなしで動作するため、必須の依存関係ではなく追加機能として提供しています。このツールは 追加機能をインストールした場合にのみ登録されるため、通常のインストールでは広告されません。

uvx --from 'galaxy-mcp[container-recommend]' galaxy-mcp
# or, for a local checkout:
cd python && uv sync --extra container-recommend

インストール後は、同じリゾルバーをスタンドアロンの CLI としても利用できます: mulled-recommend samtools=1.17。

code-mode

ツールカタログ全体を search、get_schema、run_galaxy_tool の3つのメタツールに集約します。これにより、エージェントはツールを使うと決めたときにだけ、そのスキーマを取得します。この追加機能は、送信されたコードを実行するサンドボックス化インタープリター pydantic-monty を取り込みます。追加機能がなくてもサーバーは起動しますが、コードモードを要求すると、機能がひそかに縮退するのではなくエラーになります。

uvx --from 'galaxy-mcp[code-mode]' galaxy-mcp --discovery-mode code

このトレードオフによって得られるものについては、Python README のツールの検出モードを参照してください。

クイックスタート

galaxy-mcp CLI は、stdio(ローカル)と HTTP の両方のトランスポートに対応しています。クライアントに合ったセットアップを選択してください:

# Stdio transport (default) – great for local development tools
uvx galaxy-mcp

# HTTP transport with OAuth (for remote/browser clients)
# Generate the session secret ONCE (`openssl rand -hex 32`) and store it. Every
# restart and every replica must use the same value, or tokens issued earlier --
# or by another replica -- stop decrypting.
export GALAXY_URL="https://usegalaxy.org.au/"          # Target Galaxy instance
export GALAXY_MCP_PUBLIC_URL="https://mcp.example.com" # Public base URL for OAuth redirects
export GALAXY_MCP_SESSION_SECRET="<your stored secret>"
uvx galaxy-mcp --transport streamable-http --host 0.0.0.0 --port 8000

stdio で実行する場合、環境変数を使って長期間有効な認証情報を指定できます:

export GALAXY_URL="https://usegalaxy.org/"
export GALAXY_API_KEY="your-api-key"

OAuth フローでは、サーバーが必要に応じてユーザーの認証情報を短期間有効な Galaxy API キーと交換するため、通常は GALAXY_API_KEY を設定しません。

OAuth を使用しない HTTP クライアントの場合、connect(url=..., api_key=...) は、オペレーターが許可した URL(GALAXY_URL または GALAXY_MCP_EXTRA_ALLOWED_URLS)に対して、Galaxy の認証情報をグローバルではなく MCP セッションごとに保存します。これによりセッションは分離されますが、これは認証ではありません。HTTP トランスポートはデフォルトで 127.0.0.1 にバインドされ、OAuth なしでループバック以外のアドレスにサービスを提供することを拒否します(ただし、--allow-unauthenticated を指定した場合を除きます)。また、サーバーのファイルシステムにアクセスするツールは無効になります。HTTP 経由でのサービス提供を参照してください。

代替インストール
# Install from PyPI
pip install galaxy-mcp

# Run (stdio by default)
galaxy-mcp

# Or from source using uv
cd python
uv sync
uv run galaxy-mcp --transport streamable-http --port 8000

コンテナの使用方法

イメージは GitHub Container Registry に ghcr.io/galaxyproject/galaxy-mcp として公開されています。:latest(デフォルト)を使用するか、リリースを固定します。例::1.10.0。

公開イメージは、デフォルトで stdio トランスポート(HTTP リスナーなし)を使用します:

docker run --rm -it \
  -e GALAXY_URL="https://usegalaxy.org/" \
  -e GALAXY_API_KEY="your-api-key" \
  ghcr.io/galaxyproject/galaxy-mcp

OAuth と HTTP を使用する場合:

# Generate once and keep it -- do NOT inline `openssl rand` here, or each
# container start mints a key that invalidates every token issued before it.
export GALAXY_MCP_SESSION_SECRET="<your stored secret>"

docker run --rm -it -p 8000:8000 \
  -e GALAXY_URL="https://usegalaxy.org.au/" \
  -e GALAXY_MCP_TRANSPORT="streamable-http" \
  -e GALAXY_MCP_PUBLIC_URL="https://mcp.example.com" \
  -e GALAXY_MCP_SESSION_SECRET \
  ghcr.io/galaxyproject/galaxy-mcp

Claude Desktop に接続する

  • GalaxyMCP が uvx galaxy-mcp で実行されていることを確認します
  • .bashrc(または同等の設定ファイル)に export GALAXY_URL=https://usegalaxy.org を追加します
  • claude desktop をダウンロードしてインストールします
  • Settings -> Developer -> Edit Config に移動します
  • claude_desktop_config.json に以下を追加します
{
  "mcpServers": {
    "galaxy-mcp": {
      "command": "uvx",
      "args": ["galaxy-mcp"],
      "env": {
        "GALAXY_URL": "https://usegalaxy.org",
        "GALAXY_API_KEY": "SECRETS"
      }
    }
  }
}
  • 開発者メニューに galaxy-mcp が実行中として表示されます(Claude desktop の再起動が必要な場合があります)
  • Claude に「galaxy に接続できますか」とプロンプトを送ります
  • オプションの環境設定を指定していない場合は接続情報を求められるので、「Galaxy API キーを使ってください:XXXXXXX」のように入力できます
  • Claude とやり取りして Galaxy インスタンスを操作します。例:「自分のヒストリーの概要を教えて」

開発ガイドライン

具体的な手順とドキュメントについては、Python 実装の READMEを参照してください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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