プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Valca

作者:PranLabsバージョン 0.6.1i★ –iパソコンで動く
レジストリ名io.github.pranlabs/valca

インストール

概要

作者による説明(英語の原文)

Scans code, IaC and AI-agent config for security problems. Read-only — nothing can be edited.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "valca": {
      "command": "uvx",
      "args": [
        "valca"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add valca -- uvx valca

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "valca": {
      "command": "uvx",
      "args": [
        "valca"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "valca": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "valca"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント PranLabs で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32455件のうち0%よりスターが多い
  • このカテゴリのほかの32455件のうち57%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32455件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Valcaは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.6.1)がレジストリに届いたのは30 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, SSTracker free youth training

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Valca

AI coding security co-pilot — blocks insecure code at the moment of generation.

Formerly published as `vigilsec`. The package is now valca. Both the valca and vigil

commands work, so existing hooks and scripts keep running unchanged.

Valca intercepts every file an AI coding assistant writes and blocks it if CRITICAL or HIGH security findings are detected — before the file hits disk. It's the only tool that operates at generation time rather than post-commit.

AI writes file → valca scan → exit 2 → Claude Code blocks the write

The Problem

AI coding assistants reproduce the most common patterns in their training data. The most common patterns are insecure defaults.

The clearest example: every existing IaC scanner (Checkov, Trivy, Snyk, Semgrep) misses the docker-compose port binding that exposes your database to the internet:

ports:
  • "5432:5432" # ← binds to 0.0.0.0, bypasses UFW, reachable from anywhere

The correct form is "127.0.0.1:5432:5432". Valca catches it. Nothing else does.


Install

pip install valca

Wire the Claude Code hook (one time):

valca init --global     # `valca init --global` also works

That's it. Every file Claude Code writes is now scanned before it saves. Reload Claude Code to activate.


Network access

Valca's core scanning is fully offline — the package has zero runtime dependencies and the engine never sends your code, file paths, or findings anywhere.

Three rules do reach the network, because checking whether a dependency is vulnerable or fabricated is impossible offline. When a manifest (requirements.txt, package.json, lockfiles) is scanned, these rules send package names and version strings only to:

HostUsed byWhat is sent
api.osv.devVGL-PKG001 (known CVE in a pinned version)package name + version
pypi.orgVGL-PKG002/003/004 (hallucinated, stale, or suspicious package)package name
registry.npmjs.orgVGL-PKG002/003/004package name

Your source code, file contents, file paths, and scan results are never transmitted. If your dependency inventory is itself sensitive, turn these rules off in .valcarc and Valca runs completely offline:

disabled_rules = ["VGL-PKG001", "VGL-PKG002", "VGL-PKG003", "VGL-PKG004"]

Usage

# Scan a single file

valca scan docker-compose.yml

Scan a directory

valca scan ./my-project/

JSON output (for CI / dashboards)

valca scan ./my-project/ --format json

SARIF output (for GitHub Advanced Security)

valca scan ./my-project/ --format sarif > results.sarif

Only report HIGH and above

valca scan ./my-project/ --severity HIGH

Open feedback & waitlist form

valca feedback

Review what has been caught over time. Both commands read the local scan history — nothing leaves your machine.

# Findings log — what was caught, where, and when

valca log # 20 most recent findings valca log --severity CRITICAL # only criticals valca log --project api --since 2026-09-01 valca log --limit 100 --format json # for dashboards

Aggregate stats — rule frequency, severity mix, precision per rule

valca stats valca stats --format json

valca stats reports how often each rule fires and how often you suppressed it, so rules with poor precision in *your* codebase are visible rather than guessed at.

Exit codes:

CodeMeaning
0No findings — write proceeds
1Advisory findings only (MEDIUM / LOW / INFO)
2CRITICAL or HIGH found — Claude Code blocks the write

See It in Action

Blocking a vulnerable GitHub Actions workflow at write time:

In April 2026, researchers found that all three major AI coding agents (Claude Code, Gemini CLI, Copilot) could be hijacked to exfiltrate ANTHROPIC_API_KEY and GITHUB_TOKEN via a hidden HTML comment in a GitHub issue. CVSS 9.4. No special access required.

Valca catches the vulnerable workflow (issues: trigger + AI agent + API key in env) before it reaches git — the only tool that does.

→ Full writeup: The Attack That Steals Your API Keys Through a GitHub Issue Comment


Rules

116 rules across 27 categories. All built-in, stdlib-only, zero runtime dependencies.

This catalogue is generated from the rule registry — it cannot drift from the shipped engine.

Secrets & Credential Exposure (14 rules)
RuleSeverityWhat it catches
VGL-I001CRITICALeval() or exec() — code injection risk
VGL-I002HIGHsubprocess with shell=True
VGL-I003HIGHos.system() call
VGL-S001CRITICALAWS access key hardcoded
VGL-S002CRITICALHardcoded password
VGL-S003CRITICALHardcoded API key
VGL-S004CRITICALHardcoded bearer token
VGL-S005CRITICALHardcoded JWT secret
VGL-S006CRITICALPEM private key in source
VGL-S007CRITICALDatabase URL with embedded credentials
VGL-S008CRITICALStripe live secret key
VGL-S009CRITICALSlack token hardcoded
VGL-S010CRITICALProvider API key hardcoded (OpenAI / GitHub / GitLab / Google)
VGL-S012HIGHInsecure placeholder default for security-critical config
GitHub Actions — AI Agent Surface (13 rules)
RuleSeverityWhat it catches
VGL-GHA001CRITICALPwn Request — pull_request_target with attacker-controlled checkout ref
VGL-GHA002CRITICALScript injection — user-controlled context expression in run: step
VGL-GHA004HIGHSecret directly interpolated in run: step (visible in process table)
VGL-GHA005MEDIUMWorkflow missing explicit permissions block (implicit GITHUB_TOKEN scope)
VGL-GHA006HIGHCache usage in pull_request workflow (cache poisoning attack vector)
VGL-GHA007HIGHSelf-hosted runner with pull_request trigger (persistent runner risk)
VGL-GHA008HIGHworkflow_run trigger without ref/repo validation
VGL-GHA009CRITICALAI agent wired to untrusted-input trigger (issues/pull_request_target) with API key in env
VGL-GHA010HIGHAI agent on pull_request_target without fork origin guard
VGL-GHA011CRITICALUntrusted GitHub event data interpolated into AI agent prompt
VGL-GHA012HIGHAI agent on untrusted trigger with no --allowedTools restriction
VGL-GHA013MEDIUMAI agent on untrusted trigger with no --max-turns limit
VGL-GHA014HIGHcontents: write permission with AI agent on untrusted trigger
AI Agent — Prompt Injection (9 rules)
RuleSeverityWhat it catches
VGL-PI001CRITICALUser input interpolated into the LLM system prompt
VGL-PI002HIGHRaw HTTP request body used as LLM message content
VGL-PI003HIGHString formatting used to build prompts with user data
VGL-PI004MEDIUMTool output appended to the conversation without sanitization
VGL-PI005CRITICALHTTP request data flows into an LLM prompt unsanitised
VGL-PI006CRITICALLLM response flows into subprocess, exec or eval
VGL-PI007HIGHWebhook payload flows directly into an AI agent
VGL-PI008HIGHDatabase content interpolated into a prompt — second-order injection
VGL-PI009HIGHUser input written into a vector store — memory poisoning
Dockerfile Hardening (8 rules)
RuleSeverityWhat it catches
VGL-DF001HIGHDockerfile runs as root — no USER directive
VGL-DF002MEDIUMDockerfile uses unpinned :latest base image
VGL-DF003HIGHDockerfile bakes secret into ENV or ARG layer
VGL-DF004HIGHcurlbash or wgetsh pipe in Dockerfile RUN instruction
VGL-DF005HIGHTLS verification disabled in Dockerfile RUN fetch
VGL-DF006MEDIUMADD used for local files — use COPY instead
VGL-DF007HIGHCOPY . without .dockerignore — risks leaking .git, .env, credentials
VGL-DF008MEDIUMWorld-writable permissions set in Dockerfile (chmod 777)
Docker Compose (7 rules)
RuleSeverityWhat it catches
VGL-D001CRITICALDocker public port binding — bypasses UFW, exposes service to internet
VGL-D002HIGHdocker-compose environment block contains hardcoded secret
VGL-D003CRITICALDocker container runs in privileged mode
VGL-D004HIGHDocker container uses host network mode
VGL-D005CRITICALDocker socket mounted into container — full container escape vector
VGL-D006HIGHSensitive host path mounted into container
VGL-D007HIGHAWS credentials directory (~/.aws) mounted into container — exposes all profiles
Terraform (7 rules)
RuleSeverityWhat it catches
VGL-TF001CRITICALTerraform hardcoded secret value
VGL-TF002HIGHTerraform resource with public access enabled
VGL-TF003HIGHTerraform encryption explicitly disabled
VGL-TF004CRITICALIMDSv1 enabled on EC2 instance — vulnerable to SSRF metadata theft
VGL-TF005HIGHTerraform S3 state backend stored without encryption
VGL-TF006MEDIUMDeletion protection disabled on managed resource
VGL-TF007MEDIUMAudit logging disabled on Terraform-managed resource
Deserialization & Path Traversal (5 rules)
RuleSeverityWhat it catches
VGL-DESER001CRITICALInsecure deserialization — pickle.loads / pickle.load
VGL-DESER002HIGHInsecure YAML deserialization — yaml.load() without SafeLoader
VGL-DESER003HIGHInsecure deserialization — marshal.loads with untrusted data
VGL-PATH001HIGHPath traversal — user input passed to file open or path join without validation
VGL-SSTI001CRITICALServer-Side Template Injection — user input rendered as Jinja2 template
MCP Server Security (5 rules)
RuleSeverityWhat it catches
VGL-MCP001CRITICALPrompt injection embedded in MCP tool description
VGL-MCP002HIGHMCP tool description built from user-controlled data
VGL-MCP003HIGHShell execution in an MCP tool handler without a sandbox
VGL-MCP004HIGHMCP server config uses an unpinned package or plaintext HTTP endpoint
VGL-MCP005HIGHMCP fetch tool takes an agent-controlled URL with no allowlist
Web Application Security (5 rules)
RuleSeverityWhat it catches
VGL-CORS001HIGHCORS wildcard — allow_origins=['*']
VGL-SQL001CRITICALSQL injection — query built with f-string or string concatenation
VGL-SQL002CRITICALSQL injection — ORM raw query with f-string
VGL-SSL001HIGHSSL verification disabled
VGL-SSRF001CRITICALSSRF — HTTP call with user-controlled URL
AI Agent — Excessive Agency (4 rules)
RuleSeverityWhat it catches
VGL-A001CRITICALLLM output piped into shell execution
VGL-A002HIGHHardcoded auto-approval disables human-in-the-loop
VGL-A003HIGHUnbounded agent loop with no iteration limit
VGL-A004HIGHLLM response written to disk without validation
Authentication & Session (4 rules)
RuleSeverityWhat it catches

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く