SecureMCP
SecureMCP is a security auditing tool designed to detect vulnerabilities and misconfigurations in applications using the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction). It proactively identifies threats like OAuth token leakage, prompt injection vulnerabilities, rogue MCP servers, and tool poisoning attacks.
GitHub Stars
130
User Rating
Not Rated
Favorites
0
Views
24
Forks
12
Issues
3
SecureMCP
SecureMCP is a comprehensive security auditing tool designed to detect vulnerabilities and misconfigurations in applications using the Model Context Protocol (MCP). It proactively identifies threats like OAuth token leakage, prompt injection vulnerabilities, rogue MCP servers, and tool poisoning attacks.
๐ก๏ธ Features
OAuth Token Scanner
- Token format validation and security checks
- Expiration and scope analysis
- Storage security assessment
- Token endpoint validation
- JWT token analysis
Prompt Injection Tester
- Multiple injection payload types
- Various injection positions testing
- Response analysis
- System prompt override detection
- Role confusion attack detection
Authentication & Server Integrity Check
- SSL/TLS configuration validation
- Authentication method testing
- Security header verification
- Server security assessment
- HSTS and CSP validation
Report Generation
- HTML and JSON report formats
- Vulnerability classification
- Severity assessment
- Remediation suggestions
- Summary statistics
๐จโ๐ป Who Should Use SecureMCP?
- AI Developers integrating MCP in applications
- Security teams securing AI model interactions
- DevSecOps engineers embedding MCP in CI/CD pipelines
- Researchers studying AI model vulnerabilities
- Security auditors assessing MCP implementations
๐ Getting Started
Prerequisites
- Go 1.21+
- Docker (optional, for containerized deployment)
- Node.js (for dashboard UI)
Installation
From Source
git clone https://github.com/makalin/SecureMCP.git
cd SecureMCP
make build
Using Docker
docker pull makalin/SecureMCP
Basic Usage
Command Line
# Basic scan
./securemcp scan --target https://your-mcp-server.com
# Scan with specific options
./securemcp scan --target https://your-mcp-server.com \
--scan-oauth \
--scan-prompt-injection \
--scan-authentication \
--timeout 30s
# Generate HTML report
./securemcp scan --target https://your-mcp-server.com --report html
# Generate JSON report
./securemcp scan --target https://your-mcp-server.com --report json
Programmatic Usage
import "github.com/makalin/SecureMCP/internal/scanner"
// Create scanner instance
scanner := scanner.NewScanner()
// Basic scan
results, err := scanner.Scan("https://your-mcp-server.com")
// Scan with options
options := &scanner.ScanOptions{
ScanOAuth: true,
ScanPromptInjection: true,
ScanAuthentication: true,
TestPrompt: "your test prompt",
Timeout: 30 * time.Second,
}
results, err := scanner.ScanWithOptions(target, options)
Report Generation
import "github.com/makalin/SecureMCP/internal/report"
// Create report generator
generator := report.NewReportGenerator("reports")
// Generate report
report, err := generator.GenerateReport(target, results)
// Save as HTML
err = generator.SaveReport(report, "html")
// Save as JSON
err = generator.SaveReport(report, "json")
๐ Example Output
Command Line
$ ./securemcp scan --target https://example-mcp-server.com
[+] Scanning Target: https://example-mcp-server.com
[!] Token storage vulnerability detected
[!] Prompt Injection vulnerability found in tool 'AutoSummary'
[!] Insecure authentication method detected
[+] Report saved to /reports/scan_2024_03_14_15_30_45.html
HTML Report
The HTML report includes:
- Summary statistics
- Vulnerability details
- Severity levels
- Remediation suggestions
- Scan metadata
JSON Report
{
"target": "https://example-mcp-server.com",
"scan_time": "2024-03-14T15:30:45Z",
"vulnerabilities": [
{
"type": "OAuth Token Vulnerability",
"severity": "high",
"description": "Token storage vulnerability detected",
"location": "https://example-mcp-server.com",
"remediation": "Implement secure token storage and proper token validation"
}
],
"summary": {
"total_vulnerabilities": 3,
"critical_count": 0,
"high_count": 1,
"medium_count": 1,
"low_count": 1
}
}
๐ ๏ธ Development
Project Structure
SecureMCP/
โโโ cmd/
โ โโโ securemcp/ # Command-line interface
โโโ internal/
โ โโโ scanner/ # Core scanning functionality
โ โ โโโ oauth.go # OAuth token scanning
โ โ โโโ prompt.go # Prompt injection testing
โ โ โโโ auth.go # Authentication checks
โ โ โโโ scanner.go # Main scanner implementation
โ โโโ report/ # Report generation
โโโ config/ # Configuration management
โโโ Dockerfile # Container configuration
โโโ Makefile # Build and development tasks
Building
# Build binary
make build
# Run tests
make test
# Build Docker image
make docker-build
# Run in Docker
make docker-run
๐ข Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ License
๐ Links
Protect your MCP applications before they get exploited. ๐ช Use SecureMCP!
27
Followers
281
Repositories
9
Gists
0
Total Contributions
The Fenrir Code Audit Tool is an innovative code auditing tool based on the MCP protocol and AST technology. It efficiently conducts security analysis on large and complex codebases, offering precise code search capabilities utilizing AST. By integrating with AI, it allows security researchers and AI to converse in the same code context, enhancing the safety of the code.