Content
# obscura-mcp
[Obscura](https://obscura.dev) browser connected to **Claude Desktop tools** as MCP server.
Commands like "take a screenshot of this URL", "summarize page content" are executed directly by Claude.
**Probe CLI** is also built-in to quantitatively measure evasion performance in stealth mode.
## Tool List
| Tool | Description |
|------|------|
| `screenshot` | Returns URL page as PNG screenshot |
| `fetch_markdown` | Converts page body to Markdown and returns |
| `probe_stealth` | Measures evasion rate by comparing stealth/normal modes |
## Requirements
- [Rust](https://rust-lang.org/tools/install/) 1.85 or higher
- [Obscura](https://github.com/h4ckf0r0day/obscura) installed (path to `obscura.exe` required)
## Installation
```bash
git clone https://github.com/your-org/obscura-mcp
cd obscura-mcp
cargo build --release
```
Build result: `target/release/obscura-mcp.exe`
## Claude Desktop Integration
Add to `%APPDATA%\Claude\claude_desktop_config.json`.
```json
{
"mcpServers": {
"obscura": {
"command": "C:/path/to/obscura-mcp.exe",
"env": {
"OBSCURA_PATH": "C:/obscura/obscura.exe"
}
}
}
}
```
Restart Claude Desktop to see `screenshot`, `fetch_markdown`, `probe_stealth` tools in the wrench icon.
### Usage Examples
> "take a screenshot of https://example.com"
> "summarize https://news.ycombinator.com page content in Markdown"
> "test stealth mode evasion for https://example.com"
## Probe CLI
Measures evasion performance directly from command line without MCP server.
```bash
# Default (Markdown report)
obscura-mcp probe https://example.com https://target.com
# Run 4 concurrent probes
obscura-mcp probe --concurrency 4 https://site1.com https://site2.com
# JSON output
obscura-mcp probe --format json https://example.com
# CI mode: exit code 1 if pass_rate < 90%
obscura-mcp probe --threshold 90 --format markdown https://example.com
```
### Specifying Obscura Path
```bash
# Flag
obscura-mcp --obscura-path "C:\obscura\obscura.exe" probe https://example.com
# Environment variable
set OBSCURA_PATH=C:\obscura\obscura.exe
obscura-mcp probe https://example.com
```
### Report Output Example
```
# Obscura Stealth Detection Report
**pass_rate: 92.0%** (23/25 passed)
| URL | Stealth | Normal | HTTP | Webdriver | Improvement |
|-----|---------|--------|------|-----------|-------------|
| https://example.com | PASS | BLOCK | 200 | hidden | ✓ |
| https://target.com | PASS | PASS | 200 | hidden | |
```
## Architecture
```
main.rs
├── mcp.rs MCP JSON-RPC stdio server (Claude Desktop connector)
├── obscura.rs ObscuraHandle — CDP WebSocket session management
├── judge.rs JudgeResult — HTTP status, blocked keywords, webdriver judgment
├── probe.rs probe_url — sequential comparison of stealth/normal modes
├── runner.rs run_parallel — Semaphore-based parallel execution
└── report.rs Report — JSON / Markdown / HTML output, CI exit code
```
### Judgment Signals (judge.rs)
The probe combines three signals to determine blocking.
| Signal | Method |
|------|------|
| HTTP status code | Navigation Timing API (`performance.getEntriesByType`) |
| Blocked keywords | Search for "Access Denied", "cf-challenge", etc. in entire HTML |
| `navigator.webdriver` | Direct JS evaluation using `Runtime.evaluate` |
## GitHub Actions Integration
```yaml
- name: Stealth probe
run: |
obscura-mcp probe \
--concurrency 4 \
--threshold 80 \
--format markdown \
https://example.com >> $GITHUB_STEP_SUMMARY
env:
OBSCURA_PATH: /usr/local/bin/obscura
```
If `--threshold` is not met, the step fails (exit code 1) and the build is terminated.
## License
MIT
Connection Info
You Might Also Like
ai-native-pm-os
The exhaustive guide to mastering Claude for Product Managers. Build your...
Train-in-Silence
The first Task-Aware MCP server and automated VRAM calculator for LLM...
stacklit
108,000 lines of code. 4,000 tokens of index. One command makes any repo...
AppClaw
AI-powered mobile automation agent — describe what you want in plain...
pdf-mcp
Production-ready MCP server for PDF processing with intelligent caching....
kotadb
Local-only code intelligence API for AI developer workflows (Bun +...