github Python analyzed b0bfb8a

rShetty/relay

github

MCP gateway proxy for varied backends

maintainer
rShetty
license
first seen
2026-08-14
last seen
2026-08-14
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 6 tools
transport stdio · streamable-http · http counts 6 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • gateway_auth_status
  • gateway_call_tool
  • gateway_connect_backend
  • gateway_list_backends
  • gateway_list_tools
  • proxy_call
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit b0bfb8a · analyzer v32 · 1h ago

danger signals2

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

code files: 30

filesystem 4

  • fs rShetty-relay-b0bfb8a/auth/database.py :20 from pathlib import Path
  • fs rShetty-relay-b0bfb8a/auth/encryption.py :31 with open(key_file, "rb") as f:
  • fs rShetty-relay-b0bfb8a/gateway/cli.py :102 with open(args.output, "w") as f:
  • fs rShetty-relay-b0bfb8a/security/middleware.py :404 with open(self.log_path, "a") as f:

shell / exec 1

  • shell rShetty-relay-b0bfb8a/backends/manager.py :17 import subprocess

network 10

  • net rShetty-relay-b0bfb8a/auth/oauth_providers.py :11 import urllib.parse
  • net rShetty-relay-b0bfb8a/backends/manager.py :226 import httpx
  • net rShetty-relay-b0bfb8a/connectors/ai_providers.py :17 import httpx
  • net rShetty-relay-b0bfb8a/connectors/github.py :29 import httpx
  • net rShetty-relay-b0bfb8a/connectors/linear.py :19 import httpx
  • net rShetty-relay-b0bfb8a/connectors/slack.py :8 import httpx
  • net rShetty-relay-b0bfb8a/gateway/cli.py :29 import requests
  • net rShetty-relay-b0bfb8a/patroclus/client.py :25 import httpx
  • net (weak) rShetty-relay-b0bfb8a/tests/test_gateway.py :23 import httpx
  • net (weak) rShetty-relay-b0bfb8a/tests/test_patroclus.py :157 import httpx

secrets 3

  • secrets rShetty-relay-b0bfb8a/auth/encryption.py :16 key_env = os.getenv("RELAY_ENCRYPTION_KEY")
  • secrets rShetty-relay-b0bfb8a/gateway/cli.py :172 api_key = args.api_key or os.getenv("GATEWAY_API_KEY")
  • secrets rShetty-relay-b0bfb8a/gateway/server.py :280 if not os.getenv("RELAY_ALLOW_DEFAULT_SECRET"):

database 3

  • db rShetty-relay-b0bfb8a/auth/database.py :16 import sqlite3
  • db rShetty-relay-b0bfb8a/auth/oauth.py :177 import redis as redis_lib # type: ignore[import]
  • db rShetty-relay-b0bfb8a/auth/token_store.py :152 import redis.asyncio as aioredis # type: ignore[import]

tool registrations 6

  • gateway_list_backends rShetty-relay-b0bfb8a/gateway/server.py :2878
  • gateway_list_tools rShetty-relay-b0bfb8a/gateway/server.py :2886
  • gateway_connect_backend rShetty-relay-b0bfb8a/gateway/server.py :2896
  • gateway_auth_status rShetty-relay-b0bfb8a/gateway/server.py :2907
  • gateway_call_tool rShetty-relay-b0bfb8a/gateway/server.py :2927
  • proxy_call rShetty-relay-b0bfb8a/gateway/server.py :3363

declared dependencies 21

  • mcp@>=1.0.0
  • fastapi@>=0.109.0
  • uvicorn@>=0.27.0
  • httpx@>=0.26.0
  • pydantic@>=2.5.0
  • pydantic-settings@>=2.1.0
  • python-jose@>=3.3.0
  • passlib@>=1.7.4
  • python-multipart@>=0.0.6
  • aiofiles@>=23.2.1
  • redis@>=5.0.0
  • sqlalchemy@>=2.0.0
  • aiosqlite@>=0.19.0
  • jinja2@>=3.1.0
  • cryptography@>=41.0.0
  • pytest@>=7.4.0
  • pytest-asyncio@>=0.21.0
  • pytest-cov@>=4.1.0
  • black@>=23.0.0
  • ruff@>=0.1.0
  • mypy@>=1.8.0