RepoPilot
Server Details
Repository evidence for agents before they adopt dependencies, enter codebases, compare, or merge.
- Status
- Healthy
- Uptime
- 100.0% over 46 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
Several tools cluster around dependency evaluation (check_dependency, evaluate_dependency_change, verify_dependency_change, compare_repos) and around repo understanding (analyze_repo, plan_repo_task, get_artifact), creating potential phase confusion. The detailed CALL-when guidance largely disambiguates them, but boundaries require careful reading rather than being obvious from names.
All tool names use snake_case with a leading verb and noun object; even multi-part names (check_change_risk, evaluate_dependency_change) follow the same predictable pattern. No camelCase or inconsistent verb styles are present.
Eight tools is a well-scoped set for repo/dependency intelligence; each maps to a distinct decision or investigation stage (understand repo, evaluate dependency, compare options, assess risk, verify change). The set does not feel bloated or thin.
The surface covers dependency and repo decision lifecycle from discovery through post-change verification, plus code task planning and artifacts. Minor gaps exist, such as no explicit raw file retrieval or PR/issue browsing, but core workflows appear covered.
Available Tools
8 toolsanalyze_repoInspect repository source evidence or get a decision briefARead-onlyIdempotentInspect
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 decision brief. Pass exactly one of repo or package. Example: {repo:'expressjs/multer',question:'How are file size limits handled?',path_hints:['lib/make-middleware.js']}.
| Name | Required | Description | Default |
|---|---|---|---|
| pr | No | Public PR number in repo. Requires question. Omit base_sha. | |
| repo | No | Public GitHub repository as owner/repo or a github.com URL. | |
| owner | No | Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo. | |
| package | No | npm package name, for example lodash or npm:@scope/pkg. To judge a specific VERSION rather than the package as a whole, use evaluate_dependency_change instead. | |
| base_sha | No | Compare source at this base commit; omit when using pr. | |
| question | No | ||
| path_hints | No | Scope retrieval to these repository-relative files or directories. Requires question. | |
| checked_sha | No | Immutable head revision; required with source_ranges. | |
| source_ranges | No | Read only these exact ranges, at most two per file/side and 40 lines per range. Requires question and checked_sha; base side also requires base_sha. Paths must fall within path_hints when supplied. Omit pr for base ranges. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations: selection is bounded, not exhaustive or proof of compatibility; checked_sha pins an immutable revision; pr observes GitHub check runs; source_ranges retrieves missing context at pinned revisions. It does not contradict annotations. A 4 is appropriate because it adds meaningful behavioral nuance without redundancy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient, front-loading the core purpose and then enumerating parameter behaviors in a compact sequence. The example is valuable. It loses one point because the density makes it slightly hard to parse in a single pass, and some information (e.g., 'Requires question') is repeated in the schema. Still, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, multiple modes, output schema present), the description covers the key decision points: repo vs package, question vs no question, pr vs base_sha, and source_ranges constraints. The output schema exists, so return values need not be described. It is not a 5 because the description doesn't explicitly state what happens when both repo and package are omitted or when neither question nor source_ranges is provided, though the schema's oneOf and required constraints partially cover this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents most parameters well. The description adds semantic value by explaining the relationship between parameters (e.g., checked_sha selects a commit, base_sha adds before/after excerpts, pr observes check runs, source_ranges retrieves missing context) and by giving a concrete example. It doesn't fully explain every parameter interaction, but the schema plus description is strong. Baseline 3 is exceeded because the description clarifies the workflow-level meaning of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'CALL to investigate behavior in public source' and immediately distinguishes the two modes (evidence retrieval vs. cached decision brief). It names the sibling alternative (evaluate_dependency_change) for package-version judgment, and the example anchors the intended use. This is specific and differentiates from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: supply question and path_hints for evidence, omit question for the cached brief, pass exactly one of repo or package, and use evaluate_dependency_change for a specific package version. It also states constraints like 'Requires question' and 'Omit base_sha' for pr, which are reinforced in the schema. This is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_change_riskPrioritize review for a PR or diffARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pr | No | Positive pull request number, used with repo. | |
| diff | No | Raw unified git diff to score directly. | |
| repo | No | owner/repo or a github.com URL. | |
| files | No | Privacy-preserving changed-file facts; contains no source or diff hunks. | |
| proofs | No | ||
| base_sha | No | ||
| head_sha | No | ||
| contract_id | No | Optional short-lived contract_id returned by plan_repo_task. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: output is deterministic, it never approves a merge (limit on its authority), and it notes repo caching for hotspot context. It does not detail receipts format, but with readOnlyHint covering the safety dimension, 4 is generous but warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with when to call, the core value (deterministic score with receipts), input modes, and a critical behavioral caveat. Every clause carries information; zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return format needn't be detailed. The description covers invocation timing, input-mode disjunction, scoring dimensions, determinism, and non-approval semantics. It doesn't detail the receipt structure or caching behavior, but given the good annotations and output schema, this is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 63%, and the description fills key gaps: it explains the input-mode semantics (repo+PR OR diff), states repo may accompany diff for cached hotspot context, and notes files array is 'privacy-preserving... contains no source' — clarifying that line counts may be placeholders. This adds meaning beyond the oneOf constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it computes a 'deterministic 0-10 change-shape score' with receipts for specific factors (size, spread, missing tests, sensitive paths, hotspots, blast radius). The verb 'check' plus resources (PR/diff) and the distinct scoring behavior distinguish it from siblings like check_dependency or analyze_repo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'CALL before merging a pull request or after producing a local diff', giving concrete timing. It lists valid input combinations ('repo+pr OR diff; repo may accompany diff') and clarifies it 'prioritizes review and never approves a merge', which sets expectations for when it's appropriate vs not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dependencyCheck a dependency before adoptionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Public GitHub repository as owner/repo or a github.com URL. | |
| owner | No | Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo. | |
| package | No | npm package name, for example lodash or npm:@scope/pkg. To judge a specific VERSION rather than the package as a whole, use evaluate_dependency_change instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior; the description adds the important caveat that a favourable result does not validate an exact package version or compatibility. It also describes what kind of report is returned (lean repository-level recommendation, CVEs, maintenance, etc.), which is useful beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it starts with the trigger condition, then the return value, then exclusions and constraints. Each sentence carries distinct information, and the longer list of returned fields is informative rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open-world read-only annotations and presence of an output schema, the description adequately covers triggers, parameter constraints, and the key version/compatibility limitation. It does not explicitly differentiate from all siblings like verify_dependency_change, but the 'before adoption' framing and version-routing rule are sufficient for an agent to select it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, yet the description still adds meaning by enforcing 'exactly one of repo or package' and clarifying that repo can be owner/repo or a github.com URL. The package parameter description also points users to evaluate_dependency_change for version checks, making parameter choice unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('check') and resource ('dependency before adoption') and lists concrete triggers: add, upgrade, trust, fork, or deploy. It also distinguishes itself from code navigation and from evaluate_dependency_change for version-specific checks, so an agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It opens with an explicit 'CALL when...' list of adoption scenarios and includes a 'DO NOT use for code navigation' exclusion. It further routes version-specific judgments to evaluate_dependency_change, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_reposCompare two repository choicesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First repo or npm package target. | |
| b | Yes | Second repo or npm package target. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, non-destructive. The description adds valuable behavioral detail beyond these: it discloses that on a cache miss it uses bounded live GitHub/OpenSSF evidence with limited confidence and explicit unknowns rather than fabricated certainty. This is honest about limitations and return variability based on cache state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, tightly packed with useful information: when to call, what's returned, accepted formats, and behavioral caveats. No wasted words or repetition of annotation content. Front-loaded with the trigger condition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has an output schema and rich annotations, so description needn't cover return value structure. It covers trigger condition, target format inputs, evidence sourcing behavior, and confidence caveats. For a comparison tool with simple two-string inputs and disclosed fallback strategy, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters a and b are documented. The description also adds meaning by explaining accepted formats (owner/repo, GitHub URL, npm package name, npm:@scope/pkg) which extends beyond the schema's generic 'repo or npm package target'. However, it doesn't clarify dimensional/ordering semantics (e.g., whether a/b order matters) beyond what the schema provides, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares two repository/dependency choices and lists what it returns (preferred candidate per use case, trade-offs, confidence, evidence gaps). It explicitly scopes to 'exactly two' choices, distinguishing it from single-repo analysis siblings. The accepted target formats are enumerated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to CALL ('when the user is choosing between exactly two dependencies or repositories') and implies when NOT to (single choice). It describes the fallback behavior: cached analyses preferred, bounded live evidence on miss with explicit unknowns rather than guessing. This provides strong guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_dependency_changeEvaluate an exact dependency change in project contextARead-onlyIdempotentInspect
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 install <pkg> would. to_version also accepts a dist-tag ("latest") or a SemVer range ("^4.17.0"); it resolves to one exact version, reported back in change.to_version. Everything RepoPilot can infer is inferred, and every default, repair, and resolution is listed in input_adjustments. Evaluates only; never installs or edits anything.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | No | Optional free text describing why you are making this change. Advisory only; it changes no verdict. | |
| project | No | Optional, source-free facts about the project you are changing. Supplying it adds Node/peer/license compatibility and a command-level verification plan. Omit it entirely and compatibility comes back "unknown" - read that as not checked, never as no problem found. Every field is optional; anything missing is defaulted and reported in input_adjustments, never rejected. Never send source code. | |
| dependency | Yes | A STRING: the npm package name on its own, with no version and no surrounding object — "lodash", "@types/node". Not {"name":...}, not {"lodash":"^4.17.0"}, not a list, and never wrapped in a top-level {"change":{...}} object — every field here is top-level. The version goes in to_version, the currently installed one in from_version. | |
| to_version | No | The version you intend to install — an exact version ("4.18.1"), a dist-tag ("latest"), or a SemVer range ("^4.17.0"). A quoted string is preferred; a bare JSON number ("to_version": 19) is also accepted and read as the string "19". Omit to evaluate the latest published version. | |
| from_version | No | The version currently installed, or omitted when adding a new dependency. A bare JSON number is accepted the same way as to_version. Supplying it produces a before/after advisory comparison. | |
| policy_profile | No | Named team dependency policy. Strict requires provenance and denies package install hooks. Must be spelled exactly — a near-miss spelling is rejected rather than guessed, because reading it wrong would answer under a policy you did not ask for. | balanced |
| dependency_type | No | Where the dependency goes, in THESE words: "runtime" for a dependencies entry, "development" for devDependencies. The manifest and CLI spellings ("dev", "devDependencies", "--save-dev", "prod") are mapped onto these and reported in input_adjustments. | runtime |
| package_manager | No | Optional. Only affects the commands and lockfile named in the verification plan. Inferred from project.lockfile_path when you send a project snapshot, and assumed to be npm otherwise. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, yet the description adds real behavioral context on top: everything inferred is recorded in input_adjustments, a missing project snapshot yields "unknown" compatibility which must be read as "not checked, never no problem found", and policy_profile mis-spellings are rejected rather than guessed. That is precisely the extra disclosure annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger and the question it answers, followed by inputs, defaults, and the no-side-effects guarantee. It is dense but nearly every sentence carries a distinct, actionable fact; only the repeated "never nested under a change key" warning overlaps with the schema text and costs a little tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation-adjacent but read-only tool with a rich nested schema, an output schema, and strong annotations, the description covers the trigger, the shape of the return (blockers, warnings, recommendation, verification plan), the input-resolution behavior, and the no-write guarantee. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: only `dependency` is required, omitting to_version evaluates the latest published version exactly as npm install would, and a dist-tag or SemVer range resolves to one exact version reported in change.to_version. It also warns that dependency is a bare string and every field is top-level, never nested under a "change" key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — evaluates an exact dependency change — and scopes it with concrete evidence sources (registry metadata, advisory deltas, provenance, license, repository evidence). It never names the near siblings check_dependency or verify_dependency_change, so the agent must infer which one applies, which keeps it out of the 5 band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"CALL immediately before adding or upgrading an npm dependency" gives a clear trigger condition, and "Evaluates only; never installs or edits anything" marks the boundary against an install action. There is no explicit when-not or named alternative among the sibling tools, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artifactOrient an agent in an unfamiliar repositoryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Public GitHub repository as owner/repo or a github.com URL. | |
| owner | No | Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo. | |
| format | No | Optional. markdown for CLAUDE.md-style guidance (the default); cursor for .mdc rules. | markdown |
| package | No | npm package name, for example lodash or npm:@scope/pkg. To judge a specific VERSION rather than the package as a whole, use evaluate_dependency_change instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already assert read-only, idempotent, open-world, and non-destructive behavior; the description adds cache semantics ('cached CLAUDE.md-style artifact'), verify-before-trusting guidance, and a caution about context reuse. No contradiction with annotations. It doesn't address staleness or auth, but the annotation profile lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the when-to-call condition, then gives output, cancellation, and input-constraint guidance in compact sentences. Every sentence earns its place, and the minimal-call example is a high-value addition rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, 4-parameter, read-only tool with a rich schema, an output schema, and safety annotations, the description covers when, why, how to call, and when not to call. Nothing essential is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds value beyond the schema by stating that there is no artifact id, that exactly one of repo or package must be supplied, and that each must be a plain string. The minimal-call example reinforces the required shape without repeating every schema property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (repository/package), a precise action (return the cached CLAUDE.md-style artifact or Cursor rules), and a clear purpose (orient the agent before substantial code work). It also clarifies that there is no artifact id, avoiding confusion with the tool name. It does not explicitly differentiate from siblings like analyze_repo or compare_repos, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger condition ('CALL before substantial code work in an unfamiliar repository when...'), a clear do-not-call rule ('Do not call again if the artifact is already in context'), and an explicit alternative for version-specific judgment (evaluate_dependency_change in the package parameter). This fully routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_repo_taskPlan a task against repository evidence and a checked SHAARead-onlyInspect
CALL before editing an unfamiliar public repository, or to find where a bug or feature lives. Pass the issue or task text (up to 4000 characters; include the error and expected behaviour) and checked_sha when you know it. Returns files ranked for the task at that commit (provenance task_localizer), the owning layer, a bounded reading order, dependency consumers, test/verification obligations, analyzed-vs-checked SHA relation, evidence provenance, and a short-lived verification contract. To rank files, task text is sent to RepoPilot's model provider; it is never persisted or echoed. Rankings are suggestions: read the files before acting.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Public GitHub repository as owner/repo or a github.com URL. | |
| task | Yes | ||
| owner | No | Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo. | |
| intent | No | ||
| package | No | npm package name, for example lodash or npm:@scope/pkg. To judge a specific VERSION rather than the package as a whole, use evaluate_dependency_change instead. | |
| max_files | No | ||
| path_hints | No | Optional repository-relative files or directories to prioritize. | |
| checked_sha | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint, openWorldHint, and destructiveHint, so the bar is lower. The description still adds valuable non-obvious context: task text is sent to RepoPilot's model provider, is never persisted or echoed, and rankings are suggestions rather than authoritative actions. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: call-to-action, input guidance, output summary, privacy disclosure, and a caveat. It is front-loaded with the most important usage signal and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main repo-based use case, output categories, and privacy behavior, and an output schema exists to carry return-value details. However, it ignores the package input branch of the oneOf schema, does not explain intent or max_files, and leaves the 'short-lived verification contract' vague. For a complex 8-parameter tool, this is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is about 50%, so the description must compensate. It adds useful meaning for task (max 4000 chars, include error and expected behaviour) and checked_sha (pass when known). But intent, max_files, path_hints, and the repo/package branch remain underdescribed, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action and resource: planning a task against repository evidence, finding where a bug or feature lives, and returning ranked files. It is specific and useful, but it does not explicitly distinguish this tool from sibling tools such as analyze_repo or check_change_risk, so it misses the differentiator needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete when-to-use guidance: 'CALL before editing an unfamiliar public repository, or to find where a bug or feature lives.' It also tells the agent what to include in task text and when to pass checked_sha. However, it does not name alternatives or state when not to use this tool, so it falls short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_dependency_changeVerify a dependency change after local workARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | No | ||
| after | Yes | ||
| checks | Yes | ||
| evaluation | Yes | The verification_context object exactly as evaluate_dependency_change returned it, passed back unchanged. Its signature covers every field, so edit nothing inside it. Sending the whole evaluate result instead is accepted; the receipt is read out of its verification_context. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| agent | Yes | |
| status | Yes | |
| schema_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real disclosure: it refuses to run commands, does not store diff or check output, and explicitly marks receipts as caller asserted rather than verified. That trust-model statement is exactly the kind of context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the imperative call condition, then the comparison behavior, then the negative constraints. No sentence is filler or restates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter, deeply nested verification tool with an output schema present, the description covers when to call, what is compared, what is reported, and what the tool will not do. Return-value detail is legitimately delegated to the output schema; only fine-grained input semantics remain thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% across four nested parameters, so the description must carry more weight, and it does clarify the roles of the three inputs (evaluated target, resolved result, proof receipts) at a conceptual level. However, it adds no field-level or format guidance beyond what the schema and its embedded descriptions already state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific action (verifies a dependency change by comparing the evaluated target against the resolved result and caller proof receipts) and states its outputs (missing/failed evidence, residual risk, caller-asserted labeling). This is clearly distinguishable from evaluate_dependency_change, which produces the evaluation this tool consumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"CALL after changing the manifest/lockfile and running local checks" gives an explicit triggering condition that an agent can act on. It does not name the alternative tools or state when not to call it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
evaluate_dependency_change2 fields changed- changed
Input schema / properties / project / properties / dependency_usage / descriptionPrevious value: -"Optional local call shapes for this dependency under native Node with default conditions. No source, paths, local names or call arguments. Coverage is always partial; transpiled/bundled code is unsupported."New value: +"Optional local call shapes for this dependency under native Node with default conditions. No source, paths, local names or call arguments. Coverage is always partial; transpiled CommonJS output is read, bundles are unsupported. instance_member names a method called on an instance of the export." - added
Input schema / properties / project / properties / dependency_usage / properties / uses / items / properties / instance_memberAdded value: +{ + "maxLength": 100, + "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$", + "type": "string" +}
- Changed
verify_dependency_change2 fields changed- changed
Input schema / properties / after / properties / dependency_usage / descriptionPrevious value: -"Optional local call shapes for this dependency under native Node with default conditions. No source, paths, local names or call arguments. Coverage is always partial; transpiled/bundled code is unsupported."New value: +"Optional local call shapes for this dependency under native Node with default conditions. No source, paths, local names or call arguments. Coverage is always partial; transpiled CommonJS output is read, bundles are unsupported. instance_member names a method called on an instance of the export." - added
Input schema / properties / after / properties / dependency_usage / properties / uses / items / properties / instance_memberAdded value: +{ + "maxLength": 100, + "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$", + "type": "string" +}
1 tool update
- Changed
plan_repo_task1 field changed- changed
Input schema / properties / task / maxLengthPrevious value: -500New value: +4000
2 tool updates
- Changed
evaluate_dependency_change1 field changed- added
Input schema / properties / project / properties / dependency_usageAdded value: +{ + "additionalProperties": false, + "description": "Optional local call shapes for this dependency under native Node with default conditions. No source, paths, local names or call arguments. Coverage is always partial; transpiled/bundled code is unsupported.", + "properties": { + "coverage": { + "const": "partial", + "type": "string" + }, + "runtime": { + "additionalProperties": false, + "properties": { + "arch": { + "maxLength": 32, + "pattern": "^[a-z0-9_]+$", + "type": "string" + }, + "node": { + "maxLength": 32, + "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$", + "type": "string" + }, + "platform": { + "maxLength": 32, + "pattern": "^[a-z0-9_]+$", + "type": "string" + } + }, + "required": [ + "node", + "platform", + "arch" + ], + "type": "object" + }, + "schema_version": { + "const": 1, + "type": "integer" + }, + "uses": { + "items": { + "additionalProperties": false, + "properties": { + "export_path": { + "items": { + "maxLength": 100, + "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$", + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "loader": { + "enum": [ + "require", + "import" + ], + "type": "string" + } + }, + "required": [ + "loader", + "export_path" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "schema_version", + "runtime", + "coverage", + "uses" + ], + "type": "object" +}
- Changed
verify_dependency_change1 field changed- added
Input schema / properties / after / properties / dependency_usageAdded value: +{ + "additionalProperties": false, + "description": "Optional local call shapes for this dependency under native Node with default conditions. No source, paths, local names or call arguments. Coverage is always partial; transpiled/bundled code is unsupported.", + "properties": { + "coverage": { + "const": "partial", + "type": "string" + }, + "runtime": { + "additionalProperties": false, + "properties": { + "arch": { + "maxLength": 32, + "pattern": "^[a-z0-9_]+$", + "type": "string" + }, + "node": { + "maxLength": 32, + "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$", + "type": "string" + }, + "platform": { + "maxLength": 32, + "pattern": "^[a-z0-9_]+$", + "type": "string" + } + }, + "required": [ + "node", + "platform", + "arch" + ], + "type": "object" + }, + "schema_version": { + "const": 1, + "type": "integer" + }, + "uses": { + "items": { + "additionalProperties": false, + "properties": { + "export_path": { + "items": { + "maxLength": 100, + "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$", + "type": "string" + }, + "maxItems": 2, + "type": "array" + }, + "loader": { + "enum": [ + "require", + "import" + ], + "type": "string" + } + }, + "required": [ + "loader", + "export_path" + ], + "type": "object" + }, + "maxItems": 50, + "type": "array" + } + }, + "required": [ + "schema_version", + "runtime", + "coverage", + "uses" + ], + "type": "object" +}
1 tool update
- Changed
analyze_repo2 fields changed- added
Input schema / properties / checked_sha / descriptionAdded value: +"Immutable head revision; required with source_ranges." - added
Input schema / properties / source_rangesAdded value: +{ + "description": "Read only these exact ranges, at most two per file/side and 40 lines per range. Requires question and checked_sha; base side also requires base_sha. Paths must fall within path_hints when supplied. Omit pr for base ranges.", + "items": { + "additionalProperties": false, + "properties": { + "end_line": { + "description": "Last line, inclusive; from start_line through start_line + 39.", + "minimum": 1, + "type": "integer" + }, + "path": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "side": { + "default": "head", + "enum": [ + "head", + "base" + ], + "type": "string" + }, + "start_line": { + "description": "First line, inclusive, 1-based.", + "minimum": 1, + "type": "integer" + } + }, + "required": [ + "path", + "start_line", + "end_line" + ], + "type": "object" + }, + "maxItems": 4, + "type": "array" +}
1 tool update
- Changed
analyze_repo5 fields changed- added
Input schema / properties / base_shaAdded value: +{ + "description": "Compare source at this base commit; omit when using pr.", + "pattern": "^[a-fA-F0-9]{40}$", + "type": "string" +} - added
Input schema / properties / checked_shaAdded value: +{ + "pattern": "^[a-fA-F0-9]{40}$", + "type": "string" +} - added
Input schema / properties / path_hintsAdded value: +{ + "description": "Scope retrieval to these repository-relative files or directories. Requires question.", + "items": { + "maxLength": 4096, + "minLength": 1, + "type": "string" + }, + "maxItems": 4, + "type": "array" +} - added
Input schema / properties / prAdded value: +{ + "description": "Public PR number in repo. Requires question. Omit base_sha.", + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / questionAdded value: +{ + "maxLength": 600, + "minLength": 1, + "type": "string" +}
4 tool updates
- Changed
analyze_repo1 field changed- added
Input schema / properties / ownerAdded value: +{ + "description": "Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo.", + "minLength": 1, + "type": "string" +}
- Changed
check_dependency1 field changed- added
Input schema / properties / ownerAdded value: +{ + "description": "Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo.", + "minLength": 1, + "type": "string" +}
- Changed
get_artifact4 fields changed- added
Input schema / descriptionAdded value: +"Name one repository (or one npm package) as a plain string. There is no artifact id in this contract. Minimal valid call: {\"repo\":\"vercel/next.js\"}." - added
Input schema / examplesAdded value: +[ + { + "repo": "vercel/next.js" + }, + { + "format": "cursor", + "repo": "vercel/next.js" + }, + { + "package": "lodash" + } +] - changed
Input schema / properties / format / descriptionPrevious value: -"markdown for CLAUDE.md-style guidance; cursor for .mdc rules."New value: +"Optional. markdown for CLAUDE.md-style guidance (the default); cursor for .mdc rules." - added
Input schema / properties / ownerAdded value: +{ + "description": "Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo.", + "minLength": 1, + "type": "string" +}
- Changed
plan_repo_task1 field changed- added
Input schema / properties / ownerAdded value: +{ + "description": "Repository owner, when repo carries only the bare name. Optional: prefer the single owner/repo form in repo.", + "minLength": 1, + "type": "string" +}
1 tool update
- Changed
evaluate_dependency_change5 fields changed- changed
Input schema / properties / dependency / descriptionPrevious value: -"A STRING: the npm package name on its own, with no version and no surrounding object — \"lodash\", \"@types/node\". Not {\"name\":...}, not {\"lodash\":\"^4.17.0\"}, not a list. The version goes in to_version, the currently installed one in from_version."New value: +"A STRING: the npm package name on its own, with no version and no surrounding object — \"lodash\", \"@types/node\". Not {\"name\":...}, not {\"lodash\":\"^4.17.0\"}, not a list, and never wrapped in a top-level {\"change\":{...}} object — every field here is top-level. The version goes in to_version, the currently installed one in from_version." - changed
Input schema / properties / from_version / descriptionPrevious value: -"The version currently installed, or omitted when adding a new dependency. Supplying it produces a before/after advisory comparison."New value: +"The version currently installed, or omitted when adding a new dependency. A bare JSON number is accepted the same way as to_version. Supplying it produces a before/after advisory comparison." - changed
Input schema / properties / from_version / typePrevious value: -[ - "string", - "null" -]New value: +[ + "string", + "number", + "null" +] - changed
Input schema / properties / to_version / descriptionPrevious value: -"A STRING: the version you intend to install — an exact version (\"4.18.1\"), a dist-tag (\"latest\"), or a SemVer range (\"^4.17.0\"). Quote it even when it looks numeric (\"19\", not 19). Omit to evaluate the latest published version."New value: +"The version you intend to install — an exact version (\"4.18.1\"), a dist-tag (\"latest\"), or a SemVer range (\"^4.17.0\"). A quoted string is preferred; a bare JSON number (\"to_version\": 19) is also accepted and read as the string \"19\". Omit to evaluate the latest published version." - changed
Input schema / properties / to_version / typePrevious value: -"string"New value: +[ + "string", + "number" +]
2 tool updates
- Changed
evaluate_dependency_change3 fields changed- changed
Input schema / properties / dependency / descriptionPrevious value: -"The npm package name on its own, with no version — \"lodash\", \"@types/node\"."New value: +"A STRING: the npm package name on its own, with no version and no surrounding object — \"lodash\", \"@types/node\". Not {\"name\":...}, not {\"lodash\":\"^4.17.0\"}, not a list. The version goes in to_version, the currently installed one in from_version." - changed
Input schema / properties / dependency_type / descriptionPrevious value: -"Where the dependency goes. Defaults to runtime."New value: +"Where the dependency goes, in THESE words: \"runtime\" for a dependencies entry, \"development\" for devDependencies. The manifest and CLI spellings (\"dev\", \"devDependencies\", \"--save-dev\", \"prod\") are mapped onto these and reported in input_adjustments." - changed
Input schema / properties / to_version / descriptionPrevious value: -"The version you intend to install: an exact version (\"4.18.1\"), a dist-tag (\"latest\"), or a SemVer range (\"^4.17.0\"). Omit to evaluate the latest published version."New value: +"A STRING: the version you intend to install — an exact version (\"4.18.1\"), a dist-tag (\"latest\"), or a SemVer range (\"^4.17.0\"). Quote it even when it looks numeric (\"19\", not 19). Omit to evaluate the latest published version."
- Changed
verify_dependency_change1 field changed- added
Input schema / properties / evaluation / descriptionAdded value: +"The verification_context object exactly as evaluate_dependency_change returned it, passed back unchanged. Its signature covers every field, so edit nothing inside it. Sending the whole evaluate result instead is accepted; the receipt is read out of its verification_context."
1 tool update
- Changed
evaluate_dependency_change14 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / examplesPrevious value: -[ - { - "change": { - "name": "lodash", - "to_version": "latest" - } - }, - { - "change": { - "from_version": "4.18.2", - "name": "express", - "to_version": "^5.0.0" - } - }, - { - "change": { - "dependency_type": "runtime", - "name": "zod", - "to_version": "3.23.8" - }, - "policy_profile": "strict", - "project": { - "direct_dependencies": { - "zod": "^3.22.0" - }, - "installed_versions": { - "zod": "3.22.4" - }, - "node_version": "20.11.0", - "package_manager": "pnpm", - "scripts": [ - "build", - "test" - ] - } - } -]New value: +[ + { + "dependency": "lodash", + "to_version": "4.17.21" + }, + { + "dependency": "express", + "from_version": "4.18.2", + "to_version": "^5.0.0" + }, + { + "dependency": "zod", + "policy_profile": "strict", + "project": { + "direct_dependencies": { + "zod": "^3.22.0" + }, + "installed_versions": { + "zod": "3.22.4" + }, + "node_version": "20.11.0", + "package_manager": "pnpm", + "scripts": [ + "build", + "test" + ] + }, + "to_version": "3.23.8" + } +] - removed
Input schema / properties / changeRemoved value: -{ - "additionalProperties": true, - "description": "The single dependency you are about to add or upgrade. One dependency per call.", - "properties": { - "dependency_type": { - "default": "runtime", - "description": "Where the dependency goes. Defaults to runtime.", - "enum": [ - "runtime", - "development", - "optional", - "peer" - ], - "type": "string" - }, - "ecosystem": { - "const": "npm", - "default": "npm", - "description": "Always npm. Omit it.", - "type": "string" - }, - "from_version": { - "description": "The version currently installed, or null / omitted when adding a new dependency. Supplying it is what produces a before/after advisory comparison. Alias keys \"current_version\", \"old_version\", \"previous_version\", and \"installed_version\" are adopted onto it.", - "maxLength": 128, - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "The npm package name on its own — \"lodash\", \"@types/node\". Do NOT append a version here; a \"name@version\" spec is split for you and reported in input_adjustments. Alias keys \"package\", \"package_name\", \"pkg\", \"dep\", \"dependency\", \"dependency_name\", \"module\", \"library\", \"npm_package\", \"npm_package_name\", \"package_spec\", and \"dependency_spec\" are adopted onto it, as is any case or separator variant of \"name\".", - "maxLength": 214, - "minLength": 1, - "type": "string" - }, - "to_version": { - "description": "The version you intend to install: an exact version (\"4.18.1\"), a dist-tag (\"latest\"), or a SemVer range (\"^4.17.0\", \"~1.2\", \"4.x\"). Omit it entirely to evaluate the latest published version, which is what plain `npm install <pkg>` would give you. Ranges and tags resolve to one exact version — read change.to_version in the response for the version the verdict actually covers. Alias keys \"version\", \"target_version\", \"new_version\", \"desired_version\", and \"requested_version\" are adopted onto it.", - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" -} - added
Input schema / properties / dependencyAdded value: +{ + "description": "The npm package name on its own, with no version — \"lodash\", \"@types/node\".", + "maxLength": 214, + "minLength": 1, + "pattern": "^(@[^/\\s]+/)?[^@/\\s][^/\\s]*$", + "type": "string" +} - added
Input schema / properties / dependency_typeAdded value: +{ + "default": "runtime", + "description": "Where the dependency goes. Defaults to runtime.", + "enum": [ + "runtime", + "development", + "optional", + "peer" + ], + "type": "string" +} - added
Input schema / properties / from_versionAdded value: +{ + "description": "The version currently installed, or omitted when adding a new dependency. Supplying it produces a before/after advisory comparison.", + "maxLength": 128, + "type": [ + "string", + "null" + ] +} - changed
Input schema / properties / intent / descriptionPrevious value: -"Optional free text describing why you are making this change. Advisory only; it changes no verdict. Note this is a plain string here — plan_repo_task takes an object under the same name."New value: +"Optional free text describing why you are making this change. Advisory only; it changes no verdict." - added
Input schema / properties / package_managerAdded value: +{ + "description": "Optional. Only affects the commands and lockfile named in the verification plan. Inferred from project.lockfile_path when you send a project snapshot, and assumed to be npm otherwise.", + "enum": [ + "npm", + "pnpm", + "yarn", + "bun" + ], + "type": "string" +} - changed
Input schema / properties / policy_profile / descriptionPrevious value: -"Named team dependency policy. Strict requires provenance and denies package install hooks. This is the one key that must be spelled exactly — a near-miss spelling is rejected rather than guessed, because reading it wrong would answer under a policy you did not ask for."New value: +"Named team dependency policy. Strict requires provenance and denies package install hooks. Must be spelled exactly — a near-miss spelling is rejected rather than guessed, because reading it wrong would answer under a policy you did not ask for." - changed
Input schema / properties / project / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / properties / project / descriptionPrevious value: -"Optional, source-free facts about the project you are changing. Supplying it adds Node/peer/license compatibility and a command-level verification plan. Omit it entirely and compatibility comes back \"unknown\" — read that as not checked, never as no problem found. If you DO send it, package_manager is the one field you must include: it selects the lockfile and the commands in the verification plan, so guessing it would hand you instructions for the wrong repository. Every other field is optional and any that are missing are defaulted and reported, not rejected. Never send source code."New value: +"Optional, source-free facts about the project you are changing. Supplying it adds Node/peer/license compatibility and a command-level verification plan. Omit it entirely and compatibility comes back \"unknown\" - read that as not checked, never as no problem found. Every field is optional; anything missing is defaulted and reported in input_adjustments, never rejected. Never send source code." - removed
Input schema / properties / project / requiredRemoved value: -[ - "package_manager" -] - added
Input schema / properties / to_versionAdded value: +{ + "description": "The version you intend to install: an exact version (\"4.18.1\"), a dist-tag (\"latest\"), or a SemVer range (\"^4.17.0\"). Omit to evaluate the latest published version.", + "maxLength": 128, + "minLength": 1, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "change" -]New value: +[ + "dependency" +]
Related MCP Connectors
Machine-native research commons for agent evidence, discovery, rooms, and bounded research quests.
Evidence infrastructure for agents: source-backed company verification and beta import assessment.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Project memory for coding agents: requirements, decisions, code graph and delivery telemetry.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables coding agents to analyze a repository evidence-first, answering questions as verifiable claims with source evidence, targeted test observations, and reference resolution.53Apache 2.0
- AlicenseNot gradedqualityAmaintenanceLocal-first evidence-backed repository memory for coding agents, providing read-only tools to list concepts, explain them, get governed context packs, and verify claims against the codebase.11Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents and hosts to enforce deterministic repository boundaries via MCP, providing structured reads, supervised edits, snapshots, audits, and recovery with machine-readable evidence.MIT
- AlicenseNot gradedqualityAmaintenanceProvides local-first repository architecture analysis with file-level proof, enabling agents to map codebases, locate implementations, trace call paths, and assess change impact with deterministic evidence.4 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.