Security scanner for MCP (Model Context Protocol) servers
Project description
HEXIS MCP GUARD
Security scanner for MCP (Model Context Protocol) servers.
Install
pip install git+https://github.com/Noumenon-ai/hexis-mcp-guard.git
Or from source:
git clone https://github.com/Noumenon-ai/hexis-mcp-guard.git
cd hexis-mcp-guard
pip install -e ".[dev]"
Usage
hexis scan ./my-server/
hexis scan --format sarif -o results.sarif ./server/
hexis scan --format json ./server/
hexis scan --url http://localhost:8080 --dynamic
hexis scan ./server/ --ai
hexis scan ./server/ --ci --fail-on high
hexis scan ./server/ --baseline .hexis-baseline.json
hexis rules
Features
- 14 security rules (SSRF, shell injection, auth, prompt injection, resource exposure, transport)
- Static analysis + dynamic probing
- SARIF 2.1.0 output for GitHub Security tab
- JSON + rich terminal output
- CI/CD ready (exit codes)
- Optional AI reasoning (Claude)
Rules
| Rule | Severity | Category | Description |
|---|---|---|---|
| HEXIS-AUTH-001 | HIGH | auth | No authentication on transport |
| HEXIS-AUTH-002 | HIGH | auth | Missing authorization checks on sensitive tools |
| HEXIS-CMD-001 | CRITICAL | shell_injection | subprocess/exec with user input |
| HEXIS-CMD-002 | CRITICAL | shell_injection | shell=True with string interpolation |
| HEXIS-CMD-003 | CRITICAL | shell_injection | eval/exec on tool arguments |
| HEXIS-PI-001 | HIGH | prompt_injection | Tool description contains injection patterns |
| HEXIS-PI-002 | MEDIUM | prompt_injection | Return values flow unsanitized to LLM context |
| HEXIS-PI-003 | HIGH | prompt_injection | Tool poisoning via hidden instructions in descriptions |
| HEXIS-RES-001 | HIGH | resource_exposure | Unrestricted file system access |
| HEXIS-RES-002 | HIGH | resource_exposure | SQL query tool without parameterization |
| HEXIS-SSRF-001 | HIGH | ssrf | URL parameter in tool inputSchema without validation |
| HEXIS-SSRF-002 | CRITICAL | ssrf | Server-side fetch with user-controlled URL |
| HEXIS-SSRF-003 | CRITICAL | ssrf | Internal IP/metadata endpoint accessible |
| HEXIS-TLS-001 | MEDIUM | transport | Plaintext HTTP transport in production |
CI/CD Integration
GitHub Actions
- name: MCP Security Scan
run: |
pip install git+https://github.com/Noumenon-ai/hexis-mcp-guard.git
hexis scan ./src --format sarif --output results.sarif --ci --fail-on high
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
Exit Codes
| Code | Meaning |
|---|---|
| 0 | No HIGH/CRITICAL findings |
| 1 | HIGH findings detected |
| 2 | CRITICAL findings detected |
License
MIT
Built by Noumenon
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hexis_mcp_guard-0.1.0.tar.gz.
File metadata
- Download URL: hexis_mcp_guard-0.1.0.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5be2d2bdb0bd447b09c46e9ee8d2a01d475703994145e714830844281fc938a7
|
|
| MD5 |
229d56c78ad59777a3e03b3c501d1f79
|
|
| BLAKE2b-256 |
994a244edcab45f842e950387e74c8317fdbc8a227b19b2558fe3bb55719a2b4
|
Provenance
The following attestation bundles were made for hexis_mcp_guard-0.1.0.tar.gz:
Publisher:
publish.yml on Noumenon-ai/hexis-mcp-guard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hexis_mcp_guard-0.1.0.tar.gz -
Subject digest:
5be2d2bdb0bd447b09c46e9ee8d2a01d475703994145e714830844281fc938a7 - Sigstore transparency entry: 1797474302
- Sigstore integration time:
-
Permalink:
Noumenon-ai/hexis-mcp-guard@1c887dee5e6595c9c2a144b72a3c2805d4ad7ba7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Noumenon-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1c887dee5e6595c9c2a144b72a3c2805d4ad7ba7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hexis_mcp_guard-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hexis_mcp_guard-0.1.0-py3-none-any.whl
- Upload date:
- Size: 32.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1da56cd909fed0bf95154f9e643a827f48026489af1b9d25b5f7814a3990eaf
|
|
| MD5 |
e72168f6e0d29ea53b6a2077163694cd
|
|
| BLAKE2b-256 |
4569ac7bddb8608832904149a827a95481b62197e0814543ad235154134b9646
|
Provenance
The following attestation bundles were made for hexis_mcp_guard-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Noumenon-ai/hexis-mcp-guard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hexis_mcp_guard-0.1.0-py3-none-any.whl -
Subject digest:
a1da56cd909fed0bf95154f9e643a827f48026489af1b9d25b5f7814a3990eaf - Sigstore transparency entry: 1797474517
- Sigstore integration time:
-
Permalink:
Noumenon-ai/hexis-mcp-guard@1c887dee5e6595c9c2a144b72a3c2805d4ad7ba7 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Noumenon-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1c887dee5e6595c9c2a144b72a3c2805d4ad7ba7 -
Trigger Event:
push
-
Statement type: