# Reported issues for galaxy-mcp

Pod holds 15 of 15 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [galaxy-mcp](/mcp/galaxy-mcp).

## Most discussed

### Mcp X LibreChat

### **Question/improvement** 

I was wondering if it is possible to connect the Galaxy MCP to LibreChat ?

I feel like it could be possible but I'm not sure how to do so. Basically  I would have add some lines in my .yaml file like this : 

_Exemple with a supabase map using postgres_
```
supabase:
    command: npx
    args:
      - -y
      - "@modelcontextprotocol/server-postgres"
      - postgresql://postgres:postgres@127.0.0.1:54322/postgres
``` 

Is it possible yet ? And if not, I think th

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/2) · 2025-04-04 · closed · external user · 4 comments

### Workflow Invocation feature request

Hi guys,
Thanks for this amazing work.  I would like to ask for support of running bioinformatics workflow from MCP server which is the last piece of AI + Galaxy in my mind. Since bioblend acutually support running workflow, I wonder if there is any plan of this. 
Thanks a lot.

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/15) · 2025-09-02 · closed · external user · 3 comments

### Is workflow creation out of scope, or waiting on something?

I've been looking through the capabilities of the server, along with the gxformat2 spec, and I'm curious about the reasoning behind workflow creation not being included as a tool.

I understand why, from an agent's perspective, it would be hard to one-shot the spec. But looking through the Galaxy and BioBlend APIs, it seems like there's already a way to build up a workflow incrementally, with a dry-run option that validates the result before saving it. If that's correct, a creation tool wouldn't

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/75) · 2026-06-16 · open · external user · 1 comment

### Salvage agent-specific input checks from #37 as non-blocking hints

#37 proposed a tool-contract + client-side validation system. We're closing it in favor of the shipped approach -- `get_tool_input_template` (hand the agent a ready-to-fill payload skeleton) + `run_tool` + enrich-on-failure (#51) -- which keeps **Galaxy as the single source of truth** for input validation instead of reconstructing its input model client-side.

That said, #37 surfaced several genuinely useful, Galaxy-specific agent failure modes worth keeping -- as **advisory hints, never as bloc

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/52) · 2026-06-01 · open · 1 comment

### run_tool returns raw Galaxy HTML error pages on 4xx, which LLM clients cannot parse

When `run_tool` gets a 4xx from Galaxy, it returns the raw HTML error page. The actual message sits inside a `<div class="alert">` under ~400 characters of doctype/stylesheet boilerplate.

Observed while driving Loom with a local open-weight model against usegalaxy.org:

```
Error: Error calling tool 'run_tool': Run tool failed: Unexpected HTTP status code: 400:

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <link href="/static/dist/base.css?v=1784455921000" media="screen" rel="stylesheet"

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/101) · 2026-08-25 · open · outside contributor · 0 comments

### galaxy-ops: workflow style=run resolver swallows auth/server errors

`resolveWorkflowSlots` (in `galaxy-agent-tools/packages/galaxy-ops`, used by `get_workflow_input_template` and `invoke_workflow`'s preflight) wraps the primary `?style=run` download in a broad catch and falls through to the `.ga` export on *any* error. A 401/403/500 (e.g. a bad/expired API key) is masked -- the caller gets a degraded `.ga`-derived template instead of seeing the real failure.

The fix needs care: older Galaxy may legitimately respond non-404 (e.g. 400) to `?style=run`, in which c

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/83) · 2026-06-19 · open · 0 comments

### galaxy-ops: performance follow-ups (post-#77 review)

Performance follow-ups in `galaxy-agent-tools/packages/galaxy-ops`, surfaced in the post-merge review of #77 (none are correctness bugs):

- [ ] `get_workflow_input_template` fetches the `.ga` export twice on the fallback path (once in `resolveWorkflowSlots`, once for `findLegacyWarnings`) and runs independent reads sequentially -- return the parsed `.ga` from the resolver and reuse it; fire the independent reads concurrently.
- [ ] `recommend_iwc_workflows` rebuilds the BM25 corpus (tokenizing 

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/81) · 2026-06-19 · open · 0 comments

### galaxy-ops: test hardening -- derive op lists + two-way parity

Three brittle test/parity spots in `galaxy-agent-tools`:

- The CLI op-count test (`packages/galaxy-cli/test/program.test.ts`) asserts a hardcoded number that's been bumped every wave. Use `allOperations.length` (or `toolNames().length`) so it tracks the registry automatically.
- The parity check (`packages/galaxy-mcp/test/parity.test.ts`) is one-way (`TS ops ⊆ fixture`), so an op *missing* from the registry passes silently -- which is exactly how Phase 1 shipped 14/37 ops green. Add the inverse

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/80) · 2026-06-19 · closed · 0 comments

## Most recent

### galaxy-ops: get_histories name filter runs after server pagination

`get_histories` (`galaxy-agent-tools/packages/galaxy-ops`) passes `limit`/`offset` to the server, then applies the `name` substring filter client-side on the returned page. So `get_histories(limit=10, name="x")` only searches the first 10 histories for matches -- it can return 0 even when matches exist beyond the first page. `pagination.total` is also the post-filter count, which is misleading.

Fix: when `name` is provided, fetch unpaginated and slice locally, or use Galaxy's server-side `q`/`q

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/79) · 2026-06-19 · open · 0 comments

### galaxy-ops: error-classification gaps (invoke_workflow, classifyHttp)

Two spots in `galaxy-agent-tools/packages/galaxy-ops` bypass `classifyHttp`:

- `invoke_workflow` constructs a `GalaxyConnectionError` directly on a failed invocation POST (so it can append the slots hint), so a 401/404 loses its typed kind. Classify first via `classifyHttp(status, error)`, then append the hint to the message.
- `classifyHttp` (`errors.ts`) only pulls `err_msg` from object bodies; a plain-text/HTML error (e.g. an nginx 502 page) collapses to a generic `HTTP <status>`, dropping t

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/78) · 2026-06-19 · open · 0 comments

### invoke_workflow rejects `inputs`/`params` sent as JSON strings (Optional[dict] drops the schema type)

### Summary
Calling `invoke_workflow` with an `inputs` mapping fails with a pydantic `dict_type` error when the MCP client serializes the object argument as a JSON **string**. `run_tool` (same shape of dataset-mapping argument) works fine, which points at a schema-typing difference rather than user error.

### Environment
- galaxy-mcp: v1.8.0 (installed via `uvx`)
- - Python 3.12, macOS
- - - Client: an MCP host whose tool-arg serializer omits object args for parameters that lack an explicit JSO

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/72) · 2026-06-14 · closed · outside contributor · 0 comments

### Authorization codes are replayable within their TTL (single-use not enforced)

The OAuth provider issues stateless, encrypted authorization codes but never marks one as used, so the same code can be exchanged for tokens repeatedly until it expires (5-minute TTL). RFC 6749 §10.5 / §4.1.2 require authorization codes to be single-use.

**Where:** `exchange_authorization_code` in `mcp-server-galaxy-py/src/galaxy_mcp/auth.py` only checks expiry + client binding and then re-issues tokens -- it never invalidates the code. Nothing upstream covers it either: the MCP SDK token handl

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/68) · 2026-06-10 · closed · 0 comments

### Tool-input template steers agents into unsatisfiable conditional branches (empty dynamic selects); add a data-availability lookup

Surfaced from a loom beta report (galaxyproject/loom#198): an agent running RNA STARSolo got `400 ... "Parameter 'genomeDir': requires a value, but no legal values defined"` and couldn't recover reliably (small model -- DeepSeek).

## What's actually happening

That error string is raised by Galaxy core (`lib/galaxy/tools/parameters/basic.py`, the `not legal_values` branch in `SelectToolParameter.from_json`). It's only reached when a value *was* submitted and the resolved legal-value set is empt

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/62) · 2026-06-07 · open · 0 comments

### file upload from remote MCP clients (binary + text)

Hi

when using the Galaxy MCP server in **remote/HTTP mode** (i.e., `"type": "http"` in the MCP config), the `upload_file(path)` tool cannot upload files from the client's local filesystem. It seems the `path` parameter is resolved on the **server side**, so it fails with:

```
File not found: 'C:\Users\...\myfile.bam'
(absolute: '/app/C:\Users\...\myfile.bam')
```

This effectively means that **any AI agent connected to a remote Galaxy MCP server cannot upload local user files** — which is a co

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/43) · 2026-04-15 · open · external user · 0 comments

### When encountering dataset collections in history, agents use get_dataset_details with unexpected outputs

I have histories with datasets collections, when I ask for the agent using the MCP to get information about the contents of that dataset collection, it uses its collection id directly on the get_dataset_details method (at the absence of something else I suspect), as if it was the id of a dataset. What I would like is that the agent can navigate through the members of the dataset collection.

[Read the thread](https://github.com/galaxyproject/galaxy-mcp/issues/19) · 2025-10-23 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/galaxyproject/galaxy-mcp/issues).
