github Python re-analysis due

saagpatel/mcp-trust

github

Neutral trust registry for MCP servers — check before you connect

maintainer
saagpatel
licence
MIT
first seen
2026-06-20
last seen
2026-09-10
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 verified reported listed in the official MCP registry counts 3 tools · 0 res · 0 prompts permission surface via code analysis

tools

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

analyzed commit ebfe716 · analyzer v33 · 6d ago

skills & prompt files 3

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

code files: 116

filesystem 50

  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/assess_evidence_lineage.py :10 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/build_deploy_bundle.py :15 import shutil
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/build_site.py :33 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/build_snapshot.py :23 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/draft_corpus_records.py :17 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/generate_web_release_readback_contract.py :9 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/plan_corpus_catalog_integration.py :17 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/plan_registry_corpus.py :15 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/promote_corpus_records.py :16 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/refresh_candidate.py :14 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/validate_deploy_authorization.py :14 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/validate_launch_state.py :16 from pathlib import Path
show 28 more
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/verify_reference_corpus_evidence.py :11 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/scripts/web_release_readback.py :27 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/auth_posture.py :24 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/catalog/seed.py :7 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/catalog/snapshot_trust.py :20 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/cli/main.py :10 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/core/spec_shift.py :26 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/src/mcp_trust/corpus/lineage.py :16 from pathlib import Path, PurePosixPath
  • fs (weak) saagpatel-mcp-trust-ebfe716/src/mcp_trust/corpus/records.py :15 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/engine/sandbox.py :29 import shutil
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/portability/cli.py :7 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/receipts.py :12 from pathlib import Path
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/refresh.py :11 import shutil
  • fs saagpatel-mcp-trust-ebfe716/src/mcp_trust/site/generator.py :26 import shutil
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/portability/test_portability.py :6 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_adversarial_trust_boundaries.py :13 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_auth_posture.py :10 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_build_site_script.py :14 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_build_snapshot.py :9 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_cli.py :34 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_deploy_bundle_builder.py :9 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_deployment_authority.py :10 import shutil
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_draft_corpus_records.py :7 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_evidence_lineage.py :7 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_grade_history_page.py :19 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_launch_state_validator.py :8 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_mcp_server.py :9 from pathlib import Path
  • fs (weak) saagpatel-mcp-trust-ebfe716/tests/test_plan_corpus_catalog_integration.py :7 from pathlib import Path

10 more not shown — this panel samples each group; the count above is the real total.

shell / exec 7

  • shell (weak) saagpatel-mcp-trust-ebfe716/scripts/build_deploy_bundle.py :17 import subprocess
  • shell (weak) saagpatel-mcp-trust-ebfe716/scripts/verify_reference_corpus_evidence.py :9 import subprocess
  • shell saagpatel-mcp-trust-ebfe716/src/mcp_trust/refresh.py :14 import subprocess
  • shell (weak) saagpatel-mcp-trust-ebfe716/tests/test_deployment_authority.py :12 import subprocess
  • shell (weak) saagpatel-mcp-trust-ebfe716/tests/test_evidence_lineage.py :4 import subprocess
  • shell (weak) saagpatel-mcp-trust-ebfe716/tests/test_refresh_candidate.py :9 import subprocess
  • shell (weak) saagpatel-mcp-trust-ebfe716/tests/test_web_release_readback.py :7 import subprocess

network 8

  • net (weak) saagpatel-mcp-trust-ebfe716/scripts/web_release_readback.py :29 from urllib.error import HTTPError, URLError
  • net saagpatel-mcp-trust-ebfe716/src/mcp_trust/auth_posture.py :17 import socket
  • net (weak) saagpatel-mcp-trust-ebfe716/src/mcp_trust/corpus/lineage.py :18 from urllib.parse import urlsplit
  • net (weak) saagpatel-mcp-trust-ebfe716/src/mcp_trust/corpus/registry.py :19 from urllib.parse import urlsplit, urlunsplit
  • net saagpatel-mcp-trust-ebfe716/src/mcp_trust/portability/errors.py :6 from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
  • net saagpatel-mcp-trust-ebfe716/src/mcp_trust/portability/models.py :9 from urllib.parse import parse_qsl, urlsplit
  • net (weak) saagpatel-mcp-trust-ebfe716/tests/portability/test_portability.py :5 import socket
  • net (weak) saagpatel-mcp-trust-ebfe716/tests/test_auth_posture.py :6 import socket

secrets 1

  • secrets saagpatel-mcp-trust-ebfe716/src/mcp_trust/refresh.py :1030 os.environ["MCP_TRUST_SCAN_CREDENTIALS"] = "dummy"

database 19

  • db (weak) saagpatel-mcp-trust-ebfe716/scripts/build_deploy_bundle.py :16 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/scripts/build_site.py :28 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/scripts/build_snapshot.py :22 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/scripts/draft_corpus_records.py :15 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/scripts/plan_corpus_catalog_integration.py :15 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/scripts/validate_launch_state.py :13 import sqlite3
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/api/app.py :7 import sqlite3
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/catalog/snapshot.py :5 import sqlite3
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/cli/main.py :7 import sqlite3
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/refresh.py :12 import sqlite3
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/site/generator.py :27 import sqlite3
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/store/db.py :6 import sqlite3
show 7 more
  • db saagpatel-mcp-trust-ebfe716/src/mcp_trust/store/repository.py :8 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/tests/test_deploy_bundle_builder.py :5 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/tests/test_draft_corpus_records.py :5 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/tests/test_launch_state_validator.py :5 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/tests/test_plan_corpus_catalog_integration.py :5 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/tests/test_refresh_candidate.py :8 import sqlite3
  • db (weak) saagpatel-mcp-trust-ebfe716/tests/test_store.py :6 import sqlite3

tool registrations 3

  • list_servers saagpatel-mcp-trust-ebfe716/src/mcp_trust/mcp_server.py :192
  • check_server saagpatel-mcp-trust-ebfe716/src/mcp_trust/mcp_server.py :201
  • get_methodology saagpatel-mcp-trust-ebfe716/src/mcp_trust/mcp_server.py :206

declared dependencies 11

  • mcp@>=1.28.1,<2
  • cryptography@>=45,<51
  • pydantic@>=2.0
  • fastapi@>=0.115
  • uvicorn@>=0.30
  • typer@>=0.12
  • rich@>=13.8
  • mcp-audits@>=2.4.0,<3
  • pytest@>=8.0
  • httpx@>=0.27
  • ruff@>=0.6