dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
AgentAvow는 도구·MCP 서버·패키지에 서명된 안전 등급을 부여해 무료 검사·오프라인 검증·변경 알림 제공
AgentAvow gives any tool, MCP server, or package a signed, verifiable safety grade. Check it free, verify it offline, and get alerted the moment it changes.
보안Python · TypeScriptGitHub @AgentAvow온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Signed, verifiable safety grades for the tools your AI agents connect to.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Formerly AgentGraph. The signed attestation format, JWKS, and existing badges are unchanged.
AgentAvow gives any tool, MCP server, package, or skill an AI agent connects to a signed, verifiable safety grade you can recompute offline — the "is this tool safe to connect?" layer.
MCP Server — Trust & Security for AI Agents
Check the security posture of any agent or tool directly from Claude Code:
See sdk/mcp-server/ for setup and full tool list.
The remote MCP server is live at https://agentavow.com/mcp (Streamable HTTP, no auth, read-only) — nothing to install.README 전문 보기 ↗Formerly AgentGraph. The signed attestation format, JWKS, and existing badges are unchanged.
AgentAvow answers "is this tool safe for my agent to connect?" for any tool, MCP server, package, or skill: Safe to connect, Review before you connect, or Do not connect, with the reason, over a signed 0–100 trust score you can recompute and verify offline and a separate adoption score.
Check whether a tool is safe before your agent connects to it, from Claude, ChatGPT, Cursor, VS Code or any MCP client. For a local install:
pip install agentavow-trust
See sdk/mcp-server/ for setup and full tool list.
Claude Code plugin (recommended). The AgentAvow Trust plugin is listed in the Anthropic plugin directory. It bundles the MCP connector, a /scan command, a skill that scans a server or package before Claude adds or installs it, a SessionStart hook that checks each MCP server you have configured the first time it sees it (warn-only, fail-open), and a PreToolUse gate that checks the result on file before each MCP tool call: it denies a call to a server that reads Do not connect and asks before a tool whose definition changed since it was checked. You can also install it straight from this repo:
/plugin marketplace add AgentAvow/AgentAvow
/plugin install agentavow-trust@agentavow
Then try /scan npm chalk. The hook skips servers on localhost or a private network, withholds any URL whose path looks like it carries a secret, and strips credentials and query strings from a URL before it leaves your machine. What it reads and sends. Source: plugins/agentavow-trust/.
Connector only. In Claude (web or desktop), add AgentAvow from the connector directory. In Claude Code without the plugin:
claude mcp add --transport http agentavow https://agentavow.com/mcp
AgentAvow is in the ChatGPT plugin directory: add it here. It brings the same eight read-only tools and the trust card, plus a scan-before-connect skill. No sign-in.
The remote MCP server is live at https://agentavow.com/mcp (Streamable HTTP, no auth, read-only) — nothing to install.
One-click:
cursor://anysphere.cursor-deeplink/mcp/install?name=agentavow&config=eyJ1cmwiOiAiaHR0cHM6Ly9hZ2VudGF2b3cuY29tL21jcCJ9vscode:mcp/install?%7B%22name%22%3A%20%22agentavow%22%2C%20%22type%22%3A%20%22http%22%2C%20%22url%22%3A%20%22https%3A//agentavow.com/mcp%22%7DOr add it manually. Cursor (~/.cursor/mcp.json, or per-project .cursor/mcp.json):
{ "mcpServers": { "agentavow": { "url": "https://agentavow.com/mcp" } } }
VS Code (.vscode/mcp.json, or MCP: Open User Configuration):
{ "servers": { "agentavow": { "type": "http", "url": "https://agentavow.com/mcp" } } }
For the local stdio server instead: pip install agentavow-trust.
?force=true re-scans.agentgraph.co/.well-known/jwks.json — the score is a product, the signature is the proof under it.verified → blocked) with a recommended execution posture (req/min, token budget, confirmation prompts) so a gateway or agent framework can act on it automatically.tool_manifest_digest drift) — the rug-pull you'd otherwise miss.agentavow-trust) exposes scanning to Claude Code and other clients, and a GitHub Action, GitLab CI component, Bitbucket Pipe, Azure Pipelines template, or local CLI can fail a build when the answer is Do not connect (). The npm package adds per-call gates for the Vercel AI SDK, Flue, the Claude Agent SDK and the OpenAI Agents SDK; LangChain, Google ADK, Claude Agent SDK and OpenAI Agents SDK gates for Python live in . For policy engines and gateways, is an Open Policy Agent policy (with an Envoy example) and is a guardrail for LiteLLM's MCP gateway. A runnable rug-pull demo is in .| Layer | Technology |
|---|---|
| Backend | FastAPI, SQLAlchemy 2.0 (async), Pydantic 2.0, Uvicorn |
| Database | PostgreSQL 16 (asyncpg) |
| Cache/Events | Redis 7 (caching, rate limiting, pub/sub) |
| Frontend | React 19, TypeScript, Vite 7, Tailwind CSS 4, TanStack Query 5 |
| Auth | JWT (access + refresh tokens), API keys for agents, bcrypt |
| Crypto/Signing | Ed25519 (JWS/EdDSA, RFC 7515), RFC 8785 JCS canonicalization |
| UI/Animation | Tailwind CSS, framer-motion |
| Infrastructure | Docker, Docker Compose, Nginx, GitHub Actions CI |
# Clone the repo
git clone https://github.com/AgentAvow/AgentAvow.git
cd AgentAvow
# Copy environment files
cp .env.example .env
cp .env.secrets.example .env.secrets
# Edit .env and .env.secrets with your values (see Environment Variables below)
# Start everything
docker-compose up
This starts:
http://localhost:8000http://localhost (port 80)localhost:5432localhost:6379Database migrations run automatically on startup.
# Clone and enter the repo
git clone https://github.com/AgentAvow/AgentAvow.git
cd AgentAvow
# Setup Python environment, install deps, start DB services
make setup
# Copy and configure environment
cp .env.example .env
cp .env.secrets.example .env.secrets
# Edit both files with your values
# Run database migrations
make migrate
# Start the backend dev server (hot reload)
make dev
In a separate terminal, start the frontend:
cd web
npm install
npm run dev
http://localhost:8000http://localhost:5173 (proxies API requests to backend).env)DATABASE_URL=postgresql+asyncpg://postgres:yourpassword@localhost:5432/agentgraph
POSTGRES_PASSWORD=yourpassword
REDIS_URL=redis://localhost:6379/0
JWT_SECRET=change-me-to-a-random-64-char-string
.env)APP_NAME=AgentAvow
DEBUG=false
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=15
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7
CORS_ORIGINS=["http://localhost:3000","http://localhost:80"]
RATE_LIMIT_READS_PER_MINUTE=100
RATE_LIMIT_WRITES_PER_MINUTE=20
RATE_LIMIT_AUTH_PER_MINUTE=5
.env.secrets)ANTHROPIC_API_KEY=your_key_here # Optional — LLM-assisted features (not required for scanning)
web/.env)# Optional. Defaults to /api/v1, which the Vite dev server proxies to the backend.
VITE_API_BASE_URL=http://localhost:8000/api/v1
The public scanning API needs no authentication. All app endpoints use the /api/v1 prefix; interactive API docs are at /api/v1/docs (Swagger) and /api/v1/redoc (/docs is the product documentation). GET /health (no prefix) checks DB + Redis connectivity.
| Endpoint | Path | Description |
|---|---|---|
| Scan | GET /public/scan/{owner}/{repo} | Scan a repo/tool; returns the answer (decision) and its reason, the trust score, tier, findings, and a signed JWS attestation. ?force=true bypasses the 1-hour cache. |
| Badge | GET /public/scan/{owner}/{repo}/badge | 20px SVG README badge (open CORS): the answer, the trust bar with the score, the adoption dial with the count. ?style=card for the 360×230 card, ?style=classic for the previous badge, ?theme=light|dark. Cached an hour in the browser and a day at the edge. |
| Card | GET /public/scan/{owner}/{repo}/card.svg | The trust card the widget.js embed shows. Cached five minutes in the browser and an hour at the edge. |
| Checks | GET /public/scan/{owner}/{repo}/checks | Adoption signals: check count, active watchers, GitHub stars, score history. |
| History | GET /public/scan/{owner}/{repo}/history | Timeline of past scans for a repo. |
| Wallet lookup | GET /public/scan/wallet/{address} | Resolve a wallet address to its linked repo and scan it. |
| Catalog | GET /public/scan-catalog | Paginated, filterable catalog of all scans (by surface, severity, score). |
| OG page | GET /og/check/{owner}/{repo} | Open Graph meta for a scan result page (the shareable page itself is agentavow.com/check/{owner}/{repo}). |
| Endpoint | Path | Description |
|---|---|---|
| JWKS | GET /.well-known/jwks.json | Public keys (EdDSA/Ed25519) for offline attestation verification. Served on agentgraph.co. |
| Attestations | /attestations | Issue, list, and revoke signed attestations for an entity. |
| Security attestation | GET /entities/{id}/attestation/security | Signed security-posture attestation (A2A trust.signals[] compatible). |
| Composed slot | GET /entities/{id}/attestation/composed-slot | agentgraph-scan-v1-structural slot for an APS composed-v1 envelope. |
| Aggregate verify | GET /aggregate/{subject_did}/verify | Verify a signed Trust Score v2 aggregate envelope. |
| Endpoint | Path | Description |
|---|---|---|
| Auth | /auth | Register, login, JWT tokens, email verification |
| Claims | /account/claims | Claim a public repo you own via GitHub-topic proof (no token stored) |
| Private scan | POST /account/private-scan | Scan a private repo with a transiently-supplied GitHub token (never persisted) |
| Watches | /watches | Create/list/delete tool watches for grade + signed-definition change alerts |
| Alert webhook | /account/alert-webhook | Configure (and test) the HMAC-signed webhook that receives change alerts |
AgentAvow/
├── src/ # Backend (FastAPI)
│ ├── api/ # API router modules (public scan, badge, watches, claims, attestations)
│ ├── scanner/ # Static-analysis engine + detection patterns
│ ├── signing.py # Ed25519 signing, JWS, JCS canonicalization
│ ├── attestation/ # CTEF envelopes, APS composed slot
│ ├── trust/ # Trust score computation, aggregate envelopes, action_ref vectors
│ ├── safety/ # Anomaly / collusion / propagation controls
│ ├── source_import/ # Fetchers (GitHub, npm, PyPI, MCP, crates, Docker, HF, …)
│ ├── jobs/ # Scheduled jobs (watch re-scan loop, population scan)
│ ├── bridges/ # Framework adapters (MCP, LangChain, CrewAI, AutoGen)
│ ├── models.py # SQLAlchemy models
│ ├── main.py # FastAPI app entry point
│ ├── config.py # Settings (Pydantic)
│ ├── database.py # Async PostgreSQL sessions
│ ├── redis_client.py # Redis connectivity
│ ├── cache.py # Caching layer
│ └── audit.py # Audit logging
├── web/ # Frontend (React + TypeScript)
│ └── src/
│ ├── rebrand/ # Live cutover UI (pages, docs, components)
│ ├── pages/ # Legacy page components
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ └── lib/ # Utilities and API client
├── ios/ # iOS app (SwiftUI)
├── tests/ # Test suite (pytest)
├── migrations/ # Alembic migrations
├── docker-compose.yml # Full stack orchestration
├── Makefile # Development commands
└── docs/ # PRD and architecture docs
make dev # Start backend with hot reload
make test # Run full test suite
make lint # Lint with ruff
make lint-fix # Auto-fix lint issues
make ast-verify # Verify Python syntax
make migrate # Run pending migrations
make migration # Create a new migration
make db-start # Start PostgreSQL + Redis (Homebrew)
make db-stop # Stop database services
make clean # Clean build artifacts
# Full suite
make test
# Verbose output
.venv/bin/python3 -m pytest tests/ -v
# Single test file
.venv/bin/python3 -m pytest tests/test_auth.py -v
# With coverage
.venv/bin/python3 -m pytest tests/ --cov=src
from __future__ import annotations for union typesAgentAvow is a layered scan-and-attest pipeline: a scan produces evidence, the evidence is scored and canonicalized, and the verdict is signed into an attestation anyone can recompute and verify offline.
┌─────────────────────────────────────────────────────────┐
│ Clients — check page, trust badge, MCP server, CLI, │
│ GitHub Action, third-party verifiers │
├─────────────────────────────────────────────────────────┤
│ Public API — /public/scan · /badge · /checks · │
│ scan-catalog · watches · claims │
├─────────────────────────────────────────────────────────┤
│ Scan & score — static analysis (findings by category), │
│ per-category subscores, trust tier, adoption score, │
│ tool-definition digests (drift / rug-pull detection) │
├─────────────────────────────────────────────────────────┤
│ Attestation — Ed25519/JWS (RFC 7515) over a canonical │
│ verdict (RFC 8785 JCS); CTEF envelopes; action_ref │
├─────────────────────────────────────────────────────────┤
│ Verification — public JWKS (agentgraph.co/.well-known),│
│ offline byte-for-byte recompute, DID:web identity │
└─────────────────────────────────────────────────────────┘
Watches close the loop: a background re-scan job compares each watched tool's new score and signed definition digest against the last, and fires an HMAC-signed webhook alert when either changes.
Proprietary. All rights reserved.
fail_on: do_not_connectagentavow-trustsrc/bridges/ext_authz