{"name":"io.github.VinvAI/vinv","slug":"vinvai-vinv","title":"Vinv","description":"Vinv runs, tests, and finds issues in your services — with zero code changes.","url":"https://mcp.market/server/vinvai-vinv","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":44,"stars":48,"forks":5,"downloads_week":74,"last_push_at":"2026-10-20T03:14:06.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/VinvAI/VinvAI","website":"https://vinv.ai","version":"0.0.5","remotes":[],"packages":[{"registryType":"npm","identifier":"vinv-mcp","version":"0.0.5","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional override for the repo/workspace Vinv analyzes. Normally unset — the server uses the folder your client exposes via MCP roots, falling back to the current working directory.","format":"string","name":"VINV_WORKSPACE"}]}],"tools":[{"name":"blast_radius","description":"Transitive callers (upstream) and callees (downstream) of a symbol in the observed call graph. Answers \"if this is wrong, what could be implicated or affected\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"callers_of","description":"The observed direct callers of a symbol, with call counts. Answers \"who calls this at runtime\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"coverage_of","description":"Execution coverage: with a symbol, its call count / ok-error / timing; without one, every executed symbol ranked by call volume. Answers \"what ran and how much\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"rank_suspects","description":"Call FIRST when investigating a bug, error, or failing request/test: ranks symbols by fault suspiciousness (Ochiai SBFL) over the pass/fail spectra of all captured requests. Answers \"which functions should I look at first for this failure\" \\u2014 cheaper and more targeted than reading source files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"relevant_to","description":"Rank the codebase by graph relevance to one or more symbols you name \\u2014 the SAME typed-edge personalized-PageRank walk that composed your context pack, re-anchored on your choice. Use when you have found symbols that matter and want what surrounds them, ranked: it answers \"what else is relevant to THESE\", which semantic search (vinv_query) and plain traversal (blast_radius) cannot. Returns wal","write_action":false,"price_micros":0,"input_schema":null},{"name":"slice","description":"Backward dynamic slice to a symbol: the caller chain from the request root down to it, annotated with the argument/return values observed at each frame. Answers \"what flowed in to reach this call\" \\u2014 use when tracing how a bad value or state reached a function.","write_action":false,"price_micros":0,"input_schema":null},{"name":"values_of","description":"Value profile for a symbol across the captured run(s): per-argument and return type mix, null-rate, numeric/length ranges, and most-common values. Answers \"what does this function actually receive and return at runtime\" \\u2014 use this for ground truth instead of inferring inputs/outputs from source.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vinv_deadcode","description":"List Python definitions (functions, classes, methods) that NOTHING in the repository references \\u2014 dead code \\u2014 found by static analysis of the source. Needs no prebuilt index and no runtime, so it works immediately on any workspace and returns each unused symbol with its file and line. Use it to find safe-to-remove code; before deleting a reported symbol, still confirm it is not reference","write_action":false,"price_micros":0,"input_schema":null},{"name":"vinv_feedback","description":"After you have acted on vinv_query results (opened the files, made the edit), call this once to record whether they helped, passing the vinv_decision_id from that response. Use reward in [-1,1], where 1 is fully useful and -1 is harmful. This trains retrieval for this workspace.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vinv_index","description":"Build or refresh Vinv's semantic code index for THIS workspace. The build runs in the BACKGROUND and this call returns IMMEDIATELY with status \\u2014 it never blocks. Call with no arguments to start/refresh the index and read its status; pass rebuild=true to force a full rebuild from scratch. Until the first build completes, vinv_query returns a \"still indexing\" notice, so call this once up front ","write_action":false,"price_micros":0,"input_schema":null},{"name":"vinv_ingest_run","description":"Report a test run you performed, so it appears in the Journey and Findings views. Supply one entry per check with the unit you exercised, a scenario name, and the pass/fail verdict \\u2014 the verdict is the one thing traces cannot supply. A unit is usually an HTTP endpoint (\"METHOD /path\"), but a repo with no service has units too: a CLI invocation (\"RUN <command>\") or a driven function (\"CALL mod","write_action":true,"price_micros":0,"input_schema":null},{"name":"vinv_list_candidates","description":"Ranked optimization candidates from the captured traces, each with the evidence behind it and a playbook for that class of waste (cache, fanout, n-plus-1, per-call, serial-async, wait, gc-pressure, alloc-churn, mem-leak). Read this before attempting any performance work \\u2014 it reports what the traces actually measured, not a static guess.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vinv_query","description":"Semantic code search over the prebuilt index of this workspace. Use INSTEAD of grep/glob when looking for code by meaning or behavior rather than an exact string \\u2014 e.g. \"where are auth tokens refreshed\", \"what validates uploads\". Returns the most relevant symbols (functions/classes) ranked, with file paths and scores, in a single call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"vinv_run_status","description":"What vinv currently holds for this workspace: capture sessions, whether an external run has been ingested, endpoint/coverage/issue counts, and the number of ranked candidates. Call this to check whether an ingest landed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"vinv_session","description":"Read what Vinv has observed about this workspace at runtime, and drive its automated fix/optimize runs (\"episodes\"), from chat. READ: action=\"requests\" (what became of each sweep/fix you QUEUED \\u2014 a queued sweep does not always dispatch, and this is the only durable record of why one did not), action=\"trajectory\" (every episode so far \\u2014 what was tried, whether it verified, the reward, the","write_action":false,"price_micros":0,"input_schema":null},{"name":"why_did_this_run","description":"The entry-point triggers and call paths that led to a symbol running. Answers \"why was this function invoked\".","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":91,"grade":"A","scanned_at":"2026-11-01T13:28:53.104Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-01T13:28:53.065Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 12 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"vinv-mcp","version":"0.0.5","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-08-22T09:34:30.455Z","repositoryUrl":"git+https://github.com/VinvAI/VinvAI.git","weeklyDownloads":74}],"repo":{"found":true,"owner":"VinvAI","repo":"VinvAI","archived":false,"pushedAt":"2026-10-20T03:14:06Z","stars":48,"forks":5,"openIssues":21,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/299912277?v=4","ownerCreatedAt":"2026-07-04T18:27:44Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/299912277?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":48,"forks":5,"downloadsWeek":74,"license":"Apache-2.0","lastPushAt":"2026-10-20T03:14:06.000Z","score":44}}}},"grade_history":[],"reviews":[]}