Skip to main content
Glama

MCP Shamash

MCP Shamash - Security Audit & Compliance Server

A Model Context Protocol (MCP) server for security auditing, penetration testing, and compliance validation with strict project boundary enforcement.

Features

  • Project-Scoped Security Scanning: Never escapes project boundaries

  • Multiple Security Tools: Semgrep, Trivy, Gitleaks, OWASP ZAP, and more

  • Network Penetration Testing: Safe network scanning within project scope

  • Compliance Validation: OWASP, CIS, NIST, ISO 27001 frameworks

  • Containerized Execution: Isolated scanner execution with Docker

  • Parallel Processing: Concurrent scanner execution for speed

  • Intelligent Caching: Results cached for performance optimization

  • Token Efficiency: <1000 tokens per operation with monitoring

  • Comprehensive Audit Logging: Complete operation trails

  • Real-Time Boundary Enforcement: Multi-layer security isolation

Quick Start

Installation

npm install npm run build

Running the Server

npm start

Or for development:

npm run dev

Demo

Experience all features with the interactive demo:

node demo.js

This demonstrates:

  • Real security tool integration (Semgrep, Trivy, Gitleaks, OWASP ZAP)

  • Boundary enforcement (prevents external access)

  • Network scanning within project scope

  • Compliance validation (OWASP, CIS, NIST)

  • Caching performance improvements

  • Parallel scanner execution

MCP Integration

Configure in your MCP-compatible client:

{ "mcpServers": { "shamash": { "command": "node", "args": ["/path/to/mcp_shamash/dist/index.js"] } } }

Available Tools

scan_project

Comprehensive security scan of project directory.

{ "name": "scan_project", "arguments": { "path": "/path/to/project", "profile": "standard", "tools": ["semgrep", "trivy", "gitleaks"] } }

scan_network

Network scanning within project boundaries.

{ "name": "scan_network", "arguments": { "target": "127.0.0.1", "ports": "80,443", "serviceDetection": true } }

pentest_application

Penetration testing of deployed applications.

{ "name": "pentest_application", "arguments": { "targetUrl": "http://localhost:3000", "testTypes": ["sql_injection", "xss", "csrf"], "depth": "thorough" } }

check_compliance

Compliance framework validation.

{ "name": "check_compliance", "arguments": { "path": "/path/to/project", "frameworks": ["OWASP", "CIS", "NIST"] } }

Security Boundaries

Project Scope Detection

  • Automatic discovery of Docker Compose networks

  • Kubernetes service detection

  • Package.json analysis for Node.js apps

  • Local service enumeration

Multi-Layer Enforcement

  1. Path Validation: Prevents directory traversal

  2. Network Boundaries: CIDR-based network restrictions

  3. Container Isolation: Docker security hardening

  4. Resource Limits: Memory, CPU, and process constraints

Blocked Operations

  • System path access (/etc, /usr, /var)

  • External network scanning

  • Management port access (22, 3389, 445)

  • Privilege escalation attempts

Architecture

mcp-shamash/ ├── src/ │ ├── core/ # MCP server core │ ├── boundaries/ # Scope enforcement │ ├── scanners/ # Tool integrations │ ├── compliance/ # Framework validators │ └── utils/ # Token management, audit logging ├── containers/ # Docker configurations ├── rules/ # Security rules └── tests/ # Test suites

Development

Building

npm run build

Testing

npm test npm run test:coverage

Linting

npm run lint npm run format

Container Usage

Build Scanner Containers

# Build Semgrep scanner docker build -f containers/Dockerfile.semgrep -t shamash-semgrep . # Build all scanners docker-compose -f containers/docker-compose.scanners.yml build

Run Isolated Scan

# Set target path and run scan export SHAMASH_TARGET_PATH=/path/to/project docker-compose -f containers/docker-compose.scanners.yml up semgrep

Configuration

Environment Variables

  • SHAMASH_MAX_TOKENS_PER_SCAN: Token limit per scan (default: 1000)

  • SHAMASH_MAX_TOKENS_PER_HOUR: Hourly token limit (default: 50000)

  • SHAMASH_AUDIT_LOG_PATH: Audit log location (default: ./audit.log)

Project Configuration

Create .shamash.yml in project root:

networks: allowed: - 172.20.0.0/16 - 127.0.0.1/32 blocked: - 10.0.0.0/8 ports: allowed: [80, 443, 3000, 8080] blocked: [22, 3389, 445] tools: semgrep: config: "auto" timeout: 300 trivy: severity: "HIGH,CRITICAL" gitleaks: entropy_threshold: 4.5

Compliance Frameworks

OWASP Top 10 Coverage

  • A01: Broken Access Control

  • A02: Cryptographic Failures

  • A03: Injection

  • A04: Insecure Design

  • A05: Security Misconfiguration

  • A06: Vulnerable Components

  • A07: Authentication Failures

  • A08: Software/Data Integrity

  • A09: Security Logging

  • A10: Server-Side Request Forgery

CIS Controls

  • Inventory and Control of Assets

  • Access Control Management

  • Continuous Vulnerability Management

  • Network Infrastructure Management

  • Data Protection

NIST Cybersecurity Framework

  • Identify: Asset management, governance

  • Protect: Access control, data security

  • Detect: Security monitoring, detection processes

  • Respond: Response planning, incident management

  • Recover: Recovery planning, improvements

Security Considerations

Defensive Only

  • No offensive capabilities

  • Read-only filesystem operations

  • No credential harvesting

  • Audit trail for all operations

Boundary Enforcement

  • Multiple validation layers

  • Real-time monitoring

  • Automatic violation detection

  • Emergency shutdown capability

Token Management

  • Per-scan limits (1000 tokens)

  • Rate limiting (5000/minute, 50000/hour)

  • Usage tracking and reporting

License

MIT License

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Add tests for new functionality

  4. Ensure all tests pass

  5. Submit a pull request

Support

For issues and questions:

  • Create an issue on GitHub

  • Check the audit logs for troubleshooting

  • Review boundary enforcement logs

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NeoTecDigital/mcp_shamash'

If you have feedback or need assistance with the MCP directory API, please join our Discord server