https://github.com/A1-x-Tech/mcp-yandex-merchants
mcp-yandex-merchants
Risky
Score 64 / 100 · 62 files read · 0 critical, 0 high, 4 medium, 13 low findings
Report e2ec1811b86deb21 · first scanned 2026-10-28 · scanned 3× · keyed to the exact package contents, so this link always shows this version
Listed in the Agent Census directory data
Subscores
100 is clean. Deductions come only from the cited findings below.
Findings
mediumCode contacts static.modelcontextprotocol.io, which the documentation never mentions
(package) · line 1 · rule M3
static.modelcontextprotocol.io
mediumRuns a command automatically at install time (prepare)
package.json · line 1 · rule M4
prepare: npm run build
mediumWrites files under the user home directory
src/credentials.ts · line 2 · rule M5
renameSync, rmSync, writeFileSync } from "node:fs"; import { homedir } from "node:os"; import { dirname, join } from "node:path";
mediumWrites files under the user home directory
src/telemetry.ts · line 14 · rule M5
Sync, readFileSync, writeFileSync } from "node:fs"; import { homedir } from "node:os"; import { join } from "node:path"; import ty
low3 binary file(s) were not parsed (static text analysis only)
(package) · line 1 · rule L3
3 binary files
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/auth.test.ts · line 17 · rule L1
> { const saved = process.env.XDG_CONFIG_HOME; process.env.XDG_CONFIG_HOME = mkdtempSync(join(tmpdir(), "mcp-merchants-test-")
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/client.test.ts · line 344 · rule L1
} { const saved = process.env.XDG_CONFIG_HOME; const dir = mkdtempSync(join(tmpdir(), "mcp-merchants-client-")); process.env
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/config.test.ts · line 7 · rule L1
ars).map((k) => [k, process.env[k]])); for (const [k, v] of Object.entries(vars)) { if (v === undefined) delete process.env[
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/config.ts · line 40 · rule L1
timeoutMs = Number(process.env.YANDEX_MERCHANTS_TIMEOUT_MS); const maxRetries = Number(process.env.YANDEX_MERCHANTS_MAX_RETRIES
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/credentials.ts · line 26 · rule L1
ng { const base = process.env.XDG_CONFIG_HOME || join(homedir(), ".config"); return join(base, APP, "credentials.json"); } /*
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/index.ts · line 84 · rule L1
config: { apiBase: process.env.YANDEX_MERCHANTS_BASE_URL || DEFAULT_BASE }, problem: err, }; } } async function main
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/oauth.test.ts · line 49 · rule L1
> { const saved = process.env.YANDEX_MERCHANTS_OAUTH_CLIENT_ID; delete process.env.YANDEX_MERCHANTS_OAUTH_CLIENT_ID; try {
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/oauth.ts · line 31 · rule L1
: string { return process.env.YANDEX_MERCHANTS_OAUTH_CLIENT_ID || DEFAULT_CLIENT_ID; } export interface PkcePair { verifier:
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/telemetry.test.ts · line 90 · rule L1
one. const prev = process.env.XDG_CONFIG_HOME; process.env.XDG_CONFIG_HOME = mkdtempSync(join(tmpdir(), "beacon-test-")); tr
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/telemetry.ts · line 23 · rule L1
NodeJS.ProcessEnv = process.env): boolean { const value = (env.ASKADS_TELEMETRY ?? "").trim().toLowerCase(); return !["0", "fa
lowReads named environment variables (normal for API keys; listed in the permission summary)
src/tools/auth.test.ts · line 26 · rule L1
const savedConfig = process.env.XDG_CONFIG_HOME; const savedFetch = globalThis.fetch; process.env.XDG_CONFIG_HOME = mkdtempSyn
lowReads named environment variables (normal for API keys; listed in the permission summary)
test/dist-smoke.test.js · line 98 · rule L1
env: { ...process.env, YANDEX_MERCHANTS_OAUTH_TOKEN: "test-token", ASKADS_TELEMETRY: "0", }, }); con
Permission surface
- Network endpoints
- api.github.comcode.claude.comcode.visualstudio.comcursor.comevil.exampleexample.invalidgithub.comglama.aiid.yandex.ruimg.shields.iokeepachangelog.comlearn.chatgpt.comlobehub.commerchants.yandex.ruoauth.yandex.ruopencollective.comregistry.npmjs.orgsemver.orgshop.examplestatic.modelcontextprotocol.iosupport.claude.comt.meusage.gistrec.cloudwww.npmjs.comyandex.ru
- Environment read
- XDG_CONFIG_HOMEYANDEX_MERCHANTS_BASE_URLYANDEX_MERCHANTS_MAX_RETRIESYANDEX_MERCHANTS_OAUTH_CLIENT_IDYANDEX_MERCHANTS_OAUTH_TOKENYANDEX_MERCHANTS_TIMEOUT_MS
- Shell execution
- no
- Install hooks
- prepare: npm run build
- Credential material
- Reads named environment variables (normal for API keys; listed in the permission summary)
Provenance
- Source
- GitHub
- Repository
- A1-x-Tech/mcp-yandex-merchants
- Owner
- A1-x-Tech
- Stars
- 0
- Forks
- 0
- Repo created
- 2026-08-08
- Last push
- 2026-10-04
- License
- MIT
Watch this package
Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.
Share this report: https://preflight.orbitaldeskllc.com/r/e2ec1811b86deb21