yeswehack-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YWH_PAT | No | A YesWeHack Personal Access Token (starts with ywh_pat_). | |
| YWH_TOKEN | No | A YesWeHack bearer token (from browser/API session). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| authenticateA | Authenticate with YesWeHack and store the session token locally. Call this first before using any other tool, or when a tool reports that authentication is required. Option 1 — Direct token: provide access_token to skip credential login entirely. Option 2 — API login: provide email + password for a fast, browser-free login. If your account has 2FA enabled, the first call will ask for a TOTP code; call again with the same email/password and add the totp argument. Option 3 — Browser: call with no arguments to open a browser window instead. You can also set the YWH_TOKEN environment variable to avoid calling this tool at all; it takes precedence over stored credentials. Args: access_token: A pre-obtained YesWeHack JWT/bearer token (highest priority). email: Your YesWeHack account email. password: Your YesWeHack account password. totp: 6-digit TOTP code (only needed when 2FA is enabled). |
| get_current_userA | Return the profile of the currently authenticated YesWeHack user. |
| list_programsA | List bug bounty programs you have access to, including private invite-only programs. Args: all_pages: If True (default), fetch all pages and return the complete list. page: Specific page to fetch when all_pages is False. private_only: If True, return only private (invite-only) programs. |
| get_programA | Get full details for a specific program, including scope, reward ranges, guidelines, requirements, out-of-scope rules, and disabled vulnerability types. Args: slug: The program slug/identifier (e.g. 'acme-corp'). Use list_programs to find slugs. |
| list_reportsB | List vulnerability reports submitted to a program. Args: program_slug: The program slug identifier. status: Optional status filter (e.g. 'accepted', 'informative', 'duplicate', 'wont_fix', 'new', 'triaged', 'not_applicable'). |
| get_reportB | Get full details of a specific vulnerability report. Args: report_id: The numeric report ID (from list_reports output). |
| list_report_commentsA | List comments/messages for a vulnerability report when your token has access. Args: report_id: The numeric report ID. raw: Return raw JSON instead of a readable summary. |
| list_email_aliasesA | List your YesWeHack email aliases. YesWeHack requires KYC verification for alias usage. The exact UI endpoint is not publicly documented, so this tool tries the known API shapes and reports the attempted endpoints if none work. Args: raw: Return raw JSON instead of a readable summary. |
| get_program_credentialsA | Get credential pools and any assigned credentials for a specific program. Some programs expose credential pools only after you are invited/accepted and KYC-verified. If credentials require a request first, use request_program_credentials with the pool id shown by this tool. Args: program_slug: Program slug/identifier. include_secrets: Include passwords/secrets when the API returns them. raw: Return raw JSON instead of a readable summary. |
| request_program_credentialsA | Request credentials from a program credential pool. This performs a state-changing YesWeHack action. Use get_program_credentials first to find an available pool id. Some email-credential pools require an email address; pass either a YesWeHack alias or another allowed address. Args: program_slug: Program slug/identifier. pool_id: Optional credential pool id. If omitted, the generic program credential request endpoint is attempted. email: Optional email address for email-based credential pools. raw: Return raw JSON instead of a readable summary. |
| yeswehack_api_getA | Read an authenticated YesWeHack API endpoint that is not wrapped yet. This is a read-only escape hatch for API coverage gaps. Path must be a relative API path such as /programs/example or /reports/123. Args: path: Relative API path beginning with /. params_json: Optional JSON object of query parameters. |
| get_hacktivityA | Get the public YesWeHack hacktivity feed (publicly disclosed reports). No authentication required. Args: page: Page number (default 1). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Most tools pair a distinct resource with a clear verb (list_programs vs get_program, list_reports vs get_report, get_program_credentials vs request_program_credentials). The main ambiguity is yeswehack_api_get, a generic read-only escape hatch that conceptually overlaps with all dedicated getters, though its 'unwrapped endpoints only' framing reduces confusion.
The dominant verb_noun pattern is consistent (list_programs, get_report, request_program_credentials), but yeswehack_api_get reverses the order with a service prefix, and authenticate is a lone verb without a noun. These deviations are noticeable but not chaotic.
12 tools is well-scoped for a bug bounty platform client: authentication, programs, reports, comments, credentials, user profile, hacktivity, and one escape hatch. Each tool earns its place and the count is neither bloated nor thin.
The read surface is solid (programs, reports, comments, credentials, hacktivity), but state-changing operations central to the bug bounty workflow are missing: there is no way to submit a vulnerability report or post a comment on a report. The read-only escape hatch cannot fill these gaps, so researchers cannot complete a full workflow.