{"name":"io.github.nugehs/repoctx","slug":"nugehs-repoctx","title":"repoctx","description":"Local-first code context, impact analysis, and merge-readiness verdicts for AI agents.","url":"https://mcp.market/server/nugehs-repoctx","rating":null,"grade":"B","score":71,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":30,"stars":1,"forks":0,"downloads_week":59,"last_push_at":"2026-09-24T21:11:56.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/nugehs/repoctx","website":"https://nugehs.github.io/repoctx/","version":"2.6.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@nugehs/repoctx","version":"2.6.0","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional"}]}],"tools":[{"name":"agent_experience","description":"Score Agent Experience (AX): a single 0–100 number answering \"how cheap and safe is it for an agent to make this change here?\", blending Changeability (token cost), Containment (blast radius), Guardrails (tests / validation / CODEOWNERS / CI), and Clarity (task groundedness). Deterministic and composed from the change_impact, token-estimate, and CODEOWNERS engines — no new analysis. Returns sub-sc","write_action":false,"price_micros":0,"input_schema":null},{"name":"change_impact","description":"Given a plain-English change request, rank the files most likely to own the change, with risk flags, suggested tests, and an implementation plan. Optional diff base validates predictions against actual changed files. Writes a local .dev-context/index.json cache into the target repo; the call is idempotent and does not change source files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"context_pack","description":"Generate a task-aware local context packet with primary files, related files, tests, patterns, and validation commands. Writes a local .dev-context/index.json cache into the target repo; the call is idempotent and does not change source files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"convergence_score","description":"Score convergence: a deterministic 0–100 measure of the distance between a stated task (intent) and the actual git diff (execution), with sub-scores for Coverage (did the intent happen?), Scope (did only the intent happen?), and Risk alignment (did unrequested drift land on risk-sensitive paths?). Composed from the change_impact diff comparison and the shared risk vocabulary — no model, no new ana","write_action":false,"price_micros":0,"input_schema":null},{"name":"repo_harness","description":"Generate setup, validation, runtime, and context commands for an agent or CI harness.","write_action":false,"price_micros":0,"input_schema":null},{"name":"repo_index","description":"Index local repositories: generate .dev-context indexes and add them to the local catalog. Pass discover:true to find repository roots under the given paths first. Pass dryRun:true to discover and report without writing any indexes or catalog (read-only); this replaces the old repo_discover tool. Without dryRun this mutates the persistent local catalog, so it is not a pure read.","write_action":false,"price_micros":0,"input_schema":null},{"name":"repo_inspect","description":"Inspect repository shape, languages, package managers, script names, entrypoints, and git metadata. Returns up to 200 representative file paths; pass includeScripts:true to get full script command bodies instead of just names.","write_action":false,"price_micros":0,"input_schema":null},{"name":"repo_map","description":"Map a repository into a compact JSON code map, optionally narrowed by domain, file kind, or controller route. Pass domain to find files for a feature, kind to find files of a type (route, controller, service, apiClient, component, test), or route to match Nest controller routes by substring/regex. Replaces the old find_domain, find_file_kind, find_backend_route, and find_frontend_api_client tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"repo_search","description":"Search indexed local repositories by path, domain, kind, route, imports, exports, and symbols. Omit query to list the local repository catalog instead (the catalog listing the old repo_catalog tool returned). Only searches repositories already in the local catalog — if the catalog is empty this returns no matches, so call repo_index on the target repositories first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_context","description":"Produce PR review context from local git diff metadata, optionally enriched with GitHub PR comments. Use review_context when you want the raw diff/comment context for a change, not a verdict. Use review_verdict instead for the full impact + review + gate composite, or review_gate for the gate verdict alone.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_gate","description":"Gate a change for merge and return a PASS / WARN / FAIL verdict. Omit pr to run the local, no-GitHub gate against a base ref (changed files, secret safety, risk-sensitive paths, release discipline, validation commands, dependency audit, policy profile). Set pr to gate an open GitHub PR via `gh` (PR state, review decision, CODEOWNERS approvals, unresolved conversations, branch protection, status ch","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_verdict","description":"Run the full review pipeline in one shot: change_impact plus review_context plus review_gate, returning a unified verdict with a derived confidence score. Use review_verdict when you want the complete picture of a change in a single call. Use review_context instead for diff metadata only (no verdict), or review_gate for the gate verdict alone.","write_action":true,"price_micros":0,"input_schema":null},{"name":"workspace_report","description":"Generate a product-level report across multiple related repositories.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":71,"grade":"B","scanned_at":"2026-09-24T21:39:55.913Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T21:39:55.934Z","components":{"code":{"score":10,"max":25,"notes":["50 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":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present"},{"id":"install.script","severity":"medium","component":"code","title":"npm install lifecycle script present","evidence":"package.json: …: { \"start\": \"node src/cli.js\", \"postinstall\": \"node scripts/postinstall.mjs\", \"mc…"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"src/cli.js: …Hub PR gate\", \"\", \"Accuracy eval (v2):\", \" repoctx eval --accuracy …"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@nugehs/repoctx","version":"2.6.0","found":true,"license":"MIT","hasInstallScripts":true,"dependencyCount":1,"publishedAt":"2026-07-27T23:02:53.295Z","repositoryUrl":"git+https://github.com/nugehs/repoctx.git","weeklyDownloads":59}],"repo":{"found":true,"owner":"nugehs","repo":"repoctx","archived":false,"pushedAt":"2026-09-24T21:11:56Z","stars":1,"forks":0,"openIssues":2,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/120015983?v=4","ownerCreatedAt":"2015-03-18T10:41:15Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/120015983?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":59,"license":"MIT","lastPushAt":"2026-09-24T21:11:56.000Z","score":30}}}},"grade_history":[],"reviews":[]}