mcp-gs-robot@0.4.1
CAUTION· not startedPublisher claims: "MCP Server for Gausium Robot OpenAPI - Control and monitor Gausium cleaning robots through AI assistants" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Not started: dependency install failed; the server itself was not observed.- Tested
- the dependency install step · every file read, file written and host contacted by what ran
- Not tested
- server startup · the tool list · tool behavior
What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
Code inventory arrives with this version's next honeypot run.- It will ask for
- unknown until the next run
- Where it talks to
- unknown until the next run
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Not enough was observed to say yet. Not started: dependency install failed; the server itself was not observed. This version's code has not been inventoried for credentials and hosts either; both arrive with its next honeypot run (popular servers first). `vet-skills try mcp-gs-robot` runs it now and prints the full answer.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-07 and scored it 74/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Bidirectional text override characters detected; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 1 s · 2 scenarios · 0 deviationsStatic findings
load_env() # GS_SERVER_HOST / GS_SERVER_PORT may come from .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`),o=Ky(a,n,s);o.aPosition=a.getAttribLocation(o,"aPosition"),o.aIndex=a.getAttribLocation(o,"aIndex"),o.aVertType=a.getAttribLocation(o,"aVertType"),o.aTransform=a.getAttribLocation(o,"aTransform"),oFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.*/let Ay=()=>location.protocol+"//"+location.host;function ph(e,t){const{pathname:n,search:o,hash:s}=t,i=e.indexOf("#");if(i>-1){let r=s.includes(e.slice(i))?e.slice(i).length:1,l=s.slice(r);return l[Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.return subprocess.call([*shlex.split(editor), str(path)])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.?)[ \r ]*`,qt="[̀-ͯ]",q4=new RegExp(qt+"+$"),E4="("+q1+"+)|"+(D4+"|")+"([!-\\[\\]-‧-豈-]"+(qt+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(qt+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.<summary><b>HTTP Server + H5 mobile app</b></summary> ```bash uv run gs-robot-server # http://0.0.0.0:8000 (GS_SERVER_HOST / GS_SERVER_PORT) ``` - **H5 app** — Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.<summary><b>MCP Server — Claude Code / Claude Desktop / Cursor</b></summary> From a clone (reads `.env` in the repository): ```bash claude mcp add gs-robot -- uFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.*/let Ay=()=>location.protocol+"//"+location.host;function ph(e,t){const{pathname:n,search:o,hash:s}=t,i=e.indexOf("#");if(i>-1){let r=s.includes(e.slice(i))?e.slice(i).length:1,l=s.slice(r);return l[Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.To add a V3 tool, define the input model and handler in `src/gs_openapi/tools/v3_tools.py` with `@tool(...)`; MCP, REST and the Agent pick it up automatically. Add a test and a row to the tool tables.Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.# Read before any GS_* constant below, so every entry point sees the same .env.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.*/var Yv=function(e,t){this.recycle(e,t)};function ca(){return!1}function ja(){return!0}Yv.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStoppFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.`,this.tokenRegex.lastIndex);return s===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commentinFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.*/var Yv=function(e,t){this.recycle(e,t)};function ca(){return!1}function ja(){return!0}Yv.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStoppFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};function ga(r){return"toText"in r}class ae{constructor(e){this.children=void 0Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.load_env() # ./.env: SAODI_*, SAODI_DATA_DIR, provider keys, GS_* credentialsFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""Load ``.env`` from the current working directory (not the package location, which isFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.
Known vulnerabilities
No advisories in OSV for mcp-gs-robot@0.4.1 as of 7d ago. This is the package itself, not its dependencies.
What would make this Verified
6 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim cfrs2005: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Bidirectional text override characters detected≈ +4 on the totalReplace encoded or assembled strings with plain literals and remove undeclared network calls.
- Hidden zero-width characters detected≈ +4 on the totalKeep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.