Galaxy Plugin
Setting up the galaxy plugin by providing claude code API access to operate galaxy remotely
Galaxy Plugin for Claude Code
Demo
Turn Claude Code into a competent operator of the Galaxy bioinformatics platform. Discover tools, upload data, run analyses, monitor jobs, work with collections, import IWC workflows, and publish results — all from natural language.
What this gives you
galaxy-operatorsubagent — a single specialist that owns all Galaxy work. Galaxy knowledge stays out of your main context until you ask for Galaxy work, so this plugin coexists cleanly with other bioinformatics plugins.- 6 reactive skills covering tool execution, histories/data, collections, workflows, results reporting, and a dedicated debugging skill for the MCP server's silent-failure modes.
- 5 slash commands for the common high-leverage operations:
/galaxy-setup,/galaxy-status,/galaxy-publish,/galaxy-resume,/galaxy-run-protocol. - A bundled MCP server entry wired to the published
galaxy-mcpserver viauvx, launched throughbin/galaxy-mcp-launcher.shso credentials can come from either the shell or a persisted.env.
Setup & Configuration
1. Prerequisites
Ensure you have the following before starting:
uv/uvxinstalled and on PATH.- A Galaxy API key — get one at
User → Preferences → Manage API Keyon usegalaxy.org (or whatever Galaxy instance you use).
Security note: Never paste your
GALAXY_API_KEYinto Claude's chat. The chat is written to the session transcript on disk, which makes the key recoverable by anyone with read access to that file. Use one of the two options below — both keep the key out of Claude's context. This plugin's/galaxy:galaxy-setupwill not prompt you for the key.
2. Configure Credentials
Choose one of the following methods to securely provide your API credentials:
Before launching Claude Code, export both variables in your shell. The launcher inherits the vars and never touches the disk.
export GALAXY_URL="https://usegalaxy.org/" # trailing slash matters
export GALAXY_API_KEY="<your key>"$env:GALAXY_URL = "https://usegalaxy.org/" # trailing slash matters
$env:GALAXY_API_KEY = "<your key>"Using your own editor (not Claude), create a .env file in your project's working directory:
GALAXY_URL=https://usegalaxy.org/
GALAXY_API_KEY=<your key>Then, secure the file in your shell:
chmod 600 .env
echo .env >> .gitignore # if this is a git repoNote: If you prefer a Galaxy-specific filename so the key doesn't share a file with other project secrets, use .galaxy.env instead — it's checked first and overrides .env when both exist.
3. Load the Plugin
Launch Claude Code with the plugin directory specified:
claude --plugin-dir ./galaxy-pluginThen in the session, run:
/galaxy:galaxy-setupThis command verifies that the MCP server can reach Galaxy with the credentials the launcher resolved. It does not read your .env and does not prompt for the key. If nothing is configured, it prints the two options above and stops; configure one of them, run /mcp to reconnect the galaxy server (or restart Claude Code), and re-run /galaxy:galaxy-setup.
Example Session
Describe what you want in plain English; the operator subagent figures out which tools, histories, and skills to load.
You: I uploaded a BAM and a GTF to my "ChIP-seq Apr" history. Find peaks
with MACS3, then give me the top 20 peaks by score.
Claude: [spawns galaxy-operator subagent]
[subagent loads galaxy-tool-execution + galaxy-histories-and-data]
[discovers MACS3 tool id, runs it, polls to ok, ranks peaks]
[returns the top-20 table and the history URL]For multi-step protocols (paper methods sections, vendor handbooks, your own SOPs), paste or path the markdown and run /galaxy-run-protocol — it phases the work, runs each step, checkpoints between phases, and honors any quality gates the protocol specifies.
Issues
File issues against this repository.