Skip to main content
Glama
README.md
# CyberMCP

**A free, open-source [Model Context Protocol](https://modelcontextprotocol.io)
server that gives AI assistants a toolbox of recon and defensive
cybersecurity tools.**

Point Claude Desktop, Claude Code, or any other MCP-compatible client at
CyberMCP and it can look up DNS records, enumerate subdomains from
certificate transparency logs, check TLS certificate expiry, audit HTTP
security headers, look up CVEs, identify hash formats, estimate password
strength, and more โ€” all through natural conversation.

> โš ๏ธ **Scope:** CyberMCP is for **authorized** security testing, OSINT, and
> education. It ships no exploits and no attack automation. See
> [SECURITY.md](SECURITY.md) for the responsible-use policy.

## Features

- ๐Ÿ”Ž **DNS & WHOIS** โ€” `dns_lookup`, `reverse_dns`, `whois_lookup`
- ๐Ÿ•ต๏ธ **Passive OSINT** โ€” `enumerate_subdomains` via certificate transparency (crt.sh), zero contact with the target
- ๐Ÿ” **TLS inspection** โ€” `check_ssl`: validity, expiry, issuer, SANs, cipher/version
- ๐Ÿ›ก๏ธ **HTTP security headers** โ€” `check_http_security_headers`: HSTS, CSP, X-Frame-Options, and more, with a 0โ€“100 score
- ๐Ÿงช **CVE intel** โ€” `lookup_cve`, `search_cves` against the NIST NVD API
- ๐Ÿงฐ **Offline toolbox** โ€” `compute_hashes`, `identify_hash`, `estimate_password_strength`, `encode_text`/`decode_text`
- ๐Ÿšง **Authorization-gated port scanning** โ€” `scan_ports` refuses to run unless explicitly told `authorized=True`
- โœ… Full pytest suite, ruff lint, matrixed CI across Python 3.10โ€“3.12, tagged releases auto-published via GitHub Actions

See [docs/TOOLS.md](docs/TOOLS.md) for the full tool reference.

## Quick start

```bash
git clone https://github.com/Dacraezy1/CyberMCP.git
cd CyberMCP
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
```

Add it to Claude Desktop's config (see [docs/INSTALL.md](docs/INSTALL.md) for
full details and Claude Code instructions):

```json
{
  "mcpServers": {
    "cybermcp": {
      "command": "/absolute/path/to/CyberMCP/.venv/bin/python",
      "args": ["-m", "cybermcp.server"]
    }
  }
}
```

Restart Claude Desktop, then just ask:

> "Check the SSL cert on example.com and tell me when it expires."
>
> "Search NVD for CVEs related to Log4j."
>
> "What does crt.sh show for subdomains of my-domain.org?"

More examples in [docs/USAGE.md](docs/USAGE.md).

## Project layout

```
CyberMCP/
โ”œโ”€โ”€ cybermcp/
โ”‚   โ”œโ”€โ”€ server.py          # MCP server + tool registration (FastMCP)
โ”‚   โ””โ”€โ”€ tools/              # One module per tool, independently testable
โ”œโ”€โ”€ tests/                   # pytest suite
โ”œโ”€โ”€ docs/                    # INSTALL.md, USAGE.md, TOOLS.md
โ”œโ”€โ”€ examples/                 # Claude Desktop config example
โ””โ”€โ”€ .github/workflows/        # ci.yml (lint+test+build), release.yml (tag โ†’ GitHub Release)
```

## Development

```bash
pip install -e ".[dev]"
pytest -v
ruff check .
```

Pushing a tag like `v0.1.0` triggers the release workflow, which builds the
package and publishes it as a GitHub Release with the wheel/sdist attached.

## Contributing

PRs welcome โ€” see [CONTRIBUTING.md](CONTRIBUTING.md) for what's in/out of
scope and how to add a new tool. Please read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
and [SECURITY.md](SECURITY.md) first.

## License

[MIT](LICENSE) ยฉ Younes ([Dacraezy1](https://github.com/Dacraezy1))

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: DNS resolution vs reverse lookup, CVE lookup by ID vs keyword search, hash computation vs identification, and encode vs decode are all cleanly separated. Host-focused tools (scan_ports, check_ssl, check_http_security_headers) target different security aspects and are unlikely to be confused.

Naming Consistency4/5

Most names follow a clear snake_case verb_noun pattern (enumerate_subdomains, scan_ports, lookup_cve, compute_hashes, encode_text). A few early tools use noun_verb ordering (dns_lookup, whois_lookup, reverse_dns), which is a minor deviation but still readable and consistent in casing.

Tool Count5/5

The 14 tools are well-scoped for a cybersecurity utility server, covering distinct reconnaissance and helper functions without excessive redundancy. Each tool earns its place and the count stays within a manageable range.

Completeness4/5

The surface covers core cyber utilities: DNS/WHOIS, subdomain enumeration, port scan, TLS/HTTP header checks, CVE lookup/search, hashing, password strength, and encoding. Minor gaps exist (e.g., no IP reputation, HTTP request/fetch, or richer DNS enumeration), but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessSyncing