MCP, MCP server
roundtable
Stop copy-pasting between AI models.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
PERMISSION_SHELL_UNDECLARED
Why this grade
- PERMISSION_SHELL_UNDECLARED Medium
Runs shell commands that the manifest or description does not mention.
claudable_helper/services/filesystem.py, line 13
subprocess.run(["git", "init"], cwd=repo_path, check=True)
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
requests shell access. No manifest field names shell or command execution. can delete files.
PERMISSION_SHELL_UNDECLARED PERMISSION_DELETE_FILES
claudable_helper/services/filesystem.py, line 13
subprocess.run(["git", "init"], cwd=repo_path, check=True)
claudable_helper/services/filesystem.py, line 14
subprocess.run(["git", "add", "-A"], cwd=repo_path, check=True)
claudable_helper/services/filesystem.py, line 15
subprocess.run(["git", "commit", "-m", "Initial commit"], cwd=repo_path, check=True)
Show more
claudable_helper/services/filesystem.py, line 52
result = subprocess.run(
claudable_helper/services/git_ops.py, line 7
res = subprocess.run(cmd, cwd=cwd, check=True, capture_output=True, text=True)
claudable_helper/services/local_runtime.py, line 15
_running_processes: Dict[str, subprocess.Popen] = {}
claudable_helper/services/local_runtime.py, line 18
def _monitor_preview_errors(project_id: str, process: subprocess.Popen):
claudable_helper/services/local_runtime.py, line 336
shutil.rmtree(os.path.join(repo_path, "node_modules"), ignore_errors=True)
Install and update
Note
The docs document an installer that pipes a download into a shell.
INSTALL_DOCUMENTED_INSTALLER
claudable_helper/cli/adapters/cursor_agent.py, line 44
"1. Install Cursor: curl https://cursor.com/install -fsS | bash\n"
claudable_helper/cli/adapters/cursor_agent.py, line 57
"1. Reinstall: curl https://cursor.com/install -fsS | bash\n"
claudable_helper/cli/adapters/cursor_agent.py, line 74
"1. Install Cursor: curl https://cursor.com/install -fsS | bash\n"
Show more
claudable_helper/cli/adapters/cursor_agent.py, line 486
"❌ Cursor Agent CLI not found. Please install with: curl https://cursor.com/install -fsS | bash"
Network
Pass
No network call found.
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
claudable_helper/cli/adapters/cursor_agent.py, line 255
if os.getenv("CURSOR_API_KEY"):
claudable_helper/cli/adapters/cursor_agent.py, line 256
cmd.extend(["--api-key", os.getenv("CURSOR_API_KEY")])
claudable_helper/services/claude_act.py, line 158
if not os.getenv("ANTHROPIC_API_KEY"):
Show more
claudable_helper/services/env_manager.py, line 4
Handles synchronization between database and .env files in Next.js projects.
claudable_helper/services/env_manager.py, line 18
"""Get the path to project's .env file"""
claudable_helper/services/env_manager.py, line 19
return Path(settings.projects_root) / project_id / "repo" / ".env"
claudable_helper/services/env_manager.py, line 23
"""Parse .env file and return key-value pairs"""
claudable_helper/services/env_manager.py, line 52
print(f"Error parsing .env file {env_path}: {e}")
claudable_helper/services/env_manager.py, line 58
"""Write environment variables to .env file"""
claudable_helper/services/env_manager.py, line 63
# Write .env file
claudable_helper/services/env_manager.py, line 79
ui.success(f"Updated .env file: {env_path}", "EnvManager")
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
uv.lock, line 1
version = 1
Licence
Note
no licence file found.
LICENCE_MISSING
No file path was stored.
no licence file found.
Maintainer activity
Note
the latest commit is more than 365 days old.
MAINTAINER_STALE
No file path was stored.
2025-10-06T00:08:26-04:00
Note
Hygiene check of commit 0148c08f84f7. requests shell access. No manifest field names shell or command execution. can delete files. The docs document an installer that pipes a download into a shell. reads a credential or environment file. a file was over the read cap and was not fully read. no licence file found. the latest commit is more than 365 days old.
Date and source
Date checked:
github.com
Commit graded: 0148c08f84f7aa8d3ae5d0cc1a8736448e841bed
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.