MCP, MCP server
KIAgent
KIAgent, an MCP server listed in the PlugVet directory.
Compatibility: Not stated.
Grade D
Two or more Medium findings, or a High finding. Only try it in a sandbox.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 27c2311b53cd.
INSTALL_LIFECYCLE_HOOK OBFUSCATION_ENCODED_BLOB
Why this grade
- INSTALL_LIFECYCLE_HOOK Medium
A package install hook (preinstall, install, postinstall or prepare) runs a script.
package.json, line 38
postinstall - OBFUSCATION_ENCODED_BLOB Medium
Contains a long base64 shaped string in a file that should be readable.
src/main/core/mcp/server-icon.ts, line 7
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAADsOAAA7DgHMtqGDAAAPBklEQVR4nO2d/ZOVZRnH/buemcyEihL7IZHqt2qmrLCxqbH64S5g1xNg7KajQSBkKswY7CrQGIrlKPIS4
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
shared-infrastructure-e2e.test.ts, line 631
if (fs.existsSync(p)) fs.rmSync(p, { recursive: true, force: true });
scripts/generate-brand-assets.ts, line 108
await fs.rm(iconset, { recursive: true, force: true });
src/main/reset-journal.ts, line 49
fs.rmSync(file, { force: true });
Install and update
Concern
runs a script at install time.
INSTALL_LIFECYCLE_HOOK
package.json, line 38
postinstall
Network
Concern
can reach a host that is not written as a fixed address. can reach fixture.public.test. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
shared-infrastructure-e2e.test.ts, line 174
{ name: '${id}.netSuccess', description: '', inputSchema: {}, call: async () => host.net.fetch('http://fixture.public.test:${fixturePort}/bounded', { timeoutMs: 1000 }) },
shared-infrastructure-e2e.test.ts, line 269
const request = http.request(
concept/greenfield.ts, line 637
net: { net: { fetch(url: string, init?: unknown): Promise<unknown> } };
Show more
concept/model.ts, line 445
fetch(
concept/model.ts, line 535
/** Shared retry/backoff bearer fetch (was http-shared). Error contract is
concept/model.ts, line 656
net: { fetch(url: string, init?: unknown): Promise<unknown> };
concept/pull-model.ts, line 219
net: { net: { fetch(url: string, init?: unknown): Promise<unknown> } };
scripts/fetch-llama-server.mjs, line 69
const res = await fetch(url);
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
.env.example, line 1
# Build-time OAuth client credentials — copy to .env (git-ignored) and fill
.erb/configs/oauth-env.ts, line 5
* the build machine's environment: a git-ignored .env at the project root
.erb/configs/oauth-env.ts, line 6
* (local builds — see .env.example) or repository secrets (CI). dotenv never
Show more
.erb/configs/oauth-env.ts, line 19
dotenv.config({ path: path.join(webpackPaths.rootPath, '.env') });
.gitignore, line 3
.env
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
src/main/core/mcp/server-icon.ts, line 7
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAADsOAAA7DgHMtqGDAAAPBklEQVR4nO2d/ZOVZRnH/buemcyEihL7IZHqt2qmrLCxqbH64S5g1xNg7KajQSBkKswY7CrQGIrlKPIS4
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 27c2311b53cd. can delete files. runs a script at install time. can reach a host that is not written as a fixed address. can reach fixture.public.test. The description does not name that host. reads a credential or environment file. contains an encoded blob in a file that should be readable.
Date and source
Date checked:
github.com
Commit graded: 27c2311b53cd69f239cf70003e7e9e9aaed25aa5
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.