Valca logo

Valca

Valca scans code, IaC, and AI-agent configuration, blocking high-severity findings before files reach disk.

Install Valca

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "valca": {
      "command": "uvx",
      "args": [
        "valca"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx valca

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 11d ago.

Overview

Valca MCP server scans source code, infrastructure-as-code, dependency manifests, and AI-agent configuration for security findings. Its Claude Code hook checks files before they are saved and returns exit code 2 when CRITICAL or HIGH findings are present, blocking the write. The scanner is read-only and does not edit files. Reach for it when you need generation-time checks for secrets, prompt injection, GitHub Actions, Docker, and related risks.

Use cases

  • Block insecure AI-generated files before they reach disk
  • Scan Docker and Docker Compose configurations for exposed services
  • Check GitHub Actions workflows for AI-agent and secret-handling risks
  • Export findings as JSON or SARIF for automation
  • Review local finding history and rule statistics

Key features

  • Pre-write security scanning
  • 116 built-in rules across 27 categories
  • Read-only analysis of code, IaC, and agent configuration
  • JSON and SARIF output
  • Local finding logs and rule statistics
  • Offline core engine with configurable package checks

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

7/7 checks healthy over the last 25d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · valca (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars2Stargazers on the source repository.
Last commit1mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.

How Valca works

What Valca does

The Valca MCP server examines code, IaC, dependency manifests, and AI-agent configuration for security problems. It is designed to run before an AI coding assistant saves a generated file, rather than waiting for a commit or a later CI scan. The scanner is read-only: it reports findings but does not modify source files or configuration.

Valca includes 116 built-in rules across 27 categories. These cover hardcoded credentials, dangerous Python execution, GitHub Actions workflows, AI-agent prompt injection paths, Dockerfiles, Docker Compose settings, and package-related risks. One notable check identifies Docker Compose ports bound to all interfaces, such as a database published as 5432:5432 instead of being restricted to localhost.

How it works

A Claude Code hook invokes Valca when the assistant attempts to write a file. Valca scans the target and returns a status code: 0 permits a clean write, 1 reports advisory MEDIUM, LOW, or INFO findings, and 2 indicates a CRITICAL or HIGH finding that Claude Code blocks.

The core engine runs offline and has zero runtime dependencies. Four package rules can make network requests when dependency manifests or lockfiles are scanned. They send package names and, for the OSV check, package versions to api.osv.dev, pypi.org, or registry.npmjs.org. Source contents, paths, and scan results are not transmitted. Disabling those four rules makes the operation fully offline.

Setup and configuration

Install the package with:

Terminal
pip install valca

Run valca init --global once to configure the global Claude Code hook, then reload Claude Code. The older vigil command remains available alongside valca, preserving existing hooks and scripts from the former package name.

Network-dependent package checks can be disabled in .valcarc:

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

Tools and capabilities

The Valca MCP server provides command-line operations for:

  • Scanning an individual file or an entire directory.
  • Producing standard, JSON, or SARIF output for automation and GitHub Advanced Security workflows.
  • Filtering reported findings by severity.
  • Reviewing local finding history with valca log, including project, date, severity, limit, and format filters.
  • Summarizing rule frequency, severity distribution, and suppression frequency with valca stats.
  • Opening the project feedback and waitlist form with valca feedback.

Limitations and notes

Valca does not edit files, apply fixes, or replace review of findings. The Claude Code blocking workflow depends on installing and activating its hook. Package checks have limited network access unless those rules are disabled. The rules are built into the package, and the documented catalogue contains 116 checks; detection therefore depends on the patterns those rules cover.

As a Security-category tool, the Valca MCP server is most suitable for local generation-time safeguards and scan reporting. Its documented client workflow centers on Claude Code; the README also references Gemini CLI and Copilot when discussing affected AI coding agents, but does not provide installation instructions for those clients.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Valca

Valca is an MCP server that connects AI coding workflows to local code, IaC, dependency manifests, and AI-agent configuration scans. Its main tools scan files or directories, return standard, JSON, or SARIF findings, record local scan history, and summarize rule statistics. It can block Claude Code writes when critical or high-severity issues appear.

Install it with `pip install valca`, then run `valca init --global` to configure the global Claude Code hook. Reload Claude Code afterward so the hook becomes active. The package also retains the `vigil` command for existing scripts.

Yes, Valca provides a documented Claude Code hook workflow. Run `valca init --global` and reload Claude Code; subsequent file writes are scanned before saving, and CRITICAL or HIGH findings return exit code 2 to block the write.

Yes, the core scanner runs offline and does not transmit source code, paths, or results. Four dependency-package rules contact OSV, PyPI, or npm with package metadata; disable VGL-PKG001 through VGL-PKG004 in `.valcarc` for fully offline operation.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewValca AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/valca?style=directory)](https://allmcps.com/mcp/valca)
HTML Embed
<a href="https://allmcps.com/mcp/valca"><img src="https://allmcps.com/api/badge/valca?style=directory" alt="Valca on AllMCPs" /></a>