MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / main

Function main

scripts/mcp_probe/isolated.py:51–90  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

49
50
51def main() -> int:
52 ap = argparse.ArgumentParser()
53 ap.add_argument("repo", help="name of the repo (from repos.toml)")
54 ap.add_argument("--tools", nargs="*", help="restrict to these tool names")
55 args = ap.parse_args()
56
57 repos = {r["name"]: r for r in load_repos()}
58 if args.repo not in repos:
59 print(f"unknown repo '{args.repo}'. Known: {sorted(repos)}", file=sys.stderr)
60 return 2
61 repo = repos[args.repo]
62
63 print(f"=== isolated probe: {repo['name']} ({repo['path']}) ===", file=sys.stderr)
64 # Quick discover pass against a primer server so per-tool fresh servers
65 # have plausible node ids etc.
66 primer = McpClient(repo["path"])
67 try:
68 discovered = discover(primer)
69 finally:
70 primer.close()
71
72 probes: dict = {}
73 for lang in repo.get("languages", []):
74 mod = importlib.import_module(f"tools.{lang}")
75 probes.update(mod.probes_for(discovered))
76
77 if args.tools:
78 wanted = set(args.tools)
79 probes = {k: v for k, v in probes.items() if k in wanted}
80 missing = wanted - set(probes)
81 if missing:
82 print(f"warning: tools not in probe set: {sorted(missing)}", file=sys.stderr)
83
84 with open(LOG_PATH, "w") as log:
85 for tool, queries in probes.items():
86 print(f"# {tool}", file=sys.stderr, flush=True)
87 run_tool_fresh(repo["name"], repo["path"], tool, queries, log)
88
89 print(f"log written to {LOG_PATH}", file=sys.stderr)
90 return 0
91
92
93if __name__ == "__main__":

Callers 1

isolated.pyFile · 0.70

Calls 6

closeMethod · 0.95
load_reposFunction · 0.90
McpClientClass · 0.90
discoverFunction · 0.90
setFunction · 0.85
run_tool_freshFunction · 0.85

Tested by

no test coverage detected