Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Offline security scanning for AI-generated code: seven open-source scanners in one MCP server.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"valvur": {
"command": "uvx",
"args": [
"valvur",
"mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add valvur -- uvx valvur mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"valvur": {
"command": "uvx",
"args": [
"valvur",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"valvur": {
"type": "stdio",
"command": "uvx",
"args": [
"valvur",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 MaverickHQ 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.6.1)은 7일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
List courses; add users to courses, remove course access or delete users in MemberVault.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Offline security scanning for AI-generated code.
Seven open-source scanners and AI-specific checks, in one command and one ranked report.
Scorecard's Code-Review, Branch-Protection and Contributors checks need a second maintainer; valvur has one (MAINTAINERS.md).
Status: `1.6.1`, the version this tree declares; the PyPI badge above shows what
pip install valvurserves, and the CHANGELOG what each version changed.
In Claude Code: /plugin marketplace add MaverickHQ/valvur, then /plugin install valvur@valvur, and ask it to scan the project.
From a terminal, with Docker or Podman running: uvx valvur scan.
run.json, beside what left the machine: nothing. One command checks it.| area | what valvur reports | found by |
|---|---|---|
| Hallucinated packages | dependencies that do not exist, or sit one edit from a popular name, checked offline against every name on PyPI, npm, RubyGems, Packagist and crates.io | valvur's dependency-reality Check |
| Malicious packages | dependencies published as malicious, from OpenSSF's malicious-packages | OSV-Scanner, and the same Check |
| Agent configuration | injected directives, hidden Unicode, unpinned MCP servers, blanket approval, hooks that run a command, settings that would leak | valvur's ai-artifact Check |
| Vulnerable dependencies | known CVEs from lockfiles, ranked by exploitation, with the direct package to bump | Trivy, OSV-Scanner |
| Secrets | credentials in the files and in git history | Gitleaks |
| Code | injection, path traversal, SSRF, open redirects, XXE and insecure cookies, and model output reaching eval, a shell, a query or the DOM | Opengrep, with valvur's rules |
| Infrastructure | Terraform, CloudFormation, Kubernetes and Dockerfile misconfiguration | Checkov |
| CI workflows | unpinned actions, write permissions, template injection | zizmor |
| Licences and SBOM | a missing or contradictory project licence; a CycloneDX SBOM when asked for | valvur's licence-file Check, Syft |
What it checks, rule by rule, and what it cannot see: how valvur works.
.env* files and agent configuration), fetches the public data it needs, and records each fetch..security-scan/ ← ignores itself in git, so it is never committed
├── SUMMARY.md ← start here: the verdict, anything that failed, the top groups ├── REMEDIATION.md ← a ranked proposal: you choose what to apply ├── findings.json ← every finding, normalised, secrets redacted ├── results.sarif ← SARIF 2.1.0, for code scanning and IDEs └── run.json ← what ran, what was fetched, and what left the machine: nothing
A scan ends findings, clean or inconclusive. It never says clean when stale data, an uninspected ecosystem or a Scanner that did not finish cannot support it, and it says why.
How much of what valvur claims it finds is measured as the Score: nine tracks scored by the OWASP Benchmark's formula, with a ratchet that no change may fall more than two points under. It is 74.1 out of 100, the same on Linux and on macOS.
| track | what it holds | score |
|---|---|---|
| sast-python | the OWASP Benchmark for Python | 40.9 |
| sast-js | valvur's JavaScript twins: ten weaknesses, vulnerable and fixed | 55.0 |
| secrets | ten formats, in files and in history | 100.0 |
| dependencies | lockfiles pinned to vulnerable versions; known-malicious packages | 100.0 |
| package-reality | nonexistent, near-miss and malicious names | 100.0 |
| agent-configuration | planted directives and hidden Unicode, against real files | 94.3 |
| infrastructure | Terraform, Kubernetes, Dockerfile and Actions faults | 95.0 |
| real-code-precision | 48 maintained projects, every finding labelled by hand | 2.3 |
| llm-output | model output reaching code, a shell, a query or the DOM: generated twins and five published advisories | 79.0 |
Track 8 is precision on maintained code, where almost nothing is a vulnerability: 3 of its 171 findings are real. Track 9 measures the rules for model output reaching a sink: they catch 30 of 34 generated flows with no false alarm, and none of five published advisories in LangChain, LlamaIndex and Vanna, whose flows each cross a function. Each rule's precision is in docs/RULES.md, and the method, the gates and what valvur does not claim are in docs/EVALUATING.md. Read that one sceptically.
The Claude Code plugin brings the MCP server, a skill that runs the workflow, and a hook that asks you before the agent installs a package valvur flags. Kiro takes it as a power. Any MCP client runs the server with uvx --from valvur valvur-mcp. The agents' guide has the configuration for eleven clients, the seven tools, and the permissions a *don't ask* mode needs.
The Scanners run in a container, so the machine needs Docker or Podman; valvur doctor says what is missing.
pip install valvur # or: uv tool install valvur
valvur scan # offline by default; --profile full adds the registries' answers valvur check npm left-pad # before an install: real, a near-miss, or malicious? valvur gate . --fail-on high --no-inconclusive
The command-line guide has every command, what a first scan fetches, the Results Folder, and the settings files.
- uses: MaverickHQ/valvur-action@16b19e275f843419887873ed536a71f872607e24 # v0.2
with: { fail-on: high, no-inconclusive: "true" }
The action scans, uploads results.sarif to code scanning and gates the job. The CI guide covers the gate, the image as a step of its own, and GitLab.
valvur builds no detection engine. Seven open-source Scanners do that and deserve the credit; valvur adds one File Set, one findings model, exploit-aware ranking, and three Checks of its own. All of them run in one container, fed a copy of the files. run.json records the version of each that ran, and raw/ keeps what each said.
| Scanner | Licence | Reads | Runs |
|---|---|---|---|
| Gitleaks | MIT | Secrets in the files scanned and in git history, the newest 5,000 commits or 200 MB | always |
| Trivy | Apache-2.0 | Known vulnerabilities in dependencies, from lockfiles, against its database in the host cache | always |
| OSV-Scanner | Apache-2.0 | Lockfiles against OSV's data, which carries the known-malicious MAL- packages nothing else here reports. On offline, OSV's offline database for each ecosystem present, fetched into the host cache; on full, OSV.dev's API, which receives lockfile names and versions | always |
| Opengrep | LGPL-2.1 | Static analysis: pinning rules, a sink inventory at INFO, taint rules from a model call to a sink, and taint rules from request data | always |
| Checkov | Apache-2.0 | Infrastructure misconfiguration: Terraform, CloudFormation, Kubernetes, Dockerfiles, other CI systems | where there is infrastructure other than GitHub workflows |
| zizmor | MIT | GitHub Actions workflows: unpinned actions, write permissions, template injection | where there are workflows |
| Syft | Apache-2.0 | The SBOM, and the dependency licences read from it | when asked for: scan --sbom, or sbom = true under [scan] |
| Check | Reads |
|---|---|
ai-artifact | Agent configuration: injected directives, hidden Unicode, unpinned MCP servers, blanket approval, hooks that run a command, and local settings that would leak |
dependency-reality | Every declared dependency against the Name Index: does it exist, and on full, how old and how adopted is it. Every declared or locked one against the known-malicious list, built daily from OpenSSF's malicious-packages |
licence-file | The project's own licence: missing, or contradicting what the manifest declares |
Exploit intelligence comes from CISA KEV and FIRST EPSS: public primary sources, auditable and mirrorable. No proprietary database, and nothing to lock you in.
| platform | support |
|---|---|
| Linux, Docker and Podman | Supported. Every commit runs the e2e suite against Docker and Podman on amd64, and against Docker on arm64, and a scan with the published image on both; the acceptance set runs nightly on GitHub's Linux runner |
| macOS, Docker Desktop or Podman | Supported, and tested by hand on
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요