Skills/PyPI/global-education-mcp

global-education-mcp@0.4.0

CAUTION

Publisher claims: "MCP Server für internationale Bildungsdaten – UNESCO UIS (4000+ Indikatoren) und OECD Education at a Glance (SDMX API)" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry PyPI (MCP server)Publisher malkreide · joined 7 days agoInstalls 216Last detonated 3d ago

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios) on 2026-11-01 and scored it 56/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: Prompt injection attempt; Tool poisoning; Prompt injection attempt. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.2sprocessdependency install exit 1
0.2sprocessexec /usr/bin/timeout
0.2sprocessexec .venv/bin/global-education-mcp
0.2sprocessexited 127: timeout: failed to run command '.venv/bin/global-education-mcp': No such file or directory
0.2sclaimedno tools/list reply (exit 127)
0.2sprocessscript backend runs setup only

Static findings

MEDIUM
File type combined with upload action.github/workflows/live-tests.yml:54 · File type combined with upload action — agent may exfiltrate local data filesFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
CRITICAL
Prompt injection attemptCONTRIBUTING.de.md:201 · Prompt injection attempt — 'ignore previous instructions'Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
MEDIUM
MCP server using network transport (SSE/HTTP)tests/test_cache_hints.py:85 · MCP server using network transport (SSE/HTTP) — data sent over networkFix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04
MEDIUM
Process kill command.claude/hooks/session-start.sh:48 · Process kill command — agent can terminate processesFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
CRITICAL
Tool poisoningaudits/2026-05-21T094452-Z-global-education-mcp/findings/SEC-015.md:38 · Tool poisoning — hidden instructions in tool description attempting to override agent behaviorFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST04
MEDIUM
Destructive file system command detectedDockerfile:48 · Destructive file system command detectedFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Process kill command.claude/hooks/session-start.sh:44 · Process kill command — agent can terminate processesFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
Outbound HTTP to raw IP address.github/workflows/ci.yml:98 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
URL using raw IP address.github/workflows/ci.yml:98 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
CRITICAL
Prompt injection attemptCONTRIBUTING.md:196 · Prompt injection attempt — 'ignore previous instructions'Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01
MEDIUM
Python subprocess execution detectedscripts/check_ruff_pin.py:71 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
CRITICAL
Tool poisoningaudits/2026-05-21T094452-Z-global-education-mcp/audit-report.md:879 · Tool poisoning — hidden instructions in tool description attempting to override agent behaviorFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST04
MEDIUM
Outbound HTTP to raw IP addresstests/test_streamable_http.py:37 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
URL using raw IP addresstests/test_streamable_http.py:37 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
Access to sensitive file pathstests/test_extended_scenarios.py:274 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05

What would make this Verified

24 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Text that tells the agent to ignore its instructions≈ +9 on the totalDelete phrases like "ignore previous instructions", "override", "bypass" from SKILL.md and tool descriptions. Describe what the skill does; do not instruct the agent about other rules.
  2. Tool poisoning≈ +9 on the totalKeep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
  3. Unclaimed publisher≈ +8 on the totalClaim malkreide: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  4. New publisher≈ +3 on the totalTime clears this on its own after 14 and 30 days. Claiming the handle (+50) is the fastest way past it.
  5. 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.
  6. MCP server using network transport (SSE/HTTP)≈ +2 on the totalNamespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
Publish a new version to PyPI, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim malkreide