Atlas / MCP servers / nan1010082085 / vision-relay

vision-relayBLOCK

mcp/nan1010082085/claude-plugins

跨环境 AI CLI 插件统一仓库 - Claude Code / Codex CLI / Cursor 等插件集合

Verdict
BLOCK
Grade
D
Trust score
69 /100
Exposed tools
1 1r · 0w · 0d
Transport
—
License
MIT
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

通用 AI CLI 插件集,为 Claude Code、Codex、opencode、Cursor 等编码环境提供可复用的工具。

插件

安装

Claude Code 插件市场

/plugin marketplace add nan1010082085/claude-plugins
/plugin install vision-relay@claude-plugins
/plugin install commit-flow@claude-plugins

npm

npm install -g vision-relay
vision-relay init
vision-relay setup

npm install -g claude-commit-flow
commit-flow classify --json

快速使用(vision-relay)

# 终端直接识别
vision-relay describe ./shot.png -q "这个报错怎么修"

# Claude Code / Codex / opencode 会话内(两段式:先视觉再编码)
/vision ./shot.png 这个报错怎么修

快速使用(commit-flow)

/create-branch
/branch-commit
/branch-commit-push
/commit
/commit-push
/commit-pr
/push

设计与 E2E:packages/commit-flow/docs/design.md · e2e.md

开发

git clone https://github.com/nan1010082085/claude-plugins.git
cd claude-plugins
pnpm install
pnpm build
pnpm test

许可

MIT

Read from source at commit 46b5d480d35aOBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add vision-relay -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "vision-relay": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ]
    }
  }
}
03

Exposed tools (1)

1 read · 0 write · 0 destructive.

ToolRiskDescription
vision_describeread【必须先调用再回答】用视觉模型识别图片并返回文字描述。编码模型无法看图:涉及图片内容时必须先调本工具,严禁猜图。
04

Trust audit

BLOCKgrade D · trust 69/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (2 observation(s))
Network
declared (5 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (13)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/commit-flow/src/secrets.ts:14
/(^|\/)id_rsa$/i,
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/commit-flow/src/secrets.ts:15
/(^|\/)id_ed25519$/i,
Why it matters. touches a credential store
HIGHNetwork egress · net.metadata_ip · CWE-200, CWE-319
packages/vision-relay/src/images.ts:83
if (h === 'metadata.google.internal' || h.endsWith('.internal') || h.endsWith('.local')) return true
Why it matters. cloud metadata endpoint: the classic SSRF credential grab
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
packages/vision-relay/src/tui.ts:59
console.log(`  API Key   ${maskApiKey(v.apiKey)}`)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/vision-relay/src/session-proxy.ts:115
baseUrl: `http://127.0.0.1:${port}`,
LOWInventory / provenance · inv.symlink · CWE-1104
docs/vision-relay
docs/vision-relay
Why it matters. link not followed
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/vision-relay/tests/mcp.test.ts:18
cfg.vision.baseUrl = 'http://127.0.0.1:1' // 不可达,触发错误路径
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/vision-relay/tests/rewrite.test.ts:22
expect(() => assertPublicHttpUrl('http://127.0.0.1/x.png')).toThrow(/私网|本机/)
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/vision-relay/tests/rewrite.test.ts:23
expect(() => assertPublicHttpUrl('http://192.168.1.1/x.png')).toThrow(/私网|本机/)
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/vision-relay/tests/rewrite.test.ts:47
cfg.vision.baseUrl = 'http://127.0.0.1:9'
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
vision-relay
Why it matters. 1 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/commit-flow/package.json
commander, @types/node, tsup, tsx, typescript, vitest
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/vision-relay/package.json
@clack/prompts, commander, jimp, picocolors, @types/node, tsup, tsx, typescript
Why it matters. 9 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha 46b5d480d35afull audit observations/trust-audit/mcp-server/nan1010082085__claude-plugins.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1246b5d480d35aBLOCKD69first audit
06

Questions

What is the vision-relay MCP server?

跨环境 AI CLI 插件统一仓库 - Claude Code / Codex CLI / Cursor 等插件集合

What tools does vision-relay expose?

1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is vision-relay safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (69/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does vision-relay need?

No credential environment variables were found in its source, so it appears to need none.

How current is this page?

The grade is for one exact copy of the source (46b5d480d35a), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement