Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Vetting for MCP servers and skills: capabilities, configs, mismatches, typosquats, probe parity.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"mcpvet": {
"command": "npx",
"args": [
"-y",
"@reneturcios/mcpvet",
"mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add mcpvet -- npx -y @reneturcios/mcpvet mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"mcpvet": {
"command": "npx",
"args": [
"-y",
"@reneturcios/mcpvet",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"mcpvet": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/mcpvet",
"mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 CloudCorpRecords 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.1)은 11일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js, Docker도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, yontu
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Vet MCP servers and agent skills before you install them.
In early 2026 the ClawHavoc wave put 1,184 malicious skills on a public skill marketplace from just 12 accounts: credential stealers and reverse shells dressed up as helpful agent skills, inheriting whatever permissions the agent itself had. Only a small minority of organizations audit the MCP servers they install, and almost none audit skill packs. The install click is the trust decision, and it usually happens with no evidence at all.
mcpvet is the pre-install check. Point it at a local MCP server directory, a SKILL.md skill directory, a client config tree, or an npm package name, and it returns a deterministic verdict with evidence for every finding: VETTED, REVIEW, or DO-NOT-INSTALL. The scan is static only. Scanned code is read as text and never executed, imported, or installed.
Since 0.2.0 there is also a separate, clearly labeled live mode (mcpvet probe). It spawns a stdio server command twice and compares what it answers: probe parity, exact-hash fingerprint matching, and a server-level risk score derived from the recorded signals. Live mode executes the target, which is exactly why it is a separate command and not folded into the static scan.
npx -y @reneturcios/mcpvet --version
npm install -g @reneturcios/mcpvet docker run -i --rm ghcr.io/cloudcorprecords/mcpvet mcp
mcpvet vet ~/src/some-mcp-server
mcpvet vet ~/skills/some-skill --json mcpvet vet-package @modelcontextprotocol/server-filesystem@2025.3.28 mcpvet probe -- node ~/src/some-mcp-server/dist/index.js mcpvet mcp
CLI exit codes: 0 when the verdict is VETTED, 1 for REVIEW or DO-NOT-INSTALL, 2 for a usage or setup error, 141 when the reader closed the output pipe before the report was delivered.
| Check | What it catches |
|---|---|
| Tool inventory | Declared tools (server.json, package.json, tool manifests) against tools actually registered in source, plus resources and prompts |
| Capability combos | Filesystem read plus network egress, env access plus egress, credential store access plus egress, shell execution reachable from the tool surface |
| Config audit | Client configs (claude_desktop_config.json, .mcp.json, Cursor and VS Code mcp.json): autostart entries, npx -y on unpinned packages, curl pipe shell launchers, shell wrappers, wide env blocks sweeping in credential-shaped keys, whole-environment passthrough |
| Install scripts | preinstall, install, postinstall, and prepare scripts in package.json, with dropper shapes (remote download piped to a shell) graded critical |
| Manifest honesty | A package.json or server.json that is present but unparseable, unreadable, oversize and skipped, or not a regular file is reported as present but not audited, with a MANIFEST-UNPARSEABLE or MANIFEST-UNREADABLE finding, never as absent. A byte order mark prefix is stripped before parsing, so a BOM-prefixed manifest is audited normally |
| Bundled scripts | Reverse shell shapes (including a reverse shell composed from a socket connection, a spawned shell, and pipes joining them), one file that both reads a credential store and makes network requests, persistence touches (session hooks, scheduled tasks, autostart entries), download-and-execute droppers |
| Description language | Tool descriptions, package descriptions, and SKILL.md text carrying instruction or exfiltration language: override prior instructions, hide actions from the user, send credential material onward, run shell commands from prose |
| Documentation download-and-execute | A download-and-execute step declared as text anywhere in the package (SKILL.md prerequisites, READMEs, other docs, bundled scripts): a remote download piped or substituted into a shell or interpreter, or downloaded and run on the same line. Graded critical, like the same shape in autostart configs and install scripts. A download with no execution step does not draw this finding |
| Native binaries | Compiled native artifacts shipped in the package (.node, .dll, .so, .dylib files, or a prebuilds directory). Native code cannot be audited by static text scanning, so its presence is graded medium with a NATIVE-BINARY finding and the verdict floors at REVIEW: presence is not evidence of malice (many legitimate packages ship prebuilt addons), and it never escalates to DO-NOT-INSTALL on its own, but the binary should be reviewed, or the package built from source, before the server is trusted. The MALFEX imgdecode campaign hid its payload in exactly this shape: a native addon under prebuilds/ loaded at require time, with no install scripts at all |
| Mismatches | Declared tools missing from code, undeclared tools present in code, server.json and package.json disagreeing on name or version |
| Pinning | Missing version fields, moving tags such as latest or *, registry entries with no version, unpinned container references |
| Typosquat | Target and package names at edit distance 1 (or 2 for long names) from a bundled list of well-known MCP server names |
| Probe parity (live only) | The server is spawned twice and asked the same questions (initialize, tools/list). Any drift in identity, tool set, descriptions, or schemas between the two identical probes is recorded as a signal with the diff as evidence |
| Fingerprints (live only) | The presented tool set and tool descriptions are hashed (sha256 over canonical JSON) and compared against a bundled fingerprint file. Matches are exact only, never fuzzy, and each entry carries its provenance |
| Risk score | Every report carries a score from 0 to 100 derived from its recorded signals (static findings, or live signals in probe mode). The score is computed from the signal list on read, never kept as a counter, and it informs the verdict without replacing the verdict rules |
A verdict is a scan result, never a safety claim. VETTED means these checks found nothing at or above medium severity in the files scanned; it does not certify a server safe.
Scope floor (v0.1.2): DO-NOT-INSTALL is a claim about an installable MCP bundle. If the target is not an MCP target (kind unknown, meaning no server, config, or skill as its primary subject, or a mixed monorepo root whose critical findings all come from outside every identified MCP bundle), the verdict floors at REVIEW with an explicit "not an MCP target" note telling you to scope vetting to the server or skill directory. Findings are still reported as evidence; a critical inside an identified bundle still verdicts DO-NOT-INSTALL.
Live mode (probe) has its own verdict rules, deliberately capped: any scoring signal (a parity drift or a fingerprint match) makes the verdict REVIEW, a clean double probe verdicts VETTED, and no usable evidence verdicts REVIEW as inconclusive. Live evidence never yields DO-NOT-INSTALL: a fingerprint match is grounds for a human look, not a hard fail. Two negative controls are explicit: a probe refused for auth reasons is recorded as a pass on that probe (a server demanding credentials is doing the minimum right), and a timeout records no signal at all.
mcpvet mcp serves a stdio MCP server with three tools:
| Tool | What it does |
|---|---|
| vet_path | Vet a local MCP server directory, skill directory, or client config tree before install |
| vet_package | Vet an npm package by name using registry metadata only: the tarball is not downloaded and no code runs |
| probe_server | Live-probe a stdio server command (spawns it twice): probe parity, exact-hash fingerprints, and the derived risk score. This tool EXECUTES the command it is given |
probe (or the probe_server MCP tool) spawns the given command twice on the machine running mcpvet. Run it only against commands you already trust enough to execute locally.Part of the Security Wave: hookcheck (persistence hooks), actionpin (Actions pinning), injectcheck (prompt injection in agent-read content), tracewatch (observability and root cause), mcpvet (pre-install vetting).
MIT.
If mcpvet saved you time, star this repo: it helps other developers find it.