Run the published flyte-mcp CLI instead of a local wrapper - #33
Merged
Merged
Conversation
The plugin shipped `plugins/flyte/scripts/flyte_mcp_stdio.py` for two reasons, both now gone: 1. `flyte[mcp]` <= 2.5.11 silently served HTTP even with `--transport stdio` (flyteorg/flyte-sdk#1319). Fixed — stdio speaks JSON-RPC on stdin/stdout. 2. The CLI had no way to pick a tool set. It now has `--tool-groups`, `--tools`, and `--read-only`, and reads FLYTE_MCP_PROJECT / FLYTE_MCP_DOMAIN. So `.mcp.json` launches the SDK's own entry point straight from PyPI: uvx --from "flyte[mcp]>=2.5.18" flyte-mcp --transport stdio \ --tool-groups task,run,action,logs,app,trigger,project,secret,condition,identity `>=2.5.18` is the first release capping `mcp<2`. Without the cap `mcp` 2.0.0 resolves, `mcp.server.fastmcp` is gone, and the server dies at import reporting the misleading "mcp is not installed". The three `search` groups are left out on purpose: the hosted `flyte-docs` server already provides them, and enabling them shallow-clones a ~120 MB corpus into `~/.flyte/mcp` on first launch. Dropping the wrapper drops the `${CLAUDE_PLUGIN_ROOT}` path with it, so `.codex-plugin/plugin.json` can finally carry the MCP servers — openai/codex#22842 no longer applies when there is nothing to expand. The key is `mcpServers`, not the `mcp_servers` the Codex docs show; the manifest struct is camelCase (openai/codex#22105). One behaviour change worth knowing: the CLI registers its control-plane tools unconditionally, where the wrapper hid them until a cluster was reachable. The server still starts with no Flyte config at all, so the plugin is still usable while you deploy your first cluster — the tools now fail at call time rather than being absent, and nothing needs a `/reload-plugins` after you log in. Verified against the published package: 29 tools register, the server starts with an empty HOME and no config anywhere, and `list_runs` returns real data with a cached `flyte` CLI login. Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
samhita-alla
added a commit
to unionai/unionai-docs
that referenced
this pull request
Aug 7, 2026
The compatibility table listed Codex under manual MCP setup. That was true
while the Codex manifest omitted mcpServers, which it did because
${CLAUDE_PLUGIN_ROOT} does not expand in Codex (openai/codex#22842) and the
flyte-cluster entry needed a path.
flyteorg/flyte-agent-plugins#33 replaces that entry with the published
flyte-mcp CLI run through uvx. Nothing needs a path expanded any more, so
.codex-plugin/plugin.json points at the same .mcp.json Claude Code reads and
both servers come with the plugin.
Depends on flyteorg/flyte-agent-plugins#33. Merge that first.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
samhita-alla
added a commit
to unionai/unionai-docs
that referenced
this pull request
Aug 7, 2026
The page deferred to the repository README for the authoritative harness list, per-harness setup, and MCP configuration. A reader had to leave the docs to find out how to install anything outside Claude Code. Everything is now here. Added: install commands for all five harnesses, a compatibility table that also records version pinning (Hermes cannot pin), what each MCP server does with your data, and the manual MCP config for Codex, opencode and Hermes. Corrected three stale facts found while writing it: - The skill count was 14. There are 20. The skill tables below already listed all 20, so the page contradicted itself. The plugin README carries the same stale 14 and should be fixed too. - FLYTE_MCP_LOCAL_SEARCH was documented as the way to search locally. That variable only ever existed in the plugin's wrapper script, which flyteorg/flyte-agent-plugins#33 deletes; the published CLI has no such option. Replaced with what actually works: add the search group and drop the hosted server. - The intro still said Claude Code alone wires up the MCP servers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
cosmicBboy
approved these changes
Aug 7, 2026
cosmicBboy
added a commit
to unionai/unionai-docs
that referenced
this pull request
Aug 7, 2026
…#1394) * docs: fix the MCP stdio commands and scope remote deployment to Union The documented stdio setup could not work. Every example omitted --transport stdio on the server side, and the CLI defaults to streamable-http, so the command started an HTTP listener while the client waited on stdin/stdout. This affected the quickstart, the main page, and the Claude Code and OpenCode examples. The version tip pinned flyte[mcp]==2.4.0. That release does not constrain its mcp dependency, so it now installs mcp 2.0.0, which removed the module the server imports; the server exits reporting "mcp is not installed". The floor is 2.5.18, the first release carrying the cap. Also documents two things that surprise people: enabling the search tools clones roughly 120 MB into ~/.flyte/mcp on first launch, and the server starts without a Flyte config (tools fail at call time instead). Deploying the server as an app requires Union.ai apps, so the remote deployment section, the remote client setups, and the flyte.serve lines in the examples are now marked accordingly. The stdio path, tool groups, individual tools, and allowlists apply to both variants. Verified by building both variants with the pinned Hugo 0.161.1: the open-source pages carry the caveats and hide the remote sections, the Union pages keep them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Samhita Alla <aallasamhita@gmail.com> * docs: correct the MCP tool groups and reduce the variant notes to one The tool-group table and the tools reference were stale. They documented `build` and `script` groups with tools like `build_image` and `run_uv_script_remote`, none of which exist in 2.5.18 — or in 2.5.17 before it. They also omitted six real groups: action, logs, project, secret, condition, identity. Both tables are now generated from TOOL_GROUP_MAPPING, and the `tool_groups=[...]` example no longer names a group that does not exist. This is what made the --tool-groups command look wrong: the command was correct for the shipped SDK, the tables were not. Also folded the Union-only headings inside their variant blocks so the open-source page carries a single note at the top instead of repeating the same caveat at every remote section. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Samhita Alla <aallasamhita@gmail.com> * docs: Codex now gets both MCP servers from the plugin The compatibility table listed Codex under manual MCP setup. That was true while the Codex manifest omitted mcpServers, which it did because ${CLAUDE_PLUGIN_ROOT} does not expand in Codex (openai/codex#22842) and the flyte-cluster entry needed a path. flyteorg/flyte-agent-plugins#33 replaces that entry with the published flyte-mcp CLI run through uvx. Nothing needs a path expanded any more, so .codex-plugin/plugin.json points at the same .mcp.json Claude Code reads and both servers come with the plugin. Depends on flyteorg/flyte-agent-plugins#33. Merge that first. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Samhita Alla <aallasamhita@gmail.com> * docs: make the agent-plugins page self-contained The page deferred to the repository README for the authoritative harness list, per-harness setup, and MCP configuration. A reader had to leave the docs to find out how to install anything outside Claude Code. Everything is now here. Added: install commands for all five harnesses, a compatibility table that also records version pinning (Hermes cannot pin), what each MCP server does with your data, and the manual MCP config for Codex, opencode and Hermes. Corrected three stale facts found while writing it: - The skill count was 14. There are 20. The skill tables below already listed all 20, so the page contradicted itself. The plugin README carries the same stale 14 and should be fixed too. - FLYTE_MCP_LOCAL_SEARCH was documented as the way to search locally. That variable only ever existed in the plugin's wrapper script, which flyteorg/flyte-agent-plugins#33 deletes; the published CLI has no such option. Replaced with what actually works: add the search group and drop the hosted server. - The intro still said Claude Code alone wires up the MCP servers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Samhita Alla <aallasamhita@gmail.com> * docs: tighten the agent-plugins prose Removed 24 em dashes, all decorative bold, and the filler that had crept into the page. The opening was one five-line sentence with three bolded phrases; it is now two sentences that say the same thing. Passive constructions such as "cluster provisioning is handled for you" now name who does the work. Also normalised opencode and pi to lowercase, matching the tables and the upstream project names. No facts changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Samhita Alla <aallasamhita@gmail.com> * update docs Signed-off-by: Samhita Alla <aallasamhita@gmail.com> --------- Signed-off-by: Samhita Alla <aallasamhita@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
flyte-clusternow runs the SDK's published entry point directly:This deletes the 244-line wrapper
plugins/flyte/scripts/flyte_mcp_stdio.py. It existed fortwo reasons that no longer hold:
flyte[mcp]<= 2.5.11 silently served HTTP even with--transport stdio(feat: make MCP transport="stdio" actually serve stdio flyte-sdk#1319). Fixed.
--tool-groups/--tools/ project / domain controls. It has them now.Codex can finally ship both servers with the skills
.codex-plugin/plugin.jsonpreviously omittedmcpServersbecause${CLAUDE_PLUGIN_ROOT}does not expand in Codex (openai/codex#22842). The new command has no path to expand, so the
manifest now points at the same
.mcp.jsonClaude Code reads.Note the key is
mcpServers, not themcp_serversthe Codex docs show — the manifest structis
camelCase(openai/codex#22105).Why the version floor and the tool groups
>=2.5.18is the first release cappingmcp<2. Without ituvxinstallsmcp2.0.0,where
mcp.server.fastmcpno longer exists, and the server dies at import reporting themisleading "mcp is not installed".
flyte-docsserver already providesthose three tools, and enabling them here makes the CLI shallow-clone a ~120 MB corpus into
~/.flyte/mcpon first launch.Verified
working server (tools fail at call time rather than the server failing to start).
flyteCLI login,whoamiandlist_runsreturn real data.scripts/smoke_test_mcp.pypasses end to end against the new command.Also
Both READMEs updated, including hand-written configs for Codex, opencode and Hermes — those
are now portable too, since neither server needs a checkout or a path.