About Ohey
Ohey provides remote MCP servers for exploring its web-malware research and feed, and for checking CVEs or scanning URLs. Security researchers can use its no-sign-in research server or connect an Ohey account for feed and API tools.
Key features
- 01Browse malware techniques, kits and research
- 02Search ClickFix hosts and EtherHiding contracts
- 03Look up feed hosts and scan captures
- 04Read vulnerability and CVE data
- 05Scan URLs and inspect results
Use cases
- 01Research infrastructure associated with a malware technique
- 02Check a host against Ohey’s feed and captures
- 03Review CVE details or scan a suspicious URL
MCP support
Ohey offers two remote Streamable HTTP MCP servers: a public research server and an account-authenticated feed and API server. They expose threat research, host and vulnerability lookups, and URL scanning tools.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://ohey.ca/mcpclaude mcp add --transport http ca-ohey-ohey https://ohey.ca/mcp{"mcpServers":{"ca-ohey-ohey":{"type":"http","url":"https://ohey.ca/mcp"}}}Open in Cursor{"servers":{"ca-ohey-ohey":{"type":"http","url":"https://ohey.ca/mcp"}}}Open in VS Code{"mcpServers":{"ca-ohey-ohey":{"type":"http","url":"https://ohey.ca/mcp"}}}{"mcpServers":{"ca-ohey-ohey":{"serverUrl":"https://ohey.ca/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEOhey MCP servers
Ohey scans websites for injected malware: ClickFix and fake update lures, skimmers, phishing kits, EtherHiding loaders, and the C2 and distribution servers behind them. There are two remote MCP servers (Streamable HTTP).
| Server | URL | Sign-in |
|---|---|---|
| Research | https://ohey.ca/mcp/research | None |
| Feed and API | https://ohey.ca/mcp | Ohey account with API access |
Install
Both servers are remote Streamable HTTP servers, so there is nothing to
download. The examples add the research server; for the feed server, use
the name ohey and the URL https://ohey.ca/mcp, and the client opens
ohey.ca to sign in the first time.
Both are in the MCP Registry
as ca.ohey/research and ca.ohey/ohey.
Claude
Web, desktop and mobile: Settings, Connectors, Add custom connector, then paste the URL.
Claude Code:
claude mcp add --transport http ohey-research https://ohey.ca/mcp/research
ChatGPT
Custom MCP servers need developer mode, which OpenAI offers on some plans and has moved between settings pages; a Business or Enterprise admin may have to allow custom connectors first.
- Turn on developer mode in ChatGPT's settings.
- Add a custom connector (or app), give it a name and paste the URL.
- Set Authentication to No authentication for the research server, or OAuth for the feed server.
- In a new chat, turn the connector on from the tools menu.
OpenAI Codex
codex mcp add ohey-research --url https://ohey.ca/mcp/research
For the feed server, add it with --url https://ohey.ca/mcp, then run
codex mcp login ohey to sign in. Or in ~/.codex/config.toml:
[mcp_servers.ohey-research]
url = "https://ohey.ca/mcp/research"
Gemini CLI
gemini mcp add --transport http ohey-research https://ohey.ca/mcp/research
Or in settings.json, under mcpServers:
"ohey-research": { "httpUrl": "https://ohey.ca/mcp/research" }
For the feed server, run /mcp auth ohey in the CLI to sign in.
Cursor
In ~/.cursor/mcp.json, or .cursor/mcp.json in a project:
{
"mcpServers": {
"ohey-research": { "url": "https://ohey.ca/mcp/research" }
}
}
VS Code (GitHub Copilot)
code --add-mcp '{"name":"ohey-research","type":"http","url":"https://ohey.ca/mcp/research"}'
Or run MCP: Add Server, choose HTTP and paste the URL. The JSON form, in
.vscode/mcp.json or your user mcp.json:
{
"servers": {
"ohey-research": { "type": "http", "url": "https://ohey.ca/mcp/research" }
}
}
Other clients
Any client that supports remote MCP servers over Streamable HTTP takes the
URL as is. Most read an mcpServers object with a url (some call the
field serverUrl or httpUrl). A client that only runs local stdio
servers can reach either one through
mcp-remote:
{
"mcpServers": {
"ohey-research": { "command": "npx", "args": ["-y", "mcp-remote", "https://ohey.ca/mcp/research"] }
}
}
Research server
The research Ohey publishes on ohey.ca/threats and ohey.ca/research, as tools. Anyone can connect, with no sign-in.
| Tool | What it does |
|---|---|
list_threats | Every technique, with its page, a summary, site counts and its kits. |
get_threat | A technique or kit: sites matched by month, how many were still infected when rescanned, WordPress and Joomla shares, common plugins, kits seen on the same sites, its EtherHiding contracts, its ClickFix command hosts and articles. |
list_research_articles | Research articles, newest first. |
get_article | One article's summary, key facts (hashes, active window, scale) and its indicators of compromise, as Markdown. |
search_clickfix_commands | Hosts that ClickFix lure commands fetch from, by kit or host, with the latest command for each, defanged. |
search_etherhiding_contracts | Contracts that compromised sites read their next stage from, by kit, chain or destination host. |
get_etherhiding_contract | One contract's destinations over time. |
get_feed_stats | Feed size, last week's additions and removals, and the capture archive. |
Counts update daily from Ohey's scans. Both search tools take offset to
page past limit, and sort: "firstSeen" for the newest first. A host
search that finds nothing returns a coverage note: the trackers list only
contract destinations and command hosts, so a miss means "not tracked", not
"clean". Checking any host against the full feed is the feed server's job.
Hosts and commands are live malware infrastructure. They come defanged
([.], hxxp), and results that carry commands include a notice for
the person reading. Refang or run them only in an isolated research
environment. See the terms.
Feed and API server
Ohey's API as tools: look up any host, search the feed, read CVEs and scan URLs. You sign in with your Ohey account, so there is no API key to copy. Ask for an account with API access at ohey.ca/contact.
Connect it the same way as the research server, with https://ohey.ca/mcp
as the URL (Install). Signing in opens ohey.ca; approve the
connection there and the client gets access. Clients register themselves
from the server's OAuth metadata, so there is no client ID to set.
Tools
| Tool | What it does |
|---|---|
search_indicators | Hosts in the feed, filtered by tag or family, with roles, families, tags and the reason each was admitted. |
get_host | A host's feed entry, vulnerable software from its latest capture, its captures summary and DNS records. |
get_host_captures | Each time the scanner loaded the host: when, what it returned and what matched. |
list_delisted | Hosts that review excluded or took out of the feed, with the reason and who decided. |
get_vulnerability | One CVE with its NVD, EPSS, KEV, GitHub and OSV data. |
list_vulnerabilities | Published CVEs in order, or only WordPress plugin, theme and core CVEs. |
start_scan | Loads a URL in Ohey's scanner and records what it finds. |
get_scan | The scan result: whether the page is malicious, what matched, commands and clipboard writes it tried to plant, and suspected C2. |
The scan tools appear only when you tick "Scan URLs" while approving. Scans count against your account.
Access and revoking it
Approving a client creates an API key named after it, under Account in the Ohey portal. Tool calls are rate limited and counted against that key like any API request. Revoke the key to disconnect the client.
The full API, with every response field, is documented at ohey.ca/docs.
Security
Report security issues to [email protected]. See security.txt.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.