Skip to main content
Glama
rohitprasad-code

Bug Bounty Assistant MCP

πŸ§ͺ Bug Bounty Assistant MCP

An MCP (Model Context Protocol) server that gives an LLM a toolkit of passive and low-impact active reconnaissance tools for authorized bug bounty and security assessment work. The LLM decides which tools to call based on the target and context, then synthesizes findings into a structured report.

⚠️ Authorized use only. This tool is intended strictly for testing assets you own or have explicit written authorization to test (e.g. a program listed on HackerOne/Bugcrowd/Intigriti with the target in scope). Running these tools against systems without permission may violate laws such as the CFAA (US), Computer Misuse Act (UK), or equivalent legislation elsewhere. Always check the program's scope and rules of engagement before scanning.


Features

The server currently exposes the following tools to the calling LLM:

Tool

Description

get_dns_records

Resolves A/AAAA/MX/TXT/NS/CNAME/SOA records for a domain

find_subdomains

Enumerates subdomains via certificate transparency logs (crt.sh), passive DNS sources, and optional wordlist brute force

check_security_headers

Audits HTTP response headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, etc.)

analyze_cookies

Inspects cookies for Secure, HttpOnly, SameSite flags and flags risky configurations

ssl_scan

Checks TLS/SSL certificate validity, chain, protocol versions, and cipher suites

discover_robots

Fetches and parses robots.txt for disallowed paths that may hint at sensitive areas

discover_sitemap

Fetches and parses sitemap.xml for enumerable site structure

detect_technologies

Fingerprints frameworks, CMS, JS libraries, and server software (Wappalyzer-style detection)

find_interesting_endpoints

Crawls linked resources and JS files for endpoints, API routes, and parameters worth manual review

take_screenshot

Captures a visual snapshot of a page for quick triage of many hosts

generate_report

Aggregates all tool outputs into a structured Markdown/JSON recon report

Suggested additional tools (roadmap)

These extend the recon surface while staying passive/low-impact:

Tool

Description

whois_lookup

WHOIS/RDAP data β€” registrar, creation date, org, nameservers

check_cors_config

Tests for permissive/misconfigured CORS policies (reflected origin, wildcard + credentials)

check_open_redirect

Passive checks for common open-redirect parameter patterns

wayback_urls

Pulls historical URLs from the Wayback Machine / web.archive.org CDX API for old, forgotten, or removed endpoints

github_dork_search

Searches GitHub for leaked secrets, API keys, or internal references tied to the target domain/org

js_secret_scanner

Downloads and greps JS bundles for hardcoded API keys, tokens, internal hostnames

check_cname_takeover

Flags dangling CNAMEs pointing to unclaimed cloud resources (S3, Heroku, GitHub Pages, etc.)

port_scan_passive

Uses Shodan/Censys APIs (not direct scanning) to see already-indexed open ports/services

check_jwt_config

Decodes and analyzes JWTs found in requests for weak algorithms (alg: none) or missing expiry

rate_limit_probe

Sends a small number of requests to see if basic rate limiting exists (low volume, non-disruptive)

check_email_security

Validates SPF/DKIM/DMARC records for the domain

favicon_hash

Computes favicon hash (mmh3) for Shodan-style fingerprinting of related infrastructure

directory_wordlist_scan

Optional, opt-in, rate-limited content discovery against a small curated wordlist

check_graphql_introspection

Tests if GraphQL introspection is exposed on discovered API endpoints

subdomain_takeover_scan

Combines find_subdomains + check_cname_takeover for a full sweep

diff_scan

Compares current recon results to a previous run and highlights what changed (new subdomains, new headers, cert renewal, etc.)


Related MCP server: Bug Bounty MCP Server

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        MCP (stdio/HTTP)        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   LLM Host   β”‚ ──────────────────────────────▢│  Bug Bounty MCP      β”‚
β”‚ (Claude, etc)β”‚ ◀──────────────────────────────│  Server              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        tool calls/results        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                              β”‚
                                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                        β–Ό                     β–Ό                     β–Ό
                                 DNS / crt.sh          HTTP(S) client         Headless browser
                                 resolvers             (headers, ssl,        (screenshot,
                                                        robots, sitemap)      JS rendering)
  • Transport: stdio (default) or Streamable HTTP, per the MCP spec

  • Language: TypeScript (Node.js β‰₯ 18)

  • HTTP client: undici / axios

  • Headless browser: playwright (for take_screenshot, JS-rendered find_interesting_endpoints)

  • DNS: Node's built-in dns/promises, plus crt.sh queries for subdomain enumeration

  • Report output: Markdown by default, optional JSON


Project structure

bug-bounty-mcp/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts                # MCP server entrypoint, tool registration
β”‚   β”œβ”€β”€ tools/
β”‚   β”‚   β”œβ”€β”€ dns.ts
β”‚   β”‚   β”œβ”€β”€ subdomains.ts
β”‚   β”‚   β”œβ”€β”€ headers.ts
β”‚   β”‚   β”œβ”€β”€ cookies.ts
β”‚   β”‚   β”œβ”€β”€ ssl.ts
β”‚   β”‚   β”œβ”€β”€ robots.ts
β”‚   β”‚   β”œβ”€β”€ sitemap.ts
β”‚   β”‚   β”œβ”€β”€ technologies.ts
β”‚   β”‚   β”œβ”€β”€ endpoints.ts
β”‚   β”‚   β”œβ”€β”€ screenshot.ts
β”‚   β”‚   └── report.ts
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ http-client.ts      # shared fetch wrapper, timeouts, retries
β”‚   β”‚   β”œβ”€β”€ rate-limiter.ts     # global politeness/rate-limit control
β”‚   β”‚   β”œβ”€β”€ scope-guard.ts      # validates target is in an allow-listed scope
β”‚   β”‚   └── logger.ts
β”‚   └── types.ts
β”œβ”€β”€ tests/
β”œβ”€β”€ .env.example
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── README.md

Installation

Prerequisites

  • Node.js β‰₯ 18

  • npm or pnpm

  • (Optional) Playwright browsers for screenshots: npx playwright install chromium

Setup

git clone https://github.com/<your-username>/bug-bounty-mcp.git
cd bug-bounty-mcp
npm install
cp .env.example .env
npm run build

Run the server

npm start
# or in dev mode with hot reload
npm run dev

Register with an MCP host (e.g. Claude Desktop / Claude Code)

Add to your MCP config (claude_desktop_config.json or equivalent):

{
  "mcpServers": {
    "bug-bounty-assistant": {
      "command": "node",
      "args": ["/absolute/path/to/bug-bounty-mcp/dist/index.js"]
    }
  }
}

Configuration

Set these in .env:

# Comma-separated list of domains this server is allowed to scan.
# scope-guard.ts refuses to run tools against anything not listed here.
ALLOWED_SCOPE=example.com,*.example.com

# Requests per second ceiling applied globally (politeness)
MAX_REQUESTS_PER_SECOND=2

# Timeout (ms) for outbound HTTP requests
HTTP_TIMEOUT_MS=10000

# Optional API keys for enrichment tools
SHODAN_API_KEY=
CENSYS_API_ID=
CENSYS_API_SECRET=
GITHUB_TOKEN=

Scope guard: every tool call passes the target through scope-guard.ts, which checks it against ALLOWED_SCOPE and refuses to run if the target isn't explicitly listed. This is the main safety rail β€” update it per-engagement before you start testing.


Example usage

User: "Analyze example.com for bug bounty recon."

The LLM will typically:

  1. Call get_dns_records and find_subdomains to map infrastructure

  2. Call check_security_headers, analyze_cookies, and ssl_scan on discovered hosts

  3. Call discover_robots / discover_sitemap for structure hints

  4. Call detect_technologies to fingerprint the stack

  5. Call find_interesting_endpoints to surface API routes worth manual review

  6. Call take_screenshot for visual triage across many hosts

  7. Call generate_report to produce a single Markdown summary with findings, severity notes, and suggested next manual steps

Sample report output:

# Recon Report β€” example.com
Generated: 2026-07-10

## DNS
- A: 93.184.216.34
- MX: none found
- NS: a.iana-servers.net, b.iana-servers.net

## Subdomains (4 found)
- www.example.com
- dev.example.com  ⚠ exposed, no auth wall detected
- api.example.com
- mail.example.com

## Security Headers β€” www.example.com
- CSP: ❌ missing
- HSTS: βœ… present (max-age=63072000)
- X-Frame-Options: ❌ missing

## Recommendations
- Investigate dev.example.com β€” appears to be a non-production environment reachable externally
- Add CSP and X-Frame-Options headers on the main site

Roadmap

  • Add wayback_urls, github_dork_search, check_cname_takeover

  • Add per-tool caching to avoid re-hitting the same host repeatedly in one session

  • Add a diff_scan tool to compare against a prior report

  • Support authenticated scans (session cookie/header injection) for logged-in recon

  • Add Slack/Discord webhook output for generate_report

  • Docker image for one-command deployment


Contributing

  1. Fork the repo and create a feature branch

  2. Add or update tools under src/tools/

  3. Add tests under tests/

  4. Run npm run lint && npm test before opening a PR


This project performs reconnaissance only β€” no exploitation, no automated attack payloads, no denial-of-service behavior. It is the user's sole responsibility to:

  • Confirm the target is in scope for a bug bounty program or that they have explicit authorization to test it

  • Comply with the program's rules of engagement (rate limits, prohibited techniques, disclosure process)

  • Comply with local law

The maintainers accept no liability for misuse.

License

MIT

Available Tools

11 tools
analyze_cookiesB

Inspects cookies for Secure, HttpOnly, SameSite flags

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target URL or domain

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must cover behavioral traits. It omits whether the tool is read-only, what it returns (e.g., list of cookies with flags), and potential side effects. Only the action is stated, not the full behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with one sentence covering the core action. However, it could be expanded slightly without losing conciseness to include output or behavior details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It does not explain what the tool returns (e.g., a report of flag statuses) or any prerequisites, making it less useful for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'target', and the schema already describes it as 'The target URL or domain'. The description adds no additional semantics beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects cookies for Secure, HttpOnly, and SameSite flags, which is a specific verb-resource combination. It distinguishes from sibling tools like check_security_headers which focus on HTTP headers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking cookie security flags but does not explicitly state when to use versus alternatives. No when-not-to or comparison with siblings is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_security_headersB

Audits HTTP response headers (CSP, HSTS, X-Frame-Options, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target URL or domain

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only states the tool audits headers but does not mention whether it is read-only, any authentication requirements, rate limits, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that effectively communicates the core purpose without unnecessary words. It is front-loaded and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description provides a basic understanding but omits what the output looks like and any return value details. It is minimally complete for straightforward use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'target', which is already well-described. The description does not add further meaning or context beyond the schema, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool audits HTTP response headers and lists specific examples (CSP, HSTS, X-Frame-Options). It differentiates from siblings like 'analyze_cookies' or 'ssl_scan', which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lacks any context about prerequisites, when it is appropriate, or when to use sibling tools instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_technologiesB

Fingerprints frameworks, CMS, JS libraries, and web servers

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target URL or domain

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the action without disclosing side effects, permissions, rate limits, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise but lacks structure; it's front-loaded but omits important details, making it barely adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only one parameter and no output schema, the description should clarify expected output or usage context. It does not, leaving agent with insufficient information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (single 'target' param with description). Tool description adds no additional meaning beyond 'The target URL or domain', so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Fingerprints frameworks, CMS, JS libraries, and web servers' clearly states the tool's action (fingerprinting) and specific resource categories, distinguishing it from sibling tools like analyze_cookies or ssl_scan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or not use this tool, nor any mention of alternatives. Only implied usage from purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_robotsB

Fetches and parses robots.txt for disallowed paths and sitemaps

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target domain

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It only states it 'fetches and parses' without mentioning error handling, caching, redirect behavior, or what happens if robots.txt is missing. Insufficient for a tool with zero annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no unnecessary words. Efficiently conveys the core action and outputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimally adequate but could benefit from mentioning output format or edge cases. Falls short of fully preparing the agent for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema describes the single 'target' parameter as 'The target domain' with 100% coverage. The description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool fetches and parses robots.txt, specifying outputs as disallowed paths and sitemaps. This is a specific verb-resource combination and distinguishes from sibling tools like discover_sitemap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., discover_sitemap). No context about appropriate scenarios or exclusions, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_sitemapA

Fetches and parses sitemap.xml for site structure and URLs

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target domain

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as rate limits, authentication needs, error handling, or what happens if the sitemap is missing. It only states the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the action. Every word is necessary, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is somewhat complete for a simple parameter but lacks details on return format, error handling, or prerequisites (e.g., HTTPS). Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 100% (one parameter 'target' with description). The description does not add meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetches and parses'), the resource ('sitemap.xml'), and the output ('site structure and URLs'). It distinguishes from siblings like 'discover_robots' and 'find_subdomains'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining sitemap data, but lacks explicit guidance on when to use or not use this tool compared to alternatives. No exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_interesting_endpointsA

Scans the main page and linked scripts for links, forms, and API routes

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target URL or domain

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It reveals the tool is read-only (scans) and specifies the scope (main page and linked scripts), but does not disclose potential rate limits, timeouts, or whether it modifies state. More detail on behavior would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 10 words, front-loaded with the verb 'Scans'. Every word is informative with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should explain what the tool returns (e.g., list of endpoints). It only mentions what it scans for but not the format or structure of results, leaving a significant gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a description for the only parameter 'target'. The description does not add meaning beyond the schema's 'target URL or domain', so it meets the baseline without adding extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'scans' and the resource 'main page and linked scripts', and specifies what it finds: 'links, forms, and API routes'. This distinguishes it from sibling tools like detect_technologies or discover_sitemap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for discovering endpoints but provides no explicit guidance on when to use it vs alternatives (e.g., discover_sitemap, find_subdomains). No when-not-to-use or prerequisite information is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_subdomainsB

Enumerates subdomains via certificate transparency logs (crt.sh)

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target domain (e.g. example.com)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It reveals the use of CT logs, indicating passive enumeration, but lacks details on rate limits, completeness guarantees, or whether the operation is read-only. More behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the core action. It contains no filler and is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, no output schema), the description is minimally adequate. However, it omits details about the output format or what the return data looks like, which leaves some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter 'target' is already well-documented. The description adds no extra meaning beyond what the schema provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function: enumerating subdomains using certificate transparency logs. The verb 'Enumerates' and resource 'subdomains' are specific, and the mention of crt.sh distinguishes it from sibling tools like get_dns_records or ssl_scan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not specify prerequisites, limitations, or scenarios where it should be avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_reportA

Aggregates all tool outputs into a structured Markdown recon report

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe aggregated ReconReport data structure

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description lacks behavioral details such as whether the tool is read-only, destructive, or requires permissions. For a report generation tool, the absence of mutation warnings or safety context leaves the agent uninformed about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, front-loading the key action and output format. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool lacks an output schema and annotations, and the description does not specify what the tool returns (e.g., a Markdown string, a file path). It adequately describes input but leaves output behavior unexplained, limiting completeness for an aggregation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (parameter 'data' described as 'The aggregated ReconReport data structure'). The description adds no extra meaning beyond the schema; baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool aggregates all tool outputs into a structured Markdown recon report. It uses a specific verb ('aggregates') and resource ('tool outputs', 'Markdown recon report'), and distinguishes itself from sibling tools which are individual reconnaissance tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after running sibling tools but provides no explicit guidance on when to use or not use this tool, nor alternative tools. Usage context is inferred but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dns_recordsB

Resolves A/AAAA/MX/TXT/NS/CNAME/SOA records for a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target domain/hostname (e.g. example.com)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description is the sole source of behavioral info. It says 'resolves' but does not disclose rate limits, authentication requirements, side effects, or output format. This is minimal, leaving the agent without key behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous words. It is front-loaded with the key action and list of record types, making it efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate. However, it lacks any information about what the tool returns (e.g., raw DNS responses, parsed JSON), which is important for an agent to fully understand the tool's usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'target', which already has a description. The tool description adds no additional meaning or constraints beyond the schema, so it meets the baseline but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves specific DNS record types (A/AAAA/MX/TXT/NS/CNAME/SOA) for a domain, using a specific verb and resource. It distinguishes from sibling tools like find_subdomains or check_security_headers by focusing exclusively on DNS records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool vs. alternatives, such as find_subdomains or ssl_scan. It implies usage for DNS lookups but does not specify contexts, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ssl_scanA

Checks TLS/SSL certificate validity, chain, protocol versions, and cipher suites

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target domain/hostname

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

In the absence of annotations, the description carries the full burden. It states what is checked but does not disclose behavioral traits like network requirements, safety (read-only), or potential time consumption.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence with no wasted words, front-loading the action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, and the description does not explain the return format or error behavior. Given the simplicity, some guidance on output would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'target'. The description adds context about the tool's purpose but does not clarify parameter format (e.g., protocol requirement, IP vs hostname). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Checks' and the resource 'TLS/SSL certificate validity, chain, protocol versions, and cipher suites', clearly distinguishing it from sibling tools like analyze_cookies or check_security_headers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (e.g., for SSL health checks) but provides no explicit guidance on when to use or not use it, nor does it mention alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

take_screenshotC

Captures a browser snapshot of a page using Playwright

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe target URL or domain

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must bear full burden of behavioral disclosure. It mentions 'using Playwright' but fails to detail key behaviors like page load waiting, viewport settings, full-page vs viewport capture, or output format. This is severely insufficient for a screenshot tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence, 8 words), but it fails to include necessary information about behavior and output. While concise, it is not appropriately sized for the complexity of the tool, missing details that would aid the AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool performs a non-trivial action (Playwright screenshot), the description lacks essential context: no output schema or return value description, no mention of timeouts, page load state, or image format. This is inadequate for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter 'target' with a description ('The target URL or domain'). Schema coverage is 100%, so the description adds no additional meaning beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: capturing a browser snapshot using Playwright. The verb 'Captures' and resource 'browser snapshot of a page' are specific, and the tool is distinct from sibling tools (all security scanners, no screenshot tools), so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, common use cases, or when not to use it. Sibling tools are unrelated, so no differentiation needed, but still lacks usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updatesv1.0.0
    • First observedanalyze_cookies
    • First observedcheck_security_headers
    • First observeddetect_technologies
    • First observeddiscover_robots
    • First observeddiscover_sitemap
    • First observedfind_interesting_endpoints
    • First observedfind_subdomains
    • First observedgenerate_report
    • First observedget_dns_records
    • First observedssl_scan
    • First observedtake_screenshot

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct recon area (cookies, headers, technologies, etc.) with no overlap. An agent can clearly differentiate them.

Naming Consistency5/5

All names follow a consistent verb_noun pattern with underscores, e.g., analyze_cookies, check_security_headers. No mixing of conventions.

Tool Count5/5

11 tools is well-scoped for a bug bounty recon assistant. Each tool serves a clear purpose without being too many or too few.

Completeness4/5

Covers most common initial recon tasks: subdomain enumeration, DNS, SSL, headers, technologies, endpoints, and report generation. Minor gaps like port scanning or directory brute-forcing are absent but acceptable for this scope.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that integrates various penetration testing tools, enabling security professionals to perform reconnaissance, vulnerability scanning, and API testing through natural language commands in compatible LLM clients like Claude Desktop.
    7
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for automated bug bounty hunting and security reconnaissance, featuring over 28 specialized tools for subdomain discovery, vulnerability scanning, and traffic analysis. It integrates automated scope validation and professional reporting across multiple platforms like HackerOne and Bugcrowd to streamline security testing.
    5
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that exposes a 60+ tool security and threat-intel stack to AI agents, enabling secret scanning, Sigma rule generation, ransomware lookup, OSINT, and deep research.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server that exposes multiple OSINT tools to AI assistants like Claude, enabling sophisticated reconnaissance and information gathering tasks using industry-standard OSINT tools.
    237
    MIT

Latest Blog Posts

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/rohitprasad-code/recon-mcp'

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