{"apiVersion":"v1","directorySlug":"repopilot-mcp-7daf4ebe12","title":"RepoPilot","description":"Check exact npm versions against advisories, provenance and project constraints. Verify the resolved state and declared checks after your coding agent makes the change.","pageUrl":"https://www.mcpbundles.com/skills/repopilot-mcp-7daf4ebe12","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://repopilot.app/api/mcp","hostedMcpUrl":null,"toolCount":8,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"app.repopilot/repopilot-mcp-7daf4ebe12","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"check_dependency","description":"CALL when the user or agent is about to add, upgrade, trust, fork, or deploy an npm package or public GitHub repository. Returns a lean repository-level recommendation, confidence, evidence gaps, CVEs, maintenance, ownership, license, CI/tests, Scorecard, freshness, and next actions. DO NOT use for code navigation. Pass exactly one of repo or package. A favourable result does not validate an exact package version or compatibility.","inputSchema":{"type":"object","oneOf":[{"required":["repo"]},{"required":["package"]}],"properties":{"repo":{"type":"string","minLength":3},"owner":{"type":"string","minLength":1},"package":{"type":"string","minLength":1}},"additionalProperties":false},"title":"Check a dependency before adoption","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"check_dependency","displayName":"Check a dependency before adoption"},{"name":"evaluate_dependency_change","description":"CALL immediately before adding or upgrading an npm dependency. Answers \"is this exact version safe to take on\" from registry metadata, advisory deltas, provenance, license, and repository evidence, and returns blockers, warnings, a recommendation, and a verification plan. Example: {\"dependency\":\"lodash\",\"to_version\":\"4.17.21\"} — every field is top-level, never nested under a \"change\" key. Only `dependency` is required — omit to_version to evaluate the latest published version, exactly as `npm in","inputSchema":{"type":"object","required":["dependency"],"properties":{"intent":{"type":"string","maxLength":500},"project":{"type":"object","properties":{"scripts":{"type":"array","items":{"type":"string","maxLength":64,"minLength":1},"maxItems":30},"head_sha":{"type":"string","pattern":"^[a-fA-F0-9]{7,64}$"},"node_version":{"type":"string","maxLength":64},"lockfile_path":{"type":"string","maxLength":512},"manifest_path":{"type":"string","maxLength":512},"license_policy":{"type":"object","properties":{"deny":{"type":"array","items":{"type":"string","maxLength":64},"maxItems":100},"allow":{"type":"array","items":{"type":"string","maxLength":64},"maxItems":100}},"additionalProperties":false},"lockfile_sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"package_manager":{"enum":["npm","pnpm","yarn","bun"],"type":"string"},"dependency_usage":{"type":"object","required":["schema_version","runtime","coverage","uses"],"properties":{"uses":{"type":"array","items":{"type":"object","required":["loader","export_path"],"properties":{"loader":{"enum":["require","import"],"type":"string"},"export_path":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z_$][A-Za-z0-9_$]*$","maxLength":100},"maxItems":2}},"additionalProperties":false},"maxItems":50},"runtime":{"type":"object","required":["node","platform","arch"],"properties":{"arch":{"type":"string","pattern":"^[a-z0-9_]+$","maxLength":32},"node":{"type":"string","pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$","maxLength":32},"platform":{"type":"string","pattern":"^[a-z0-9_]+$","maxLength":32}},"additionalProperties":false},"coverage":{"type":"string","const":"partial"},"schema_version":{"type":"integer","const":1}},"additionalProperties":false},"installed_versions":{"type":"object","maxProperties":200,"additionalProperties":{"type":"string","maxLength":128}},"direct_dependencies":{"type":"object","maxProperties":200,"additionalProperties":{"type":"string","maxLength":128}}},"additionalProperties":false},"dependency":{"type":"string","pattern":"^(@[^/\\s]+/)?[^@/\\s][^/\\s]*$","maxLength":214,"minLength":1},"to_version":{"type":["string","number"],"maxLength":128,"minLength":1},"from_version":{"type":["string","number","null"],"maxLength":128},"policy_profile":{"enum":["permissive","balanced","strict"],"type":"string","default":"balanced"},"dependency_type":{"enum":["runtime","development","optional","peer"],"type":"string","default":"runtime"},"package_manager":{"enum":["npm","pnpm","yarn","bun"],"type":"string"}},"additionalProperties":false},"title":"Evaluate an exact dependency change in project context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"evaluate_dependency_change","displayName":"Evaluate an exact dependency change in project context"},{"name":"verify_dependency_change","description":"CALL after changing the manifest/lockfile and running local checks. Compares the exact evaluated target with the resolved result and caller-reported proof receipts, reports missing/failed evidence and residual risk, and labels receipts as caller asserted. It never runs commands or stores diff/check output.","inputSchema":{"type":"object","required":["evaluation","after","checks"],"properties":{"diff":{"type":"string","maxLength":200000},"after":{"type":"object","required":["package_manager","direct_dependencies","resolved_changes"],"properties":{"scripts":{"type":"array","items":{"type":"string","maxLength":64,"minLength":1},"maxItems":30},"head_sha":{"type":"string","pattern":"^[a-fA-F0-9]{7,64}$"},"node_version":{"type":"string","maxLength":64},"lockfile_path":{"type":"string","maxLength":512},"manifest_path":{"type":"string","maxLength":512},"license_policy":{"type":"object","properties":{"deny":{"type":"array","items":{"type":"string","maxLength":64},"maxItems":100},"allow":{"type":"array","items":{"type":"string","maxLength":64},"maxItems":100}},"additionalProperties":false},"lockfile_sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"package_manager":{"enum":["npm","pnpm","yarn","bun"],"type":"string"},"dependency_usage":{"type":"object","required":["schema_version","runtime","coverage","uses"],"properties":{"uses":{"type":"array","items":{"type":"object","required":["loader","export_path"],"properties":{"loader":{"enum":["require","import"],"type":"string"},"export_path":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z_$][A-Za-z0-9_$]*$","maxLength":100},"maxItems":2}},"additionalProperties":false},"maxItems":50},"runtime":{"type":"object","required":["node","platform","arch"],"properties":{"arch":{"type":"string","pattern":"^[a-z0-9_]+$","maxLength":32},"node":{"type":"string","pattern":"^[0-9]+\\.[0-9]+\\.[0-9]+$","maxLength":32},"platform":{"type":"string","pattern":"^[a-z0-9_]+$","maxLength":32}},"additionalProperties":false},"coverage":{"type":"string","const":"partial"},"schema_version":{"type":"integer","const":1}},"additionalProperties":false},"resolved_changes":{"type":"array","items":{"type":"object","required":["name","from_version","to_version","direct"],"properties":{"name":{"type":"string","maxLength":214,"minLength":1},"direct":{"type":"boolean"},"integrity":{"type":"string","maxLength":512},"to_version":{"type":"string","maxLength":128,"minLength":1},"from_version":{"type":["string","null"],"maxLength":128},"dependency_type":{"enum":["runtime","development","optional","peer"],"type":"string"}},"additionalProperties":false},"maxItems":100},"installed_versions":{"type":"object","maxProperties":200,"additionalProperties":{"type":"string","maxLength":128}},"direct_dependencies":{"type":"object","maxProperties":200,"additionalProperties":{"type":"string","maxLength":128}},"resolved_graph_complete":{"type":"boolean"}},"additionalProperties":false},"checks":{"type":"array","items":{"type":"object","required":["id","command","exit_code"],"properties":{"id":{"type":"string","maxLength":64,"minLength":1},"command":{"type":"string","maxLength":500,"minLength":1},"summary":{"type":"string","maxLength":500},"exit_code":{"type":"integer","maximum":255,"minimum":0}},"additionalProperties":false},"maxItems":20},"evaluation":{"type":"object","required":["schema_version","evaluation_id","policy_profile","change","baseline_fingerprint","baseline_lockfile_sha256","target_integrity","baseline_advisory_ids","target_advisory_ids","repository_evidence","evaluation_findings","required_checks","expires_at"],"properties":{"change":{"type":"object","required":["ecosystem","name","from_version","to_version","dependency_type"],"properties":{"name":{"type":"string","maxLength":214,"minLength":1},"ecosystem":{"type":"string","const":"npm"},"to_version":{"type":"string","maxLength":128,"minLength":1},"from_version":{"type":["string","null"],"maxLength":128},"dependency_type":{"enum":["runtime","development","optional","peer"],"type":"string"}},"additionalProperties":false},"expires_at":{"type":"string","format":"date-time"},"evaluation_id":{"type":"string","pattern":"^[a-f0-9]{64}$"},"policy_profile":{"enum":["permissive","balanced","strict"],"type":"string"},"schema_version":{"type":"string","const":"1"},"required_checks":{"type":"array","items":{"type":"object","required":["id","kind","required","description"],"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$"},"kind":{"enum":["snapshot","command","diff"],"type":"string"},"required":{"type":"boolean"},"command_hint":{"type":"string","maxLength":500,"minLength":1}},"additionalProperties":false},"maxItems":12},"target_integrity":{"type":["string","null"],"maxLength":512},"evaluation_findings":{"type":"array","items":{"type":"object","required":["code","severity","source","message"],"properties":{"code":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,127}$"},"source":{"enum":["npm_registry","deps_dev","repopilot","project_snapshot","caller_receipt"],"type":"string"},"message":{"type":"string","maxLength":500,"minLength":1},"severity":{"enum":["blocker","warning","info"],"type":"string"},"remediation":{"type":"string","maxLength":500,"minLength":1}},"additionalProperties":false},"maxItems":100},"repository_evidence":{"type":"object","required":["status","recommendation","headline","evidence_gaps"],"properties":{"status":{"enum":["complete","partial","unavailable"],"type":"string"},"headline":{"type":["string","null"],"maxLength":500},"evidence_gaps":{"type":"array","items":{"type":"string","maxLength":500,"minLength":1},"maxItems":20},"recommendation":{"enum":["proceed_with_review","review","avoid",null],"type":["string","null"]}},"additionalProperties":false},"target_advisory_ids":{"type":"array","items":{"type":"string","maxLength":128,"minLength":1},"maxItems":50},"baseline_fingerprint":{"type":"string","pattern":"^[a-f0-9]{64}$"},"baseline_advisory_ids":{"type":"array","items":{"type":"string","maxLength":128,"minLength":1},"maxItems":50},"baseline_lockfile_sha256":{"type":["string","null"],"pattern":"^[a-fA-F0-9]{64}$"},"baseline_project_snapshot":{"type":"string","const":"not_supplied"}},"additionalProperties":false}},"additionalProperties":false},"title":"Verify a dependency change after local work","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"verify_dependency_change","displayName":"Verify a dependency change after local work"},{"name":"analyze_repo","description":"CALL to investigate behavior in public source: supply question and relevant path_hints found from actual usages, for up to four files with commit-pinned line citations. checked_sha selects a commit; base_sha adds before/after excerpts; pr selects a public PR and observes its head's GitHub check runs. source_ranges retrieves missing context at pinned revisions, up to 40 lines per range. Selection is bounded, not exhaustive or proof of compatibility. Without question, returns the cached repository","inputSchema":{"type":"object","oneOf":[{"required":["repo"]},{"required":["package"]}],"properties":{"pr":{"type":"integer","minimum":1},"repo":{"type":"string","minLength":3},"owner":{"type":"string","minLength":1},"package":{"type":"string","minLength":1},"base_sha":{"type":"string","pattern":"^[a-fA-F0-9]{40}$"},"question":{"type":"string","maxLength":600,"minLength":1},"path_hints":{"type":"array","items":{"type":"string","maxLength":4096,"minLength":1},"maxItems":4},"checked_sha":{"type":"string","pattern":"^[a-fA-F0-9]{40}$"},"source_ranges":{"type":"array","items":{"type":"object","required":["path","start_line","end_line"],"properties":{"path":{"type":"string","maxLength":4096,"minLength":1},"side":{"enum":["head","base"],"type":"string","default":"head"},"end_line":{"type":"integer","minimum":1},"start_line":{"type":"integer","minimum":1}},"additionalProperties":false},"maxItems":4}},"additionalProperties":false},"title":"Inspect repository source evidence or get a decision brief","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"analyze_repo","displayName":"Inspect repository source evidence or get a decision brief"},{"name":"plan_repo_task","description":"CALL before editing an unfamiliar public repository. Returns a bounded reading order, relevant files, dependency consumers, test/verification obligations, analyzed-vs-checked SHA relation, evidence provenance, and a short-lived verification contract. Task text is used only for bounded local matching and is never persisted raw.","inputSchema":{"type":"object","oneOf":[{"required":["repo"]},{"required":["package"]}],"required":["task"],"properties":{"repo":{"type":"string","minLength":3},"task":{"type":"string","maxLength":500,"minLength":1},"owner":{"type":"string","minLength":1},"intent":{"type":"object","required":["kind"],"properties":{"kind":{"enum":["dependency_change","bug_fix","feature","refactor","unknown"],"type":"string"},"dependency":{"type":"string","maxLength":214},"to_version":{"type":"string","maxLength":128},"from_version":{"type":"string","maxLength":128}},"additionalProperties":false},"package":{"type":"string","minLength":1},"max_files":{"type":"integer","default":12,"maximum":20,"minimum":1},"path_hints":{"type":"array","items":{"type":"string","maxLength":512,"minLength":1},"maxItems":10},"checked_sha":{"type":"string","pattern":"^[a-fA-F0-9]{40}$"}},"additionalProperties":false},"title":"Plan a task against repository evidence and a checked SHA","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"plan_repo_task","displayName":"Plan a task against repository evidence and a checked SHA"},{"name":"get_artifact","description":"CALL before substantial code work in an unfamiliar repository when the agent needs key files, entry points, architecture hypotheses, a reading order, and verify-before-trusting guidance. Returns the cached CLAUDE.md-style artifact or Cursor rules. Do not call again if the artifact is already in context. Takes NO artifact id: name the repository itself. Minimal call: {\"repo\":\"vercel/next.js\"}. Pass exactly one of repo or package, each a plain string.","inputSchema":{"type":"object","oneOf":[{"required":["repo"]},{"required":["package"]}],"properties":{"repo":{"type":"string","minLength":3},"owner":{"type":"string","minLength":1},"format":{"enum":["markdown","cursor"],"type":"string","default":"markdown"},"package":{"type":"string","minLength":1}},"additionalProperties":false},"title":"Orient an agent in an unfamiliar repository","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_artifact","displayName":"Orient an agent in an unfamiliar repository"},{"name":"compare_repos","description":"CALL when the user is choosing between exactly two dependencies or repositories. Returns the preferred candidate for each use case, material trade-offs, confidence, and evidence gaps. Each target is owner/repo, a GitHub URL, an npm package name, or npm:@scope/pkg. Cached full analyses are preferred; a miss uses bounded live GitHub/OpenSSF evidence with limited confidence and explicit unknowns rather than guessing.","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","minLength":1},"b":{"type":"string","minLength":1}},"additionalProperties":false},"title":"Compare two repository choices","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"compare_repos","displayName":"Compare two repository choices"},{"name":"check_change_risk","description":"CALL before merging a pull request or after producing a local diff. Returns a deterministic 0-10 change-shape score with receipts for size, spread, missing tests, sensitive paths, hotspots, and blast radius. Pass repo+pr OR diff; repo may accompany diff for cached hotspot context. This prioritizes review and never approves a merge.","inputSchema":{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["pr"]},{"required":["files"]}]},"required":["diff"]},{"not":{"anyOf":[{"required":["diff"]},{"required":["files"]}]},"required":["repo","pr"]},{"not":{"anyOf":[{"required":["diff"]},{"required":["pr"]}]},"required":["files"]}],"properties":{"pr":{"type":["number","string"]},"diff":{"type":"string","minLength":1},"repo":{"type":"string","minLength":3},"files":{"type":"array","items":{"type":"object","required":["path","additions","deletions","status"],"properties":{"path":{"type":"string","maxLength":512,"minLength":1},"status":{"enum":["added","modified","removed","renamed","copied","changed"],"type":"string"},"additions":{"type":"integer","maximum":1000000,"minimum":0},"deletions":{"type":"integer","maximum":1000000,"minimum":0},"previousPath":{"type":"string","maxLength":512,"minLength":1},"line_counts_known":{"type":"boolean"}},"additionalProperties":false},"maxItems":250,"minItems":1},"proofs":{"type":"array","items":{"type":"object","required":["obligation_id","status","source"],"properties":{"source":{"enum":["client_reported","github_check"],"type":"string"},"status":{"enum":["passed","failed","skipped"],"type":"string"},"duration_ms":{"type":"integer","maximum":86400000,"minimum":0},"obligation_id":{"type":"string","maxLength":80,"minLength":1}},"additionalProperties":false},"maxItems":20},"base_sha":{"type":"string","pattern":"^[a-fA-F0-9]{40}$"},"head_sha":{"type":"string","pattern":"^[a-fA-F0-9]{40}$"},"contract_id":{"type":"string","pattern":"^[a-fA-F0-9]{32}$"}},"additionalProperties":false},"title":"Prioritize review for a PR or diff","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"check_change_risk","displayName":"Prioritize review for a PR or diff"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=RepoPilot&config=eyJ1cmwiOiAiaHR0cHM6Ly9yZXBvcGlsb3QuYXBwL2FwaS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22RepoPilot%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Frepopilot.app%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22RepoPilot%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Frepopilot.app%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=RepoPilot&connectorUrl=https%3A%2F%2Frepopilot.app%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"RepoPilot\" --url \"https://repopilot.app/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/repopilot-mcp-7daf4ebe12","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/repopilot-mcp-7daf4ebe12/tools/{tool}","mcpServerUrl":"https://repopilot.app/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/repopilot-mcp-7daf4ebe12?live=1"}