github re-analysis due

j17drake/propprofessor-mcp

github

MCP server that surfaces sharp-money movement across 36 sportsbooks — signal feed, not betting oracle.

maintainer
j17drake
license
MIT
first seen
2026-06-04
last seen
2026-06-17
releases · 30d
25
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 15 tools
transport stdio counts 15 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • all_slates

    Consolidated ranked list across multiple leagues.

  • ev_candidates

    Fast +EV discovery (secondary; validate on /screen).

  • find_best_price

    Every book's odds sorted best→worst with spread from best price.

  • get_play_details

    Full detail (line history, consensus, movement) for specific game IDs. Use after compact screen query.

  • health_status

    Auth freshness, endpoint connectivity.

  • league_presets

    Sport-specific ranking presets.

  • player_context

    News, tweets, riskFlag for a player. Nitter RSS → X → Google News RSS → ESPN fallback. Source authority scoring.

  • recommended_bets

    TIER 1/2 plays across leagues with movementGrade, riskScore, kaiCall, rationale.

  • screen

    League-specific ranked rows (NBA, MLB, NHL, NFL, WNBA, UFC, Soccer, NCAAB, NCAAF, Tennis).

  • screen_ranked

    Primary. Hydrated ranked rows with consensus, movement, freshness. Supports compact, fields, include, skipHistory.

  • screen_raw

    Raw odds payload. bestComps: true for sharper comparison books.

  • sharp_consensus

    Multi-window (1h–48h) sharp book consensus analysis.

  • sharp_plays

    Target-book plays (Fliff, NoVigApp) with supportive non-target sharp movement.

  • staking_plan

    Fractional Kelly stakes (TIER 1=2%, TIER 2=1% of bankroll).

  • ufc_card

    First-class shortlist with official plays, best looks, passes.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit b46b1d1 · analyzer v17 · 3d ago

skills & prompt files 1

code evidence vv2.0.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 9

  • fs j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-auth.js :3 const fs = require('fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-picks.js :3 const fs = require('node:fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-source-authority.js :3 const fs = require('fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/scripts/backtest.js :25 const fs = require('node:fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/scripts/check-claims.js :33 const fs = require('fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/scripts/check-version-consistency.js :3 const fs = require('fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/scripts/export-ranked-screen.js :3 const fs = require('fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/scripts/pp-login.js :4 const fs = require('node:fs');
  • fs j17drake-propprofessor-mcp-b46b1d1/scripts/query-propprofessor.js :5 const fs = require('node:fs');

shell / exec 5

  • shell j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-news-sources.js :3 const cp = require('child_process');
  • shell j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-player-context.js :3 const cp = require('child_process');
  • shell j17drake-propprofessor-mcp-b46b1d1/scripts/check-claims.js :35 const { execSync } = require('child_process');
  • shell j17drake-propprofessor-mcp-b46b1d1/scripts/prop-professor.exe.js :17 const { spawn } = require('child_process');
  • shell j17drake-propprofessor-mcp-b46b1d1/scripts/query-propprofessor.js :565 const { execSync } = require('child_process');

network 2

  • net j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-player-context.js :249 * @param {number} [options.maxAgeMinutes=60] - Max age of tweets/news to fetch (passed to RSS/news sources).
  • net j17drake-propprofessor-mcp-b46b1d1/lib/propprofessor-tennis.js :440 const response = await fetch(url, {

declared dependencies 8

  • got-scraping@^4.2.1
  • superjson@^2.2.6
  • @eslint/js@^9.0.0
  • c8@^11.0.0
  • eslint@^9.0.0
  • globals@^17.6.0
  • prettier@^3.8.3
  • playwright@^1.52.0