github Python re-analysis due

PaulieB14/graph-advocate

github

Graph Protocol routing agent — routes multi-agent data requests to Token API, Subgraph Registry, or Substreams

maintainer
PaulieB14
licence
first seen
2026-08-06
last seen
2026-09-15
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 3 tools
transport stdio · http · sse counts 3 tools · 0 res · 0 prompts permission surface via code analysis

tools

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

analyzed commit 24c26f8 · analyzer v33 · 1w ago

skills & prompt files 3

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

code files: 73

filesystem 23

  • fs PaulieB14-graph-advocate-24c26f8/a2a_server.py :17 from pathlib import Path
  • fs PaulieB14-graph-advocate-24c26f8/demo/dex_firehose.py :77 walk(json.load(open(path)))
  • fs PaulieB14-graph-advocate-24c26f8/generate_dashboard.py :148 with open(OUT, "w") as f:
  • fs PaulieB14-graph-advocate-24c26f8/mcp_server.py :23 for line in open(env_path):
  • fs PaulieB14-graph-advocate-24c26f8/outreach.py :24 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/agentexchange_register_and_discover.py :29 LOG = pathlib.Path(f"/tmp/ga-agentexchange-actions-{TS}.jsonl")
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/analyze_and_backfill_mcp_quality.py :30 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch2.py :33 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch3.py :14 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch4.py :17 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch5.py :13 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch7.py :24 from pathlib import Path
show 11 more
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_blockrun_otto.py :18 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/referral_outreach.py :17 LOG = pathlib.Path(f"/tmp/ga-referral-outreach-{TS}.jsonl")
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/referral_outreach_phase2.py :27 LOG = pathlib.Path(f"/tmp/ga-referral-outreach-phase2-{TS}.jsonl")
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/referral_outreach_phase2b.py :23 LOG = pathlib.Path(f"/tmp/ga-referral-outreach-phase2b-{TS}.jsonl")
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/reputation_v2/pull_base_feedback.py :12 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/reputation_v2/score.py :27 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/score_agent.py :20 from pathlib import Path
  • fs (weak) PaulieB14-graph-advocate-24c26f8/scripts/tkn-bulk-add.py :150 with open(args.file) as f:
  • fs PaulieB14-graph-advocate-24c26f8/test_advocate_routing.py :999 src = open("a2a_server.py", encoding="utf-8").read()
  • fs PaulieB14-graph-advocate-24c26f8/test_kalshi_reconciliation.py :181 # open ("50+ bps"), which is how Polymarket actually words them.
  • fs PaulieB14-graph-advocate-24c26f8/x402_dashboard.py :53 with open(CACHE_PATH) as f:

network 27

  • net PaulieB14-graph-advocate-24c26f8/a2a_server.py :4939 import httpx as _httpx_oc
  • net PaulieB14-graph-advocate-24c26f8/advocate.py :2120 import httpx as _httpx
  • net PaulieB14-graph-advocate-24c26f8/agent_score.py :38 import httpx
  • net PaulieB14-graph-advocate-24c26f8/cambrian_intel.py :39 import urllib.parse
  • net PaulieB14-graph-advocate-24c26f8/demo/send_paid_query.py :13 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/examples/a2a_client_example.py :6 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/examples/b20.py :29 import httpx
  • net PaulieB14-graph-advocate-24c26f8/hyperliquid_intel.py :29 import httpx
  • net PaulieB14-graph-advocate-24c26f8/kalshi.py :34 import httpx
  • net PaulieB14-graph-advocate-24c26f8/limitless_intel.py :26 import httpx
  • net PaulieB14-graph-advocate-24c26f8/outreach.py :26 from urllib.parse import urlparse
  • net PaulieB14-graph-advocate-24c26f8/polymarket_intel.py :29 import httpx
show 15 more
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/agentexchange_register_and_discover.py :21 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/agentverse_bridge.py :7 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/find_agents.py :6 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/generate_query_hints.py :21 import urllib.request
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch6_a2a.py :20 import urllib.parse
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/referral_outreach.py :14 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/referral_outreach_phase2.py :19 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/referral_outreach_phase2b.py :15 import httpx
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/reputation_v2/pull_base_feedback.py :13 import urllib.request
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/selfpay_refresh_bazaar_all.py :126 import urllib.request
  • net (weak) PaulieB14-graph-advocate-24c26f8/scripts/tkn-bulk-add.py :24 import urllib.request
  • net PaulieB14-graph-advocate-24c26f8/subgraph_exec.py :161 import httpx
  • net PaulieB14-graph-advocate-24c26f8/uniswap_intel.py :25 import httpx
  • net PaulieB14-graph-advocate-24c26f8/x402_dashboard.py :74 import httpx
  • net PaulieB14-graph-advocate-24c26f8/x402_outreach.py :161 import httpx as _httpx

secrets 17

  • secrets PaulieB14-graph-advocate-24c26f8/a2a_server.py :95 cdp_secret = os.environ.get("CDP_API_KEY_SECRET", "")
  • secrets PaulieB14-graph-advocate-24c26f8/advocate.py :2502 os.environ.get("GRAPH_API_KEY", "")
  • secrets PaulieB14-graph-advocate-24c26f8/agent_score.py :98 _GRAPH_API_KEY = os.environ.get("GRAPH_API_KEY", "")
  • secrets PaulieB14-graph-advocate-24c26f8/cambrian_intel.py :117 key = os.getenv("COINGECKO_API_KEY", "").strip()
  • secrets PaulieB14-graph-advocate-24c26f8/demo/test_pinax_ws.py :15 JWT = os.environ.get("TOKEN_API_JWT") or os.environ.get("TOKEN_API_ACCESS_TOKEN")
  • secrets PaulieB14-graph-advocate-24c26f8/hyperliquid_intel.py :72 or os.environ.get("TOKEN_API_ACCESS_TOKEN", "")
  • secrets PaulieB14-graph-advocate-24c26f8/kalshi.py :40 PINAX_JWT = os.environ.get("TOKEN_API_JWT") or os.environ.get("TOKEN_API_ACCESS_TOKEN") or ""
  • secrets PaulieB14-graph-advocate-24c26f8/limitless_intel.py :49 key = os.environ.get("LIMITLESS_API_KEY")
  • secrets PaulieB14-graph-advocate-24c26f8/outreach.py :385 "GraphAdvocateTool(x402_private_key=os.environ['X402_PRIVATE_KEY'])"
  • secrets PaulieB14-graph-advocate-24c26f8/polymarket_intel.py :73 or os.environ.get("TOKEN_API_ACCESS_TOKEN", "")
  • secrets (weak) PaulieB14-graph-advocate-24c26f8/scripts/find_agents.py :8 API_KEY = os.environ.get("AGENTVERSE_API_KEY", "")
  • secrets (weak) PaulieB14-graph-advocate-24c26f8/scripts/generate_query_hints.py :24 API_KEY = os.environ.get("GRAPH_API_KEY", "")
show 5 more
  • secrets (weak) PaulieB14-graph-advocate-24c26f8/scripts/oneoff_outreach_batch6_a2a.py :23 ADMIN_TOKEN = os.environ.get("ADMIN_TOKEN", "")
  • secrets (weak) PaulieB14-graph-advocate-24c26f8/scripts/reputation_v2/pull_base_feedback.py :16 API_KEY = os.environ.get("GRAPH_API_KEY") or os.environ.get("VITE_GRAPH_API_KEY")
  • secrets PaulieB14-graph-advocate-24c26f8/subgraph_exec.py :91 return os.environ.get("GRAPH_API_KEY") or os.environ.get("GATEWAY_API_KEY")
  • secrets PaulieB14-graph-advocate-24c26f8/uniswap_intel.py :71 k = os.getenv("GRAPH_API_KEY") or os.getenv("GRAPH_GATEWAY_API_KEY") or ""
  • secrets PaulieB14-graph-advocate-24c26f8/x402_dashboard.py :70 return os.environ.get("GRAPH_API_KEY") or os.environ.get("GATEWAY_API_KEY")

database 9

  • db PaulieB14-graph-advocate-24c26f8/a2a_server.py :202 import sqlite3 as _sq
  • db PaulieB14-graph-advocate-24c26f8/advocate.py :5 import sqlite3
  • db PaulieB14-graph-advocate-24c26f8/agent_score.py :32 import sqlite3
  • db PaulieB14-graph-advocate-24c26f8/dashboard.py :2 import sqlite3
  • db PaulieB14-graph-advocate-24c26f8/generate_dashboard.py :2 import sqlite3, json
  • db (weak) PaulieB14-graph-advocate-24c26f8/scripts/analyze_and_backfill_mcp_quality.py :27 import sqlite3
  • db (weak) PaulieB14-graph-advocate-24c26f8/scripts/generate_query_hints.py :18 import sqlite3
  • db (weak) PaulieB14-graph-advocate-24c26f8/scripts/quality_report.py :14 import sqlite3
  • db PaulieB14-graph-advocate-24c26f8/test_advocate_routing.py :1535 import sqlite3

tool registrations 4

  • route_data_request PaulieB14-graph-advocate-24c26f8/a2a_server.py :11943
  • route_data_request PaulieB14-graph-advocate-24c26f8/mcp_server.py :44
  • recommend_npm_package PaulieB14-graph-advocate-24c26f8/mcp_server.py :63
  • compare_graph_services PaulieB14-graph-advocate-24c26f8/mcp_server.py :79

declared dependencies 12

  • mcp@>=1.0.0,<2.0
  • anthropic@>=0.40.0,<1.0
  • a2a-sdk@>=0.3.0,<1.0.0
  • uvicorn@>=0.30.0,<1.0
  • starlette@>=0.40.0,<1.0
  • httpx@>=0.27.0,<1.0
  • PyNaCl@>=1.5.0,<2.0
  • uagents@>=0.13.0,<1.0
  • x402@[evm,fastapi]>=2.8.0,<2.9.0
  • cdp-sdk@>=1.40.0,<2.0
  • fastapi@>=0.115.0,<1.0
  • websockets@>=12.0

transport_posture 1

  • binds all interfaces (0.0.0.0) PaulieB14-graph-advocate-24c26f8/a2a_server.py :12270 host="0.0.0.0",