simpeople@0.2.0
VERIFIED· not startedPublisher claims: "Enables MCP clients to create and control animated people and activities in Isaac Sim, including arranging tasks, changing goals, canceling tasks, and inspecting simulation outcomes." 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: Verified 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
- It will ask for
- no credential variables read in the code
- Where it talks to
- no vendor host named in the codeAlso agent-plugins.org, amazonaws.com, openxmlformats.org — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Connect it under the guard. Not started: dependency install failed; the server itself was not observed. The code names no credential variable; the guard pins the network to what the honeypot saw and logs every call.
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-11 and scored it 86/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
subprocess.run(['ffmpeg', '-hide_banner', '-loglevel', 'error', '-n', '-ss', str(start_frame / 30),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result={'source_commit':subprocess.run(['git','rev-parse','HEAD'],cwd=ROOT,capture_output=True,text=True,check=True).stdout.strip(),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.trace_process=subprocess.Popen([str(extension/'bin/capture'),'-a','127.0.0.1','-p','8086','-o',str(directory/'profile.tracy'),'-s','10','-f'],stdout=trace_log,stderr=subprocess.STDOUT)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…p-git-repo-check','--disable','apps','-s','read-only','-C',str(workspace),'-c','mcp_servers.simpeople.command="simpeople"','-c','mcp_servers.simpeople.args=["mcp"]','-c','mcp_servers.simpeople.default_tools_approval_mode="approve"','-c','m…Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.…xt(json.dumps(prompts,ensure_ascii=False,indent=2));results=[] (d/'host_manifest.json').write_text(json.dumps({'host':'Codex CLI','version':subprocess.run(['codex','--version'],capture_output=True,text=True,check=True).stdout.strip(),'plug…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.subprocess.run(['ffmpeg','-hide_banner','-loglevel','error','-filter_threads','4','-filter_complex_threads','4','-n',*cmd],check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.try:r=subprocess.run(base+['-o',str(d/f'codex_task_{i+1}_final.txt'),prompt],env=env,stdout=out,stderr=err,timeout=900);code=r.returncodeFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.probe=subprocess.run(['ffprobe','-v','error','-select_streams','v:0','-show_packets',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.paths=subprocess.run(['git','ls-files','-z'],cwd=ROOT,capture_output=True,check=True).stdout.decode().split('\0')Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.if subprocess.run(['git','diff','--quiet','HEAD','--'],cwd=ROOT).returncode:Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(['ffmpeg','-hide_banner','-loglevel','error','-y','-f','concat','-safe','1','-i',str(concat),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.stream=json.loads(subprocess.run(['ffprobe','-v','error','-select_streams','v:0','-show_entries',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.(d/'custom_action_audit.json').write_text(json.dumps(output,ensure_ascii=False,indent=2))Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.subprocess.run(['ffmpeg','-hide_banner','-loglevel','error','-y','-i',str(directory/'raw_video_wallclock.mp4'),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result=subprocess.check_output(['ffprobe','-v','error','-show_entries','format=duration','-of','json',str(path)],text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.(directory/'codex_host_manifest.json').write_text(json.dumps({'version':subprocess.run(['codex','--version'],capture_output=True,text=True,check=True).stdout.strip(),Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.process=subprocess.Popen(command,cwd=ROOT,stdout=native_log,stderr=subprocess.STDOUT)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.probe=subprocess.run(['ffprobe','-v','error','-select_streams','v:0','-show_frames','-show_entries',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…[] (d/'host_manifest.json').write_text(json.dumps({'host':'Codex CLI','version':subprocess.run(['codex','--version'],capture_output=True,text=True,check=True).stdout.strip(),'…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.probe=subprocess.check_output(['ffprobe','-v','error','-select_streams','v:0','-show_frames',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p=subprocess.run(['simpeople','call','people.'+method,'--json',json.dumps(params)],capture_output=True,text=True,timeout=40)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.probe=subprocess.check_output(['ffprobe','-v','error','-select_streams','v:0','-show_frames',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.host=subprocess.Popen(cmd,cwd=ROOT,env=env,stdin=subprocess.DEVNULL,stdout=out,stderr=err)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(['ffmpeg','-hide_banner','-loglevel','error','-filter_threads','4','-n','-i',str(d/'raw_video.mp4'),'-i',str(music),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.(directory/'codex_host_manifest.json').write_text(json.dumps({'version':subprocess.run(['codex','--version'],capture_output=True,text=True,check=True).stdout.strip(),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(['ffprobe', '-v', 'error', '-count_frames', '-select_streams', 'v:0',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.decoded=subprocess.run(['ffmpeg','-v','error','-i',str(raw),'-map','0:v:0','-fps_mode','passthrough','-f','framemd5','-'],capture_output=True,text=True,check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.with log.open('w') as f:r=subprocess.run(cmd,stdout=f,stderr=subprocess.STDOUT)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(['ffmpeg','-hide_banner','-loglevel','error','-y','-i',str(d/'raw_video.mp4'),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.dirty=subprocess.check_output(['git','status','--porcelain'],cwd=ROOT,text=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(['git','archive','--format=tar.gz','--prefix=rosclaw-simpeople/','-o',str(source),commit],cwd=ROOT,check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.process=subprocess.Popen(command,cwd=root,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,start_new_session=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.code=subprocess.call([sys.executable,'-m','simpeople.tools.cli','run','--scenario','industrial_life','--people',str(a.people),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([sys.executable,str(ROOT/'scripts/check_framing.py'),str(directory)],check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.name=aid+'.png';subprocess.run(['ffmpeg','-v','error','-y','-ss',str(frame/30),'-i',str(d/'raw_video.mp4'),'-frames:v','1',str(out/name)],check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.commit=subprocess.check_output(['git','rev-parse','HEAD'],cwd=ROOT,text=True).strip()Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result=subprocess.run(['nvidia-smi','-i',str(self.gpu),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p=subprocess.run(args,capture_output=True,text=True,timeout=15)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.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
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.