{"name":"io.github.vouchdev/vouch","slug":"vouchdev-vouch","title":"Vouch","description":"Git-native, review-gated knowledge base for LLM agents. Cited retrieval, audited writes.","url":"https://mcp.market/server/vouchdev-vouch","rating":null,"grade":"B","score":71,"certified":false,"status":"active","category":"devtools","tags":["devtools","ai"],"presence":{"score":35,"stars":82,"forks":59,"downloads_week":23,"last_push_at":"2026-08-23T03:53:32.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/vouchdev/vouch","website":null,"version":"1.2.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"vouch-kb","version":"1.2.2","runtimeHint":"uvx","transport":{"type":"stdio"},"packageArguments":[{"value":"serve","type":"positional"}],"environmentVariables":[{"description":"Absolute path to the .vouch directory; if unset, vouch walks up from the cwd to find it.","format":"string","name":"VOUCH_KB_PATH"}]}],"tools":[{"name":"kb_approve","description":"Approve a proposal → durable artifact. Use carefully.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_archive","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_audit","description":"Return the last N audit events, filtered to the viewer scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_capabilities","description":"Return the protocol capabilities of this server.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_cite","description":"Return resolved citations (sources or evidence records) backing a claim.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_compile","description":"Compile live approved claims into topic-page proposals.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_confirm","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_context","description":"Build a ContextPack ready to inject into an agent prompt.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_contradict","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_crystallize","description":"Approve every pending proposal in `session_id` (host must trust the agent).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_dedup_scan","description":"Find near-duplicate artifacts via embedding cosine.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_detect_themes","description":"Detect recurring entity clusters across completed sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_digest","description":"Read-only reviewer briefing: pending proposals oldest-first, recent decisions, stale claims, and followups due.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_doctor","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_embeddings_stats","description":"Model identity, per-kind counts, query cache stats.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_eval_embeddings","description":"Run retrieval eval over a JSONL queries file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"kb_expire","description":"Expire stale pending proposals (dry-run unless apply=True).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_export","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_export_check","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_graph_export","description":"Render the provenance DAG (or one session's subgraph) as dot/mermaid.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_impact","description":"Forward impact: dependents, and breakage if op (archive/contradict/supersede).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_import_apply","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_import_check","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_index_rebuild","description":"Drop and rebuild state.db from the durable files.","write_action":true,"price_micros":0,"input_schema":null},{"name":"kb_lint","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_list_claims","description":"List all claims, optionally filtered by status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_list_entities","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_list_pages","description":"List pages, optionally filtered by kind and frontmatter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_list_pending","description":"List proposals awaiting human review.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_list_relations","description":"List all relations; if node_id is given, only edges touching it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_list_sources","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_neighbors","description":"Return graph neighbors of a claim, page, entity, or source.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_propose_claim","description":"Propose a new claim. Becomes durable only after `kb_approve`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_propose_entity","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_propose_page","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_propose_relation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_propose_theme","description":"Propose a theme synthesis page from a detected cluster.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_provenance_rebuild","description":"Rebuild the prov_edges cache from durable files; returns edge count.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_read_claim","description":"Return a claim with its citation list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_read_entity","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_read_page","description":"Return a page (title, body, claim ids).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_read_relation","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_register_source","description":"Register a source. Evidence intake is NOT gated (registering raw evidence is harmless and de-duplicates by content hash).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_register_source_from_path","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_reindex_embeddings","description":"Re-encode every artifact under the current embedding adapter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_reject","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_reject_extracted","description":"Mass-reject pending edges the auto-extractor filed (issue #224).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_search","description":"Search the KB.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_session_end","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_session_start","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_source_verify","description":"Re-hash every source and report any drift.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_stats","description":"Observability: pending by agent, review rates, citation coverage.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_status","description":"Return KB artifact counts and health summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_supersede","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_synthesize","description":"Answer a query from approved claims only, with inline `[claim_id]` citations, an explicit gaps block, and a synthesis_confidence grade.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_trace","description":"Shortest typed-edge path between two artifacts (or found=false).","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_volunteer_context","description":"Poll confidence-gated context volunteered for an active session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"kb_why","description":"Backward provenance for a claim: cites, session, supersedes, approval.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":71,"grade":"B","scanned_at":"2026-09-26T11:34:55.734Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:34:55.818Z","components":{"code":{"score":15,"max":25,"notes":["214 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":12,"max":15,"notes":["last push 34 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"vouch_kb-1.2.2/desktop/src/catalog/methods.json: …p results to retrieve per query for the eval (the k in recall@k).\" } ], …"},{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"vouch_kb-1.2.2/src/vouch/compile.py: …ubprocess.run( llm_cmd, shell=True, cwd=tmp, input=prompt,…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"vouch-kb","version":"1.2.2","found":true,"weeklyDownloads":23,"license":"MIT","dependencyCount":24,"publishedAt":"2026-07-07T10:02:15.909373Z","repositoryUrl":"https://github.com/plind-junior/vouch"}],"repo":{"found":true,"owner":"vouchdev","repo":"vouch","archived":false,"pushedAt":"2026-08-23T03:53:32Z","stars":82,"forks":59,"openIssues":45,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/285916225?v=4","ownerCreatedAt":"2026-05-19T06:52:13Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/285916225?v=4&s=128","source":"github"},"presence":{"stars":82,"forks":59,"downloadsWeek":23,"license":"MIT","lastPushAt":"2026-08-23T03:53:32.000Z","score":35}}}},"grade_history":[],"reviews":[]}