MCP, MCP server
mangaba_ai
mangaba_ai, an MCP server listed in the PlugVet directory.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 9dfcfe836de3.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST SECRETS_PATH_DOTENV INSTALL_DOCUMENTED_INSTALLER SECRETS_ENV_READ OBFUSCATION_FILE_OVER_READ_CAP
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
mangaba/cli/main.py, line 263
result = subprocess.run([sys.executable, "-m", "pip", "install", package]) - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
examples/document_analysis_example.py, line 296
curl -X POST https://api.exemplo.com/v1/payments \ - NETWORK_UNNAMED_HOST Low
Calls a fixed host that the description does not name.
examples/document_analysis_example.py, line 296
curl -X POST https://api.exemplo.com/v1/payments \ - SECRETS_PATH_DOTENV Low
Mentions a .env file.
check_setup.py, line 82
".env": "Variáveis de ambiente", - INSTALL_DOCUMENTED_INSTALLER Note
Documentation shows an installer that pipes a download into a shell.
docs/MIGRACAO_PIP_UV.md, line 185
curl -LsSf https://astral.sh/uv/install.sh | sh - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
check_setup.py, line 48
fallback = os.getenv("API_KEY") - OBFUSCATION_FILE_OVER_READ_CAP Note
A file was over the read cap and was not fully read.
uv.lock, line 1
version = 1
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
can delete files.
PERMISSION_DELETE_FILES
mangaba/cli/main.py, line 263
result = subprocess.run([sys.executable, "-m", "pip", "install", package])
mangaba/cli/main.py, line 498
shutil.rmtree(path)
mangaba/cli/main.py, line 501
os.remove(path)
Show more
mangaba/tools/code_tools.py, line 159
proc = subprocess.run(
mangaba/tools/code_tools.py, line 229
proc = subprocess.run(
mangaba/tools/mcp_client.py, line 252
self._proc: Optional[subprocess.Popen] = None
mangaba/tools/mcp_client.py, line 272
self._proc = subprocess.Popen(
scripts/quick_setup.py, line 97
subprocess.run(
scripts/quick_setup.py, line 151
subprocess.run(
scripts/quick_setup.py, line 188
subprocess.run(
Install and update
Note
The docs document an installer that pipes a download into a shell.
INSTALL_DOCUMENTED_INSTALLER
docs/MIGRACAO_PIP_UV.md, line 185
curl -LsSf https://astral.sh/uv/install.sh | sh
docs/MIGRACAO_PIP_UV.md, line 195
curl -LsSf https://astral.sh/uv/install.sh | sh
docs/MIGRACAO_PIP_UV.md, line 226
curl -LsSf https://astral.sh/uv/install.sh | sh
Show more
docs/UV_SETUP.md, line 38
curl -LsSf https://astral.sh/uv/install.sh | sh
docs/UV_SETUP.md, line 48
curl -LsSf https://astral.sh/uv/install.sh | sh
docs/UV_SETUP.md, line 300
curl -LsSf https://astral.sh/uv/install.sh | sh
scripts/uv_setup.py, line 117
print(" curl -LsSf https://astral.sh/uv/install.sh | sh")
Network
Concern
can reach a host that is not written as a fixed address. can reach api.exemplo.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
examples/document_analysis_example.py, line 296
curl -X POST https://api.exemplo.com/v1/payments \
mangaba/core/llm/client.py, line 1121
with urllib.request.urlopen(endpoint, timeout=timeout) as resp: # nosec B310
mangaba/interop/a2a.py, line 774
with urllib.request.urlopen(request, timeout=timeout) as resp: # noqa: S310 - caller-supplied URL
Show more
mangaba/rag/loaders.py, line 93
resp = requests.get(self.url, timeout=15)
mangaba/tools/mcp_client.py, line 495
with urllib.request.urlopen(request, timeout=self._timeout) as response: # nosec B310
mangaba/tools/web_search.py, line 54
response = requests.post(
mangaba/tools/web_tools.py, line 227
response = requests.get(
mangaba/tools/web_tools.py, line 362
response = requests.request(
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
check_setup.py, line 48
fallback = os.getenv("API_KEY")
config.py, line 57
"google": os.getenv("GOOGLE_API_KEY") or os.getenv("GEMINI_API_KEY"),
check_setup.py, line 82
".env": "Variáveis de ambiente",
Show more
config.py, line 58
"openai": os.getenv("OPENAI_API_KEY"),
config.py, line 59
"anthropic": os.getenv("ANTHROPIC_API_KEY"),
config.py, line 60
"huggingface": os.getenv("HUGGINGFACE_API_KEY")
config.py, line 61
or os.getenv("HUGGINGFACE_TOKEN")
config.py, line 62
or os.getenv("HF_TOKEN")
config.py, line 63
or os.getenv("HUGGINGFACEHUB_API_TOKEN"),
check_setup.py, line 137
# 4. Verificar .env
check_setup.py, line 140
env_file = project_root / ".env"
check_setup.py, line 144
print_success(f".env encontrado")
check_setup.py, line 165
print_error(".env não encontrado")
check_setup.py, line 219
print(f" 🔐 Configuração .env: {'✅ OK' if env_ok else '⚠️ FALTA CONFIG'}")
check_setup.py, line 240
print(" 2. Adicione ao arquivo .env:")
config.py, line 6
# Carrega automaticamente o .env
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
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 9dfcfe836de3. can delete files. can reach a host that is not written as a fixed address. can reach api.exemplo.com. The description does not name that host. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: 9dfcfe836de3dff6ab38a8adc2e4b382a0cabb3f
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.