This repository was archived by the owner on Oct 11, 2026. It is now read-only.
Repository navigation
docs: correct the result contract and document the _for_cli Blender lookup - #1
Merged
teknium1 merged 1 commit intoOct 5, 2026
Conversation
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Two parts of the skill don't match what the pinned server (v1.0.3,
2cea8d5) actually does.Bug
result, and the server's own instructions (prompts.yml) suggest returning "dicts, lists". The add-on only accepts a dict:result = [1.5, 2.5, 3.5]orresult = 4comes back asThe `result` variable must be a dict, not list. That error arrives after the code has already run, so an agent that retries can apply the same edit twice.*_for_clitools (execute_blender_code_for_cliand the fiveget_blendfile_summary_*_for_clitools) fail when Blender comes from the blender.org macOS app or Windows installer, since neither puts ablendercommand onPATH:Blender executable not found at 'blender'. Set the BLENDER_PATH environment variable to the correct path.SettingBLENDER_PATHin a shell or.env, as that message says, doesn't reach the server under Hermes, and the docs don't mention any of this.Cause
mcp_to_blender_server.pyin the add-on runs the code, then rejects anyresultthat isn't a dict.execute_blender_codesendsstrict_json=False, so Blender objects inside the dict are converted withreprrather than failing.blender --backgroundfromBLENDER_PATH, else fromPATH(blmcp/tools_helpers/blender_cli.py). Hermes starts MCP servers with a filtered environment (_build_safe_envintools/mcp_tool_config.py) that keepsPATHbut drops shell and.envvariables such asBLENDER_PATH, and portablemcp.jsonvalues aren't${VAR}-interpolated, so this package can't forward it either.Fix
Docs only;
mcp.jsonandplugin.jsonare unchanged. SKILL.md states the dict contract with an example, says a rejectedresulthas still run, and tells the agent that_for_clitools take an absolute path and needblenderon the server'sPATH, so it points the user to setup instead of retrying. setup.md gets a Failures entry with the cause and the fix, and the README lists the optional prerequisite.Verification
_execute_codefrom2cea8d5outside Blender, with onlybpy.opsstubbed: list and int results return the dict error,{"location": [1.5, 2.5, 3.5]}returns ok,{"obj": object()}returns ok with areprstring, and a snippet that sets a global and then assigns a list returns the error with the global still set.main(d1929b5, samemcp.jsonas this branch) into a temporaryHERMES_HOMEwith current Hermesmain(71a2fe3) using the README commands, then started the server the way_run_stdiodoes and calledget_blendfile_summary_path_info_for_cli:BLENDER_PATHexported in the shell, pointing at an existing executable: missing from the server's environment, and the tool fails withBlender executable not found at 'blender'.BLENDER_PATHinHERMES_HOME/.env: same result.blenderexecutable onPATH: the server runs it with--background <file>.blend_fileall end in_for_cli.hermes plugins validate --jsonon this branch: ok, no warnings. The skill still loads, and the translated MCP launch config is identical tomain._for_clitool against a real Blender.