MCP, MCP server
Datawrapper Mcp
Create, update and publish Datawrapper charts from an AI assistant
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.
SECRETS_PATH_DOTENV PERMISSION_SHELL_DECLARED SECRETS_ENV_READ OBFUSCATION_FILE_OVER_READ_CAP
Why this grade
- SECRETS_PATH_DOTENV Low
Mentions a .env file.
scripts/worktree_bootstrap.py, line 100
"""Link the primary .env into a linked worktree without overwriting files.""" - PERMISSION_SHELL_DECLARED Note
Runs shell commands, and the manifest or description says so.
scripts/worktree_bootstrap.py, line 35
result = subprocess.run( # noqa: S603 - Commands are never shell strings. - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
datawrapper_mcp/handlers/whoami.py, line 37
arguments.get("access_token") or os.getenv("DATAWRAPPER_ACCESS_TOKEN") or None - 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
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
scripts/worktree_bootstrap.py, line 35
result = subprocess.run( # noqa: S603 - Commands are never shell strings.
scripts/worktree_bootstrap.py, line 46
subprocess.run( # noqa: S603 - Commands are never shell strings.
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Pass
No network call found.
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
datawrapper_mcp/handlers/whoami.py, line 37
arguments.get("access_token") or os.getenv("DATAWRAPPER_ACCESS_TOKEN") or None
scripts/worktree_bootstrap.py, line 100
"""Link the primary .env into a linked worktree without overwriting files."""
scripts/worktree_bootstrap.py, line 104
source = checkout.primary / ".env"
Show more
scripts/worktree_bootstrap.py, line 105
destination = checkout.current / ".env"
scripts/worktree_bootstrap.py, line 120
override = checkout / ".env.worktree"
scripts/worktree_bootstrap.py, line 124
"# Worktree-local overrides. Load this after .env when supported.\n"
.env.example, line 1
# Copy this file to .env and add local configuration values as needed.
.env.example, line 2
# Never commit .env or credentials.
.gitignore, line 85
# Environments
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 fc2329bc2749. requests shell access. The manifest names this permission. 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: fc2329bc274906ffd4d33e01ef8fdcc31843aaef
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.