{"name":"dev.repowise/repowise","slug":"repowise","title":"Repowise","description":"Codebase intelligence for AI coding agents — graph, git history, docs, decisions, code health.","url":"https://mcp.market/server/repowise","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"devtools","tags":["devtools","productivity"],"presence":{"score":55,"stars":7056,"forks":744,"downloads_week":null,"last_push_at":"2026-09-27T09:53:39.000Z","license":"AGPL-3.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/repowise-dev/repowise","website":"https://www.repowise.dev","version":"0.17.1","remotes":[],"packages":[{"registryType":"pypi","identifier":"repowise","version":"0.17.1","transport":{"type":"stdio"},"packageArguments":[{"description":"The repowise CLI subcommand that starts the MCP server","value":"mcp","type":"positional"},{"description":"Absolute path to the repository to serve (must be indexed first with `repowise init`)","isRequired":true,"format":"filepath","type":"positional","valueHint":"repo_path"},{"description":"Transport protocol","value":"stdio","type":"named","name":"--transport"}]}],"tools":[{"name":"annotate_file","description":"Attach human-authored notes to a file's wiki page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"apply","description":"Attach every registered tool to *mcp* via ``mcp.tool()``.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_answer","description":"Synthesised answer to a code question with verified citations and a calibrated trust signal.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_architecture_diagram","description":"Get a Mermaid diagram for the codebase or a specific module.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_callers_callees","description":"Find who calls a symbol and what it calls. Also works for class hierarchy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_community","description":"Show the architectural community/cluster a file belongs to.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_context","description":"Triage card for files / modules / symbols — relationships, not source bytes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_dead_code","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_dependency_path","description":"Find how two files/modules are connected in the dependency graph.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_execution_flows","description":"Show how the codebase executes: top entry points and their call traces.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_graph_metrics","description":"Get importance metrics for a file or symbol: PageRank, centrality, community.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_health","description":"Code-health biomarkers and per-file scores.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_overview","description":"Architecture map for an unfamiliar repo — first call when you don't know your way around.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_risk","description":"What history says about touching these files — hotspot, churn, owners, blast radius.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_symbol","description":"Read one function/class with exact line bounds — cheaper and safer than Read+math.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_thing","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_why","description":"Why this code looks the way it does — decision archaeology git log cannot answer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_codebase","description":"Find pages by concept — semantic search across the wiki.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_decision_records","description":"","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-27T12:14:32.757Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:14:32.785Z","components":{"code":{"score":20,"max":25,"notes":["647 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 0 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"repowise-0.17.1/packages/cli/src/repowise/cli/commands/distill_cmd.py: …nd_str = _render_command(command) # shell=True on purpose: the user's own command may …"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"repowise","version":"0.17.1","found":true,"license":"AGPL-3.0-or-later","dependencyCount":65,"publishedAt":"2026-06-07T11:11:24.012986Z","repositoryUrl":"https://github.com/repowise-dev/repowise"}],"repo":{"found":true,"owner":"repowise-dev","repo":"repowise","archived":false,"pushedAt":"2026-09-27T09:53:39Z","stars":7056,"forks":744,"openIssues":209,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/271941743?v=4","ownerCreatedAt":"2026-03-29T10:32:57Z","license":"AGPL-3.0"},"icon":{"url":"https://repowise.dev/icon.png?e81ed427c856ddd5","source":"site","width":256,"height":256},"presence":{"stars":7056,"forks":744,"downloadsWeek":null,"license":"AGPL-3.0","lastPushAt":"2026-09-27T09:53:39.000Z","score":55}}}},"grade_history":[],"reviews":[]}