Graph Protocol routing agent — routes multi-agent data requests to Token API, Subgraph Registry, or Substreams
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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
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
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",