loading…
Search for a command to run...
loading…
Detect live website vulnerabilities and security flaws in GitHub repositories using automated DAST and SAST scanning. Safeguard applications by identifying expo
Detect live website vulnerabilities and security flaws in GitHub repositories using automated DAST and SAST scanning. Safeguard applications by identifying exposed secrets, insecure dependencies, and common code patterns prone to exploitation. Receive structured fix plans with precise code remediation steps to resolve identified risks and improve security posture.
Scan websites and GitHub repositories for security vulnerabilities. AI analyzes root causes, generates fix code with before/after diffs, and creates one-click Fix PRs.
Live: https://www.trust-scan.me
| Free | Pro ($9.9/mo) | |
|---|---|---|
| URL Scans | 5/month | Unlimited |
| Repo Scans | 3/month | Unlimited |
| AI Analysis | 2 per scan | Unlimited |
| Auto-Fix PR | - | Yes |
| Scheduled Scans | - | Yes |
| PDF/CSV Export | - | Yes |
Install with a single command in Claude Code, Cursor IDE, and other MCP clients to get real-time security feedback while coding.
claude mcp add --transport http trust-security "https://trust-mcp-144011703035.asia-northeast3.run.app/mcp"
Add to your config file:
{
"mcpServers": {
"trust-security": {
"type": "http",
"url": "https://trust-mcp-144011703035.asia-northeast3.run.app/mcp"
}
}
}
| Tool | Description | Example |
|---|---|---|
scan_and_wait |
Scan website + wait for results (recommended) | "Scan https://my-app.com" |
scan_url |
Start website scan (async) | "Start a scan" |
get_scan_result |
Get URL scan results | "Show scan results" |
scan_repo_and_wait |
Scan GitHub repo + wait for results (recommended) | "Security scan this repo" |
scan_repo |
Start repo scan (async) | "Start repo scan" |
get_repo_scan_result |
Get repo scan results | "Show repo scan results" |
analyze_code_security |
Analyze code vulnerabilities + secrets (37+ patterns) | "Check this code for security issues" |
check_secrets |
Detect API keys/passwords (20+ patterns) | "Any exposed keys in this code?" |
Context resources automatically read by AI agents.
| Resource URI | Description |
|---|---|
trust://scans/latest |
Most recent scan result (score, grade, vulnerability count) |
trust://scans/history |
Last 10 scan history |
trust://security/posture |
Security posture summary (average score, trends, grade distribution) |
| Area | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS 4, Framer Motion |
| Backend | FastAPI, Python 3.11+, Nuclei, Semgrep, Gitleaks |
| Database | Supabase (PostgreSQL + Auth + RLS) |
| AI | Claude API (Anthropic) — Sonnet for analysis |
| Payment | Paddle (Pro subscription) |
| Deployment | Vercel (Frontend), Cloud Run (Backend + MCP) |
.
├── app/ # Next.js App Router
│ ├── page.tsx # Landing (URL / Repo scan)
│ ├── report/[scanId]/ # Scan report page
│ ├── history/ # Scan history
│ ├── pricing/ # Pricing
│ ├── why-trust/ # Why Trust marketing
│ ├── auth/ # OAuth callbacks (Supabase, GitHub)
│ ├── mcp/ # MCP setup guide
│ ├── error.tsx # Error boundary
│ └── not-found.tsx # 404 page
├── components/
│ ├── trust/ # Main view components
│ │ ├── client-app.tsx # Main app state management
│ │ ├── dashboard-view.tsx # Scan result dashboard
│ │ ├── landing-view.tsx # Landing view
│ │ ├── scanning-view.tsx # Scan progress view
│ │ ├── UpgradeModal.tsx # Go Pro modal
│ │ ├── NotificationToggle.tsx # Push notification toggle
│ │ ├── OnboardingTour.tsx # Onboarding tour
│ │ └── dashboard/
│ │ ├── CreateFixPRModal.tsx # Fix PR modal
│ │ ├── FixPromptModal.tsx # Fix Prompt modal
│ │ ├── ScheduleSection.tsx # Scheduled scan management
│ │ ├── DigestSection.tsx # Weekly digest settings
│ │ ├── BadgeSection.tsx # Trust Badge
│ │ ├── VulnerabilityList.tsx # Vulnerability list
│ │ └── ExportPanel.tsx # PDF/CSV export
│ └── ui/ # Shared UI (shadcn/ui)
├── lib/
│ ├── api.ts # Backend API client
│ ├── types.ts # TypeScript type definitions
│ ├── supabase.ts # Supabase client
│ └── subscription.ts # Pro subscription state management
│
├── backend/ # FastAPI Backend
│ ├── app/
│ │ ├── main.py # FastAPI entrypoint
│ │ ├── config.py # Configuration
│ │ ├── limiter.py # Rate limiting
│ │ ├── api/routes/
│ │ │ ├── scan.py # URL scan API
│ │ │ ├── repo_scan.py # GitHub repo scan API
│ │ │ ├── analyze.py # AI analysis API
│ │ │ ├── github.py # GitHub integration + Fix PR API
│ │ │ ├── github_webhook.py # GitHub webhook handler
│ │ │ ├── badge.py # Trust Badge API
│ │ │ ├── billing_webhook.py # Paddle billing webhook
│ │ │ ├── notifications.py # Notification settings API
│ │ │ └── scheduled_scans.py # Scheduled scan API
│ │ └── services/
│ │ ├── nuclei_scanner.py
│ │ ├── semgrep_scanner.py
│ │ ├── gitleaks_scanner.py
│ │ ├── repo_scanner.py # Unified repo scanner
│ │ ├── claude_analyzer.py # AI analysis (Claude)
│ │ ├── github_service.py # GitHub API service
│ │ ├── supabase_client.py # DB service
│ │ ├── scheduler.py # Scheduled scan scheduler
│ │ └── notifier.py # Email/Slack/digest notifications
│ ├── Dockerfile
│ └── requirements.txt
│
├── mcp-server/ # MCP Server (standalone service)
│ ├── server.py
│ ├── Dockerfile
│ └── requirements.txt
│
├── public/
│ └── sw.js # Push Notification Service Worker
│
└── docs/ # Documentation
├── README.ko.md # Korean documentation
├── ROADMAP.md
├── HANDOVER_CONTEXT_AWARE_FIX.md
└── REQUIREMENTS_UNIVERSAL_AUTO_FIX.md
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/scan |
Start URL scan |
GET |
/api/scan/{scan_id} |
Get scan status/results |
GET |
/api/scan/{scan_id}/export |
Export PDF/CSV |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/repo-scan |
Start GitHub repo scan |
GET |
/api/repo-scan/{scan_id} |
Get repo scan status/results |
POST |
/api/repo-scan/{scan_id}/analyze |
Run AI analysis |
POST |
/api/repo-scan/{scan_id}/fix-prompt |
Generate fix prompt |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/github/connection |
Check GitHub connection status |
POST |
/api/github/connect |
Connect GitHub OAuth |
POST |
/api/github/create-fix-pr |
Create fix PR |
POST |
/api/github/fix-feedback |
Submit fix quality feedback |
DELETE |
/api/github/connection |
Disconnect GitHub |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/analyze/{scan_id} |
Start AI analysis |
GET |
/api/analyze/{vuln_id} |
Get analysis results |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/badge/{scan_id} |
Issue badge |
GET |
/api/badge/{badge_id} |
Get badge SVG |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/scheduled-scans |
Create scheduled scan |
GET |
/api/scheduled-scans |
List scheduled scans |
DELETE |
/api/scheduled-scans/{id} |
Delete scheduled scan |
POST |
/api/cron/run-schedules |
Execute schedules (Cloud Scheduler) |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/scans/history |
Get scan history |
GET |
/api/notifications/settings |
Get notification settings |
PUT |
/api/notifications/settings |
Update notification settings |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/billing/webhook |
Paddle billing webhook |
POST |
/webhooks/github |
GitHub PR event webhook |
git clone --recurse-submodules https://github.com/Jaden-JJH/trust-security-scanner.git
cd trust-security-scanner
npm install
cp .env.example .env.local
npm run dev
Environment Variables (.env.local)
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_GITHUB_APP_CLIENT_ID=your-github-app-client-id
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reload --port 8000
Auto-deploys on push to main branch via GitHub integration.
cd backend
gcloud builds submit --tag gcr.io/[PROJECT_ID]/trust-backend
gcloud run deploy trust-backend \
--image gcr.io/[PROJECT_ID]/trust-backend \
--platform managed --region asia-northeast3 \
--allow-unauthenticated
MIT License
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"trust-security": {
"command": "npx",
"args": []
}
}
}