MCP, MCP server
Modern Emdash Cms
Personal portfolio built with Astro and EmDash CMS, deployed as a Cloudflare Worker.
Compatibility: Not stated.
Grade C
One Medium finding. Read the report before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
OBFUSCATION_ENCODED_BLOB
Why this grade
- OBFUSCATION_ENCODED_BLOB Medium
Contains a long base64 shaped string in a file that should be readable.
pnpm-lock.yaml, line 1
lockfileVersion: '9.0'
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
Pass
No shell or command call was found in the code. This check does not read permissions an entry declares. A permission line to fetch web content was found in this repository, and it may apply to this entry.
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach api.analytics.example.com. The description does not name that host. can reach a host that is not written as a fixed address. can reach your-site.com. The description does not name that host. can reach api.resend.com. The description does not name that host. can reach demo-site.com. The description does not name that host. can reach downloads.wordpress.org. The description does not name that host. can reach raw.githubusercontent.com. The description does not name that host. can reach ap
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
.agents/skills/creating-plugins/SKILL.md, line 167
await ctx.http.fetch("https://api.analytics.example.com/track", {
.agents/skills/creating-plugins/references/api-routes.md, line 232
const response = await ctx.http!.fetch(
.agents/skills/creating-plugins/references/api-routes.md, line 258
curl https://your-site.com/_emdash/api/plugins/forms/submissions?limit=10
Show more
.agents/skills/creating-plugins/references/api-routes.md, line 260
curl -X POST https://your-site.com/_emdash/api/plugins/forms/create \
.agents/skills/creating-plugins/references/hooks.md, line 271
await ctx.http!.fetch("https://api.resend.com/emails", {
.agents/skills/wordpress-theme-to-emdash/phases/1-discovery.md, line 95
curl -o discovery/images/featured-1.jpg "https://demo-site.com/wp-content/uploads/photo1.jpg"
.agents/skills/wordpress-theme-to-emdash/phases/1-discovery.md, line 96
curl -o discovery/images/featured-2.jpg "https://demo-site.com/wp-content/uploads/photo2.jpg"
.agents/skills/wordpress-theme-to-emdash/phases/1-discovery.md, line 124
curl -O https://downloads.wordpress.org/theme/theme-name.zip
src/worker.ts, line 96
const response = await env.SELF.fetch("http://localhost/_emdash/api/plugins/emdash-inbox/inbound", {
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
src/pages/api/subscribe.ts, line 27
const token = runtime?.env?.EMDASH_TOKEN;
.gitignore, line 18
# environment variables
.gitignore, line 19
.env
Show more
.worktreeinclude, line 1
.dev.vars
.worktreeinclude, line 2
.env.local
CLAUDE-AGENTS.md, line 336
Don't manually type the `Env` object. In a Worker context, run `pnpm wrangler types` to generate `worker-configuration.d.ts` (includes wrangler.jsonc bindings and `.env` secrets).
CLAUDE-AGENTS.md, line 338
Local-dev secrets go in `.env` (read by Wrangler and the Cloudflare Vite plugin since Aug 2025), not `.dev.vars`. Note Wrangler loads either `.dev.vars` or `.env` but never both --
docs/upgrade.md, line 52
Replaces `locals.runtime?.env` with `import { env } from "cloudflare:workers"`.
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Concern
contains an encoded blob in a file that should be readable.
OBFUSCATION_ENCODED_BLOB
pnpm-lock.yaml, line 1
lockfileVersion: '9.0'
worker-configuration.d.ts, line 1
/* eslint-disable */
lighthouse/_2026-06-27_19-55-08.report.html, line 1
<!--
Show more
lighthouse/engdawood.com_2026-06-27_19-11-21.report.html, line 1
<!--
lighthouse/engdawood.com_2026-06-27_19-11-21.report.html, line 20
<script>window.__LIGHTHOUSE_JSON__ = {"lighthouseVersion":"13.4.0","requestedUrl":"https://engdawood.com/","mainDocumentUrl":"https://engdawood.com/ar/","finalDisplayedUrl":"https:
Licence
Note
no licence file found.
LICENCE_MISSING
No file path was stored.
no licence file found.
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 8b9fce0f5607. can reach api.analytics.example.com. The description does not name that host. can reach a host that is not written as a fixed address. can reach your-site.com. The description does not name that host. can reach api.resend.com. The description does not name that host. can reach demo-site.com. The description does not name that host. can reach downloads.wordpress.org. The description does not name that host. can reach raw.githubusercontent.com. The description does not name that host. can reach ap reads a credential or environment file. contains an encoded blob in a file that should be readable. no licence file found. Grades are a hygiene che
Date and source
Date checked:
github.com
Commit graded: 8b9fce0f56076bcc7d7ada10cd9daceaa7d87220
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.