Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Tells your coding agent whether your installed packages need patching, with advice on what to do.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://mcp.keepmesecure.dev/mcp打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"keep-me-secure": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/robertkeus/keep-me-secure-mcp:v1.7.0"
]
}
}
}在终端中运行这条命令
claude mcp add --transport http keep-me-secure https://mcp.keepmesecure.dev/mcpclaude mcp add keep-me-secure -- docker run -i --rm ghcr.io/robertkeus/keep-me-secure-mcp:v1.7.0粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"keep-me-secure": {
"url": "https://mcp.keepmesecure.dev/mcp"
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"keep-me-secure": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/robertkeus/keep-me-secure-mcp:v1.7.0"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"keep-me-secure": {
"type": "http",
"url": "https://mcp.keepmesecure.dev/mcp"
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"keep-me-secure": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/robertkeus/keep-me-secure-mcp:v1.7.0"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://mcp.keepmesecure.dev/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。
check_packagesUse for questions like 'is my stack secure?' or 'do we have vulnerable packages?'. Checks a list of exact installed package versions against public security advisories. Read them from the project's lockfiles, including transitive packages. Up to 500 per call; call again for more.
check_platformLists known security incidents at hosting, deployment and AI platforms, with what to do and a link to the source. Use when the user asks about a platform or breach. Omit name to list all. The list is curated and not complete, so no result doesn't mean a platform is safe.
check_runtimeChecks a Node.js or PHP version against known security flaws in the runtime itself. Use with the exact version, for example from `node --version` or `php --version`. The list is curated, so no findings doesn't prove a version is safe.
check_packageChecks one exact package version against public security advisories.
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 robertkeus 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
在 160 毫秒内响应(HTTP 200)
无需登录
已读取 4 个工具描述,未发现针对 AI 的隐藏指令
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(1.7.0)于昨天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, 御府和田玉 在售作品查询
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ 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.
Live in-stock Hetian jade from Yufu, Shanghai: prices, monthly price guide, book a viewing.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Ask your coding agent "Is my stack secure?" and get a yes or no, with what to do next.
Website · Changelog · Contributing · Security · MIT license
It's a free, open source MCP server. It checks every package in your lockfiles against public security advisories, including the ones you didn't install directly.
Keep using it: it's great at opening fix pull requests, and this can set it up for you. Keep Me Secure adds flaws in Node.js and PHP themselves, support end dates, platform breaches and OS packages in Dockerfiles, and it answers in your coding session, on your working copy.
Add it to Claude Code. You need Node.js 22 or newer, and no account or Docker.
claude plugin install keep-me-secure --marketplace robertkeus/keep-me-secure-mcp
Now it checks by itself when you start coding, once a day per project. You can also ask your agent at any time:
Is my stack secure?
It never changes anything without your OK.
| Claude Code plugin | Docker | Hosted URL | |
|---|---|---|---|
| Best for | Daily use in Claude Code | Other agents, isolation | Trying it, small projects |
| You need | Node.js 22 or newer | Docker | Nothing |
| Daily check | Yes | Yes | No, you ask |
| Who reads your lockfiles | The plugin, on your machine | The container, on your machine | Your agent, which sends the list to our server |
| Coverage | Every package | Every package | What your agent sends |
Run this in your project:
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD:/workspace" ghcr.io/robertkeus/keep-me-secure-mcp:latest init
This adds or updates three files:
| File | Purpose |
|---|---|
.mcp.json | Registers the MCP server |
.claude/settings.json | Claude Code hook that runs the check when a session starts |
AGENTS.md | Tells other agents to run the check at the start of a session |
The config pins the image version, so a new release never reaches your project unannounced. Run the command again to upgrade.
For other agents, keep the AGENTS.md rule: in testing, Codex only called the tool when that rule was present.
Codex
In ~/.codex/config.toml:
[mcp_servers.keep-me-secure]
command = "sh" args = ["-c", "exec docker run -i --rm --read-only --cap-drop=ALL --security-opt=no-new-privileges -v \"$PWD:/workspace:ro\" -v kms-cache:/cache ghcr.io/robertkeus/keep-me-secure-mcp:latest"]
opencode
In opencode.json:
{
"mcp": { "keep-me-secure": { "type": "local", "command": ["sh", "-c", "exec docker run -i --rm --read-only --cap-drop=ALL --security-opt=no-new-privileges -v \"$PWD:/workspace:ro\" -v kms-cache:/cache ghcr.io/robertkeus/keep-me-secure-mcp:latest"], "enabled": true } } }
Tested with Claude Code, Codex and opencode. Cursor and other MCP clients should work with the same command, but haven't been tested. The agent must start in your project folder, because $PWD is what gets scanned.
Add https://mcp.keepmesecure.dev/mcp as a remote MCP server in your agent. No account or token is needed, and each IP address gets 20 checks per minute.
| Language | Reads |
|---|---|
| PHP | composer.lock |
| JavaScript | package-lock.json, pnpm-lock.yaml, yarn.lock |
| Python | requirements*.txt, poetry.lock, uv.lock |
| Go | go.mod |
| Rust | Cargo.lock |
| Ruby | Gemfile.lock |
| Java, Kotlin | gradle.lockfile |
| .NET | packages.lock.json |
Lockfiles in test and example folders (such as test, spec, fixtures and examples) are skipped, because they usually don't ship. They're listed in coverage.ignored, and check_project still checks one if you name it with path.
Maven has no lockfile, so pom.xml projects return unknown. So do Gradle and .NET projects with locking turned off.
Flaws in the runtime itself don't appear in your lockfile. In October 2026, Node.js and PHP both shipped fixes for flaws that CISA lists as exploited. So Keep Me Secure also reads the versions your project declares:
| Runtime | Reads |
|---|---|
| Node.js | .nvmrc, .node-version, .tool-versions, volta and engines in package.json, FROM node: in a Dockerfile |
| PHP | .php-version, .tool-versions, config.platform.php and require.php in composer.json, FROM php: in a Dockerfile |
affected: that version has the flaw, or its release line got no fix. The session-start message mentions these.unverified: the repo only shows a range or a floating tag such as php:8.5, so the patch version can't be read. These appear in check_project, not the session-start message.check_runtime takes an exact version, for example from php --version.These don't change the yes or no, but they show up in check_project.
now show how to let that one fix through.check_project, which it may do when a session starts.It reads each Dockerfile or Containerfile for the base image and its OS, end-of-life OS versions, floating tags such as latest, whether the image runs as root, and OS packages installed with apk or apt.
A Dockerfile doesn't show exact package versions or what's really running, so anything it finds is unverified. To be sure, scan the built image with a tool such as Trivy or Grype. System advisories are a curated list, starting with the OpenSSH password bypass on Alpine.
Ask your agent to set it up. suggest_dependabot returns a .github/dependabot.yml for your package managers and Dockerfiles, and your agent writes it with your OK. It uses a 2 day cooldown, which makes routine updates wait. GitHub doesn't apply cooldowns to security updates, so fixes aren't delayed.
Packages aren't the only risk. In October 2026 alone, several developer and AI platforms disclosed incidents where customer secrets may have been exposed. If your project uses one, Keep Me Secure tells you what happened and what to do, with a link to the source.
railway.toml, vercel.json, zbpack.json and trigger.config.ts, and for packages such as @trigger.dev/sdk. Platforms that leave no trace in a repo aren't detected, so ask your agent, for example "Was Northflank breached?".check_platform always shows all of them. Platform incidents are reported separately and don't change the package verdict.To add an incident, open a pull request that edits src/platforms.ts and links the company's own statement.
| Tool | Question it answers | Input |
|---|---|---|
check_project (local) | Is my stack secure? Do I need to patch anything? | ecosystem, path and refresh, all optional |
check_packages (hosted) | Is my stack secure? | packages, a list of up to 500 |
check_package | Is this exact version safe? | ecosystem, name, version |
check_platform | Was this platform breached? | name, optional. Omit it to list all |
check_runtime | Is this Node.js or PHP version safe? | runtime, version |
suggest_dependabot (local) | Can you set up Dependabot? | None |
Example result, shortened:
{
"verdict": "yes", "urgency": "today", "findings": [{ "package": "guzzlehttp/guzzle", "installed": "7.4.0", "fixed_in": "7.15.2", "direct": true, "severity": "HIGH", "exploited": false, "advice": "Upgrade guzzlehttp/guzzle to 7.15.2 or later.", "command": "composer update guzzlehttp/guzzle --with-dependencies" }], "coverage": { "scanned": 2, "by_ecosystem": { "Packagist": 2 }, "private": ["acme/internal"], "unchecked": [] } }
yes: at least one installed version has a known advisory.no: every package was checked and none has a known advisory.unknown: the check was incomplete, for example a missing lockfile, an unsupported ecosystem or a failed lookup. coverage.unchecked says why. Don't read this as safe.now: a malicious package, or a vulnerability in the CISA KEV list of actively exploited issues.today: critical, high or unrated severity.this_week: everything else.For malicious packages, upgrading isn't enough. The advice is to remove the package, rotate secrets and check for changes it may have made.
The full statement is at keepmesecure.dev/privacy. This project is provided as is and used at your own risk, as set out in the terms.
只显示了开头部分;其余内容请在仓库中阅读