Search / io.github.pipeworx-io/feodotracker
Feodotracker
R0· no sign-inFeodo Tracker MCP — botnet C&C IP blocklist from abuse.ch.
v0.1.2 · active · repository · website · descriptor JSON · versions
Search / io.github.pipeworx-io/feodotracker
R0· no sign-inFeodo Tracker MCP — botnet C&C IP blocklist from abuse.ch.
v0.1.2 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"feodotracker": {
"type": "http",
"url": "https://gateway.pipeworx.io/feodotracker/mcp"
}
}
}claude mcp add --transport http feodotracker https://gateway.pipeworx.io/feodotracker/mcp[mcp_servers.feodotracker]
url = "https://gateway.pipeworx.io/feodotracker/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"feodotracker": {
"type": "remote",
"url": "https://gateway.pipeworx.io/feodotracker/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"feodotracker": {
"type": "http",
"url": "https://gateway.pipeworx.io/feodotracker/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=feodotracker&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZ2F0ZXdheS5waXBld29yeC5pby9mZW9kb3RyYWNrZXIvbWNwIn0%3D"
}{
"servers": {
"feodotracker": {
"type": "http",
"url": "https://gateway.pipeworx.io/feodotracker/mcp"
}
}
}{
"mcpServers": {
"feodotracker": {
"httpUrl": "https://gateway.pipeworx.io/feodotracker/mcp"
}
}
}extensions:
"feodotracker":
enabled: true
name: "feodotracker"
type: streamable_http
uri: "https://gateway.pipeworx.io/feodotracker/mcp"
timeout: 300
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagekalshi_weather_edgeremovedPrices Kalshi daily high-temperature markets against the NWS forecast for the market's OWN settlement station, and measures whether that forecast actually beats the market. Two modes. LIVE (default): returns the full strike ladder for one city and settlement date with market_prob (mid), forecast_prob, and edge_pp per strike, plus the settlement clause verbatim. BACKTEST (`backtest_days: N`): scores an archived gridded forecast against the market on settled days and returns brier_market vs brier_forecast with a plain-English `verdict`, so the edge is MEASURED rather than asserted. READ THE WARNINGS — they are not boilerplate. (1) These markets DO NOT settle on the NWS. They settle on The Weather Company (weather.com) at a Kalshi station code such as CLINYC, which the response quotes verbatim; so part of every edge_pp is NWS-vs-Weather-Company disagreement about the same day at the same station, which is not mispricing and not tradeable. `settlement_vs_forecast_basis_f` from backtest mode is that part as a number. (2) The station is DERIVED from the settlement clause, never from the city name: Chicago settles at MIDWAY and New York at CENTRAL PARK, so a city-centre forecast would misprice a whole ladder. A station that cannot be resolved yields rows with no forecast and a reason, never a guessed coordinate. (3) forecast_prob assumes a normal distribution around the NWS high whose width is ASSUMED, not fitted (stated in `distribution_assumption`) — run backtest mode to see whether it is calibrated. (4) edge_pp is gross: no Kalshi fees, no bid-ask. MEASURED RESULT, AND IT IS NOT THE FLATTERING ONE: on the first backtest (KXHIGHNY, 13 settled days to 2026-09-11, 58 market observations) the MARKET beat the forecast — Brier 0.1008 for the market against 0.1594 for the archived gridded forecast, lower being better. So on that sample there is NO forecast edge to sell, and a large edge_pp is more likely to be the model disagreeing with a better-informed market than an opportunity. The measured settlement-vs-forecast basis was 1.7F mean absolute over 8 pinnable days, slightly warm-biased, which is a big share of a typical edge_pp on a 2-degree bracket. Re-run backtest_days before believing any edge; if a later sample reverses this, the numbers say so. NWS is US-only, so the ~30 international Kalshi weather series (London, Paris, Tokyo) return market prices with forecast_unavailable rather than a forecast. Precipitation series are listed but not yet priced. Cities: nyc, chicago, los angeles, miami, austin, houston, denver, philadelphia — or pass `series_ticker` for any other (e.g. "KXHIGHTBOS").
ask_pipeworx_betaremovedBeta version of ask_pipeworx: identical universal router (same 6,981 tools, same arguments, same response shape) with candidate routing improvements enabled live whenever one is under test. No candidate is active right now (the last was retired on outcome evidence 2026-07-26), so this currently matches ask_pipeworx exactly. Use it exactly like ask_pipeworx when you want the newest routing; results are compared against the stable router to decide what merges. Falls back to nothing — this IS a full working router, just the experimental edge.
archive_compareremovedWhat changed on a web page between two dates? Resolves the archived capture nearest each date (Internet Archive Wayback Machine, Common Crawl, Arquivo.pt), extracts the readable text of both, and returns a text-level diff: the segments removed and added, a similarity score, and both capture timestamps with their gaps from the requested dates. It diffs readable text, not markup, so a restyled page with the same words reads changed:false. Identical captures answer changed:false with the reason (same capture, identical content digest, or identical text), never an empty diff. A date with no capture within max_gap_days (default 30) answers status "no_capture", naming which side is missing and the nearest captures to it. Typical uses: how a privacy policy, terms of service, pricing or product page changed; whether a statement was on a page at a given time.
recentremovedBlocklist entries first seen in the last N hours.
check_ipremovedCheck whether a given IPv4 is on the current blocklist.
listremovedCurrent C&C blocklist (optional malware-family / status filter).
recallremovedRetrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's target ticker, an address, prior research notes — without re-deriving it from scratch. Scoped to your identifier (anonymous IP, BYO key hash, or account ID). Pair with remember to save, forget to delete.
generate_llms_txtremovedGenerate a production-ready llms.txt file for any URL so AI crawlers (ChatGPT, Claude, Perplexity) can index the site cleanly. Fetches the page, extracts title/description/key links, and emits the standard llms.txt markdown format. Output is a single text blob ready to drop at site-root/llms.txt. Useful for: getting a client's site indexed by AI, drafting llms.txt for your own project, or auditing how an AI crawler would see a competitor.
suggest_questionsremovedWhat can I ask Pipeworx? / what is Pipeworx good for? / what can you do? / give me ideas / show me examples / getting started / what data do you have? — the onboarding entry point for an agent that just connected and wants to know what is worth asking. Returns category-bucketed example questions (company financials, drugs & clinical trials, economics, real estate, prediction markets, weather, government & patents, science & academia, news) — each with the exact tool + argument shape that answers it, drawn from the live catalog of thousands of tools. Call with no arguments for the full spread, or pass `topic` (e.g. "finance", "pharma", "betting") to focus. Use this FIRST when you do not yet know what Pipeworx can do for you, or to learn how to call the meta-tools (ask_pipeworx, entity_profile, compare_entities, etc.).
research_rowremovedClaygent-style per-row research: answer ONE question about ONE company and return a JSON object matching your output_schema, with every field wrapped in its own evidence — {value, evidence_url, quote, status}. status is NEVER self-reported by the model: "found" means this code independently verified the model's quote is a VERBATIM substring of text actually fetched; "inferred" means a value was given but the quote could not be verified; "not_established" means no source answered the field, and its value is always null — never guessed, never a blended score. Sources: "web" fetches the company's own site (entity.domain required — homepage, /about, /leadership) via fetch_url; "catalog" checks entity_profile (SEC EDGAR; resolved:false for a private company is expected, not a failure); "both" (default) tries both. max_cost (USD, default 0.02, max 0.50) scales how many pages are fetched and refuses up front if it is too small to pay for even one extraction call (floor $0.002) — never silently overspends. A row where every source comes back empty costs nothing: every field is mechanically not_established with NO model call made. For a boolean/derived field (e.g. "does this company sell to healthcare"), the quote only has to SUPPORT the value — a descriptive sentence about customers/products counts, the source need not state the answer verbatim. leadership_page_status ("fetched"|"not_found"|"not_attempted", plus leadership_note) says plainly whether a leadership/team page was actually read, so a named-person field (head_of_sales) coming back not_established is distinguishable from "this company just doesn't publish one" vs. "we never checked". model_output_empty:true means the model returned nothing usable (a transport/budget problem) — every field is not_established for THAT reason, never read as 20 individual "no" judgments. Use with a fixed question + schema across many rows for "Claygent over N companies with a hard cost cap" (composes with batch callers). For picking from a fixed label list instead of extracting open fields, use classify_row (cheaper, one model call).
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-97% +updated-23d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://gateway.pipeworx.io/feodotracker/mcp streamable-http | none | yes | 97% | 45 ms | 2025-03-26 | 2026-10-19 |
No tools observed. Tools appear once a credential-free probe can list them.
Schemas: list_tools.
And 1,847 more from this publisher.
{
"name": "io.github.pipeworx-io/feodotracker",
"title": "Feodotracker",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://gateway.pipeworx.io/feodotracker/mcp",
"type": "streamable-http"
}
],
"version": "0.1.2",
"repository": {
"url": "https://github.com/pipeworx-io/mcp-feodotracker",
"source": "github"
},
"websiteUrl": "https://pipeworx.io/packs/feodotracker",
"description": "Feodo Tracker MCP — botnet C&C IP blocklist from abuse.ch."
}