@@ -5,6 +5,7 @@ This is the Python implementation of the Galaxy MCP server, providing a Model Co
55## Features
66
77- Complete Galaxy API integration through BioBlend
8+ - Optional OAuth login flow for HTTP deployments
89- Interactive Workflow Composer (IWC) integration
910- FastMCP2 server with remote deployment support
1011- Type-annotated Python codebase
@@ -39,54 +40,65 @@ uv sync --all-extras
3940
4041## Configuration
4142
42- The server requires Galaxy credentials to connect to an instance. You can provide these via environment variables :
43+ At minimum the server needs to know which Galaxy instance to target :
4344
4445``` bash
45- export GALAXY_URL=< galaxy_url>
46- export GALAXY_API_KEY=< galaxy_api_key>
46+ export GALAXY_URL=" https://usegalaxy.org.au/"
4747```
4848
49- Alternatively, create a ` .env ` file in the project root with these variables.
49+ How you authenticate depends on your transport:
5050
51- ## Usage
51+ - ** Stdio / long-lived sessions** – provide an API key:
52+
53+ ``` bash
54+ export GALAXY_API_KEY=" your-api-key"
55+ ```
56+
57+ - ** HTTP / OAuth** – configure the public URL that users reach and a signing secret for session
58+ tokens. The server mints short-lived Galaxy API keys on behalf of each user.
5259
53- ### Quick Start with uvx
60+ ``` bash
61+ export GALAXY_MCP_PUBLIC_URL=" https://mcp.example.com"
62+ export GALAXY_MCP_SESSION_SECRET=" $( openssl rand -hex 32) "
63+ ```
5464
55- The fastest way to run the Galaxy MCP server is using ` uvx ` :
65+ Optionally set ` GALAXY_MCP_CLIENT_REGISTRY ` to control where OAuth client registrations are stored.
66+
67+ You can also steer the transport with ` GALAXY_MCP_TRANSPORT ` (` stdio ` , ` streamable-http ` , or ` sse ` ).
68+ All variables can be placed in a ` .env ` file for convenience.
69+
70+ ## Usage
71+
72+ ### Quick Start with ` uvx `
5673
5774``` bash
58- # Run the server directly without installation
75+ # Local stdio transport (no network listener)
5976uvx galaxy-mcp
6077
61- # Run with FastMCP2 dev tools
62- uvx --from galaxy-mcp fastmcp dev src/galaxy_mcp/server.py
63-
64- # Run as remote server
65- uvx --from galaxy-mcp fastmcp run src/galaxy_mcp/server.py --transport sse --port 8000
78+ # Remote/browser clients with HTTP + OAuth
79+ export GALAXY_URL= " https://usegalaxy.org.au/ "
80+ export GALAXY_MCP_PUBLIC_URL= " https://mcp.example.com "
81+ export GALAXY_MCP_SESSION_SECRET= " $( openssl rand -hex 32 ) "
82+ uvx galaxy-mcp --transport streamable-http --host 0.0.0.0 --port 8000
6683```
6784
68- ### As a standalone MCP server
85+ ### Installed CLI
6986
7087``` bash
71- # Install and run the MCP server
7288pip install galaxy-mcp
73- galaxy-mcp
74-
75- # The server will wait for MCP protocol messages on stdin
89+ galaxy-mcp --transport streamable-http --host 0.0.0.0 --port 8000
7690```
7791
78- ### With MCP clients
92+ If ` --transport ` is omitted the server defaults to stdio and reads/writes MCP messages via stdin/stdout.
7993
80- ``` bash
81- # Use with FastMCP2 CLI tools
82- fastmcp dev src/galaxy_mcp/server.py
83- fastmcp run src/galaxy_mcp/server.py
94+ ### Working from a checkout
8495
85- # Use with other MCP-compatible clients
86- your-mcp-client galaxy-mcp
96+ ``` bash
97+ uv sync
98+ uv run galaxy-mcp --transport streamable-http --host 0.0.0.0 --port 8000
8799```
88100
89- See [ USAGE_EXAMPLES.md] ( USAGE_EXAMPLES.md ) for detailed usage patterns and common examples .
101+ See [ USAGE_EXAMPLES.md] ( USAGE_EXAMPLES.md ) for detailed tool usage patterns.
90102
91103## Available MCP Tools
92104
0 commit comments