Run security checks against your own MCP server in CI, and see the findings in GitHub
Описание и применение
Инструмент protocolprobe-selftest запускает ваш собственный сервер MCP, подключается к нему как клиент, выполняет набор проверок и выводит результаты, которые можно интегрировать в GitHub Actions через SARIF.
Задача
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