Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Run security checks against your own MCP server in CI, and see the findings in GitHub

说明与用途

protocolprobe-selftest 工具启动您自己的 MCP 服务器,作为客户端连接,执行运行时检查,并输出可通过 SARIF 集成到 GitHub Actions 的结果。

问题

Most MCP security tooling only reads server tool descriptions and cannot observe actual runtime behavior of a server when a client calls it.

结果

The tool provides a runtime check of an MCP server, reporting passed, failed, and not-run checks, and can integrate findings into GitHub code scanning via SARIF.

工作流

  • 1. Install the tool via npx protocolprobe-selftest.
  • 2. Run the tool with --i-own-this-server and --stdio followed by the server command (e.g., node ./dist/server.js).
  • 3. For mutating or fuzzing checks, add --allow-mutating and --allow-fuzzing and output to a JSON file.
  • 4. In CI, add --fail-on-finding and --sarif to generate a SARIF file and fail the job on vulnerabilities.
  • 5. Upload the SARIF file with github/codeql-action/upload-sarif@v3 using if: always() to ensure upload even on failures.
  • 6. For deployed servers, use --url to prove ownership, add the proof line to the server’s instructions, and re-run within 30 minutes.

证据

Most MCP security tooling reads a server's tool descriptions. That finds text that looks suspicious. It does not tell you what your server does when a client calls it.

来源

This post is about a small command-line tool that does the second thing, for a server you run: it starts your server, connects as an MCP client, calls it, and reports what it observed.

来源

npx protocolprobe-selftest --i-own-this-server --stdio node ./dist/server.js

来源

--fail-on-finding makes the job exit with code 5 when a check needs attention (VULNERABLE or FOUND). Without it the exit code is 0 whatever the result.

来源

I have not run this exact workflow end to end for this post; the command line and the exit-code behaviour are from the tool's tests and documentation.

来源

  • 记录日期: 2026-11-02T04:14:09.757Z