Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

DepFeed

REMOTE · DEPFEED.DEV · SCANNED OCT 7

Change intelligence for coding agents: sourced breaking changes for npm, PyPI, and Rust packages.

Available components

0 this week 23 Trust /100

Recent critical change

Authorization (3 Aug 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
  • Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
  • Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified

Unverified: 5 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

Install

How do I install the DepFeed MCP server?

DepFeed is a hosted endpoint at https://depfeed.dev/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · depfeed.dev

# add to Claude Code
claude mcp add --transport http dev-depfeed-depfeed 'https://depfeed.dev/'
// .cursor/mcp.json
{
  "mcpServers": {
    "dev-depfeed-depfeed": {
      "url": "https://depfeed.dev/"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "dev-depfeed-depfeed": {
      "type": "http",
      "url": "https://depfeed.dev/"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.dev-depfeed-depfeed]
url = "https://depfeed.dev/"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dev-depfeed-depfeed": {
      "type": "remote",
      "url": "https://depfeed.dev/",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add dev-depfeed-depfeed --url 'https://depfeed.dev/' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  dev-depfeed-depfeed:
    url: "https://depfeed.dev/"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "dev-depfeed-depfeed": {
      "Transport": "http",
      "Url": "https://depfeed.dev/"
    }
  }
}
# add to Vellum
assistant mcp add dev-depfeed-depfeed -t streamable-http -u 'https://depfeed.dev/'
// mcp.json
{
  "mcpServers": {
    "dev-depfeed-depfeed": {
      "type": "http",
      "url": "https://depfeed.dev/"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 0
    • Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. security
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 12 Aug 26 0
    • Endpoint reachability: unreachable → not serving MCP ▼ security
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 10 Aug 26 0
    • Endpoint reachability: not serving MCP → unreachable ▼ security
  • 9 Aug 26 0
    • Endpoint reachability: behind authorisation → not serving MCP ▼ security
    • Transport: unverified → fail ▼ security
    • Authorization: fail → unverified ▼ security
    • Tool coverage: Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list. functional
    • Capabilities: Capabilities not yet verified: we couldn't read the endpoint's capabilities. functional
    • Schema quality: Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list. functional
  • 8 Aug 26 0
    • Endpoint reachability: reachable → behind authorisation ▼ security
    • Authorization: unverified → fail ▼ security
    • Transport: pass → unverified ▼ security
    • Stability: 0.17 → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 7 Oct 2026 · Probed https://depfeed.dev/

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=depfeed.dev CN=YE1,O=Let's Encrypt,C=US 22 Sept 2026 21 Dec 2026 ECDSA 256 ECDSA-SHA384 5c0dbdbcca7011b8003960e841d1d2a378e
SANs: depfeed.dev
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of depfeed.dev. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
depfeed.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Inconclusive

We could not reach the endpoint well enough to judge its authorisation posture.

Result Inconclusive
HTTP status 404

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://depfeed.dev/ HTTP error 404
http (plaintext) http://depfeed.dev/ HTTPS enforced 301 https://depfeed.dev/
MCP tools · 20 exposed · ~3,797 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_breaking_changes ~158

Returns only the breaking changes for an npm package between two versions, as compactly as possible. Use this instead of get_package_updates when the only question is "will upgrading from X to Y break something" - e.g. right before running an upgrade command. If the package isn't covered, trust the structured NotCovered response instead of guessing from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
from_versionstringyesVersion being upgraded from, e.g. "14.2.0"
packagestringyesnpm package name, e.g. "next"
to_versionstringyesVersion being upgraded to, e.g. "15.0.0"
NameTypeReqDescription
breakingarray––
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
overall_recommended_actionstring––
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.

No examples provided.

check_compatibility ~206

Checks whether a set of npm packages (and optionally node itself) are mutually compatible, based on their recorded peerDependencies/engines ranges - e.g. does this react version satisfy what this next version requires. Call this before recommending or performing a multi-package upgrade, not just a single get_package_updates call - a package can look fine on its own and still conflict with a peer. Read the top-level 'overall' field first: 'compatible' means every checked pair is fine, 'incompatible' means at least one real conflict was found, and 'insufficient_data' means the data couldn't confirm either way - trust that and treat 'insufficient_data' exactly like 'incompatible', never guess compatibility from training knowledge. Per-pair detail (including why) is in 'checks'.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
packagesarrayyesPackages (and their versions) to check pairwise against each other.
NameTypeReqDescription
checksarrayyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
overallstringyes–

No examples provided.

check_model_status ~204

Returns whether an AI model_id (Anthropic, OpenAI, or Google) is active, deprecated, or retired - use this before hardcoding or recommending a model_id in code, e.g. when a project pins a specific Anthropic/OpenAI/Google model string that might be old. On 'deprecated' or 'retired', the response includes recommended_successor and the vendor's own source_url for the sunset date - use those instead of picking a replacement from training knowledge, which can't know about a deprecation announced after training. An unlisted model_id returns NotCovered: that means it isn't in DepFeed's curated tracking list, not that it's confirmed still active - trust the NotCovered response instead of assuming either way from training knowledge.

NameTypeReqDescription
model_idstringyesExact API model identifier, e.g. "claude-3-opus-20240229", "gpt-4-turbo", or "gemini-2.5-pro"
NameTypeReqDescription
coveredbooleanyes–
deprecated_onstring––
model_idstring––
packagestring–Present only when covered is false, in place of model_id.
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
recommended_successorstring––
retirement_datestring––
source_urlstring––
statusstring––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.
vendorstring––

No examples provided.

delete_webhook_subscription ~108

Deletes one of the caller's own webhook subscriptions by id (from list_webhook_subscriptions or the register call) - use this to stop deliveries to a decommissioned endpoint, or after status:"failing" shows a target has been unreachable past the retry cap. Team plan only. Scoped to the caller's own key: an id belonging to a different key returns deleted:false, same as an unknown id.

NameTypeReqDescription
idintegeryesSubscription id, e.g. 42
NameTypeReqDescription
deletedbooleanyes–
errorstring––

No examples provided.

get_api_diff ~320

Returns the exact TypeScript export-level diff (removed/changed_signature/added symbols, with printed signatures) between two versions of an npm package, plus a 'flags' array of manifest-level changes over the same range - ESM/CJS format switches, license changes, raised Node engines minimums, and newly added install-time (pre/post)install scripts. Use this when a compiler error after an upgrade points at a specific symbol, or before an upgrade to catch a format/license/engines/install-script change a changelog often doesn't call out explicitly. Deterministic, sourced from the package's own shipped .d.ts and package.json/LICENSE, never a guess. A package with no bundled TypeScript declarations (e.g. one that relies on a separate @types package) returns NotCovered with 'no_types' in the reason - not an empty, misleadingly 'nothing changed' diff. Trust that NotCovered response (the same applies if the package itself isn't covered at all) instead of guessing a diff or flag change from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
from_versionstringyesVersion being upgraded from, e.g. "3.23.8"
max_tokensinteger–Soft budget for the response size; least important changes are dropped first if exceeded.
packagestringyesnpm package name, e.g. "zod"
to_versionstringyesVersion being upgraded to, e.g. "4.0.5"
NameTypeReqDescription
changesarray––
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
flagsarray––
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.
truncatedboolean––
truncated_countinteger––

No examples provided.

get_eol_status ~182

Returns the vendor end-of-life status for a runtime/framework product (e.g. "node", "python", "ubuntu"), sourced from endoflife.date - not an npm package. Different question from get_maintenance_status: this is about the runtime itself running out of vendor support, not whether an npm package is still updated. Without a cycle, reports the most recent release cycle; pass a cycle (e.g. "18") to check a specific major version instead. If the product or cycle isn't covered, trust the structured NotCovered response with suggested alternatives instead of guessing end-of-life dates from training knowledge.

NameTypeReqDescription
cyclestring–A specific release cycle, e.g. "18". Omit to get the most recent cycle.
productstringyesProduct/runtime name as tracked by endoflife.date, e.g. "node"
NameTypeReqDescription
coveredbooleanyes–
cyclestring––
eol_datestring––
is_eolboolean––
packagestring–Present only when covered is false, in place of product.
productstring––
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
source_urlstring––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.

No examples provided.

get_maintenance_status ~202

Answers 'is this package still actively maintained', not 'what changed' - use this when choosing or replacing a dependency, not when upgrading one you already use. Returns 'active', 'stale' (no known release in over a year), or 'unknown' (no release timestamp recorded yet - never guessed). If the package itself isn't covered at all, you get a structured NotCovered response with suggested alternatives instead - trust that over guessing a status from training knowledge. For whether a runtime/framework itself (e.g. Node.js) is running out of vendor support, use get_eol_status instead - a different question about a different data plane. For a broader security/process signal (code review practice, branch protection, known-vulnerability history) instead of release frequency, use get_package_health.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
packagestringyesnpm package name, e.g. "next"
NameTypeReqDescription
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
last_release_atstring––
packagestringyes–
reasonstringyes–
statusstringyes–
suggested_alternativesarray––

No examples provided.

get_migration_recipes ~236

Returns the official, vendor-published migration path (codemod command and/or upgrade guide link) for a major-version jump of an npm package - e.g. next 14 to 15. Call this right after check_compatibility or get_package_updates flags a breaking major upgrade, before writing manual migration steps yourself. Only curated, verified vendor sources are returned - never a self-generated migration plan. An empty 'recipes' array (still covered: true) means the package is tracked but no recipe exists yet for this exact jump - do not invent one, fall back to get_package_updates instead. If the package itself isn't covered at all, trust the structured NotCovered response instead of guessing a migration path from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
from_versionstringyesThe version to migrate from, e.g. "14.2.0".
packagestringyesnpm package name, e.g. "next"
to_versionstringyesThe version to migrate to, e.g. "15.0.0".
NameTypeReqDescription
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
recipesarray––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.

No examples provided.

get_package_health ~155

Returns an npm package's OpenSSF Scorecard signal from deps.dev - code review practice, branch protection, dependency pinning, known-vulnerability history, and similar process/security checks. A second, independent signal from get_maintenance_status (release frequency) - use both together, not one instead of the other. The score is deps.dev's/OpenSSF's aggregated external judgment, marked explicitly as such (is_external_signal), never DepFeed's own assessment. If the package isn't covered, trust the structured NotCovered response instead of guessing a health signal from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
packagestringyesnpm package name, e.g. "express"
NameTypeReqDescription
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
is_external_signalboolean––
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
scorecard_checksarray––
scorecard_scorenumber––
source_urlstring––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.

No examples provided.

get_package_updates ~299

Returns categorized changes (breaking, security, deprecations, notable features) for an npm package since a given version, up to the latest known release. Use this before recommending or performing an upgrade of a dependency, to see what actually changed. If the package isn't covered, you get a structured NotCovered response with alternatives instead of a guess - trust that response, don't fall back to general knowledge about the package. Pro/Team accounts: an uncovered package with a public GitHub changelog may be ingested on-demand instead of an immediate NotCovered - the response then has ingestion_status: 'in_progress' and retry_after_seconds; call again after that many seconds for the real data. This consumes more than the usual 1 quota unit (price is configurable per deployment, 2 by default). Free-plan/unauthenticated callers never trigger this themselves - their NotCovered may instead carry a premium_feature hint pointing at on-demand ingestion as something to try after upgrading, never a guarantee it will actually cover the package.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
max_tokensinteger–Soft budget for the response size; least important entries are dropped first if exceeded.
packagestringyesnpm package name, e.g. "next"
since_versionstringyesVersion the caller already has, e.g. "14.2.0". Changes strictly after this are returned.
NameTypeReqDescription
as_ofstring––
breakingarray––
breaking_countinteger––
coveredbooleanyes–
deprecationsarray––
deprecations_countinteger––
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
has_security_fixboolean––
ingestion_price_unitsinteger––
ingestion_statusstring––
notable_featuresarray––
notable_features_countinteger––
overall_recommended_actionstring––
packagestringyes–
premium_featureobject––
providerstring–Present only when covered is false: which provider answered.
range_coveredstring––
reasonstring–Present only when covered is false: why the lookup failed.
retry_after_secondsinteger––
securityarray––
security_countinteger––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.
to_version_deprecatedstring––
truncatedboolean––
truncated_countinteger––

No examples provided.

get_package_updates_batch ~117

Same as get_package_updates, but for a list of packages in one call - e.g. every dependency changed in a package.json diff or lockfile upgrade. Use this instead of calling get_package_updates once per package to avoid N round-trips. Each package resolves independently: one NotCovered or invalid-version result in the list never blocks the others - trust each item's NotCovered result instead of guessing that package's changes from training knowledge.

NameTypeReqDescription
packagesarrayyesPackages to check, e.g. derived from a package.json diff.
NameTypeReqDescription
blocking_packagesarrayyes–
overall_recommended_actionstringyes–
resultsarrayyes–

No examples provided.

get_provenance ~238

Returns whether one npm package@version was published with verifiable Sigstore/SLSA provenance - a signed proof it was built from a specific commit in a specific public repo by a specific CI workflow, not just uploaded by whoever holds npm credentials. Use this right before an npm install/upgrade to check supply-chain trust for the exact version you're about to pull; distinct from get_package_health's OpenSSF Scorecard (process/practice signals) and get_vulnerabilities (known CVEs) - use all three together, a package can lack provenance and still have zero known vulnerabilities, or vice versa. npm-only for now; a non-npm ecosystem request returns NotCovered. has_provenance: false is a common, valid answer (most npm packages don't opt into provenance yet) - trust it and the structured NotCovered response instead of guessing from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
packagestringyesnpm package name, e.g. "sigstore"
versionstringyesnpm version to check, e.g. "2.3.1"
NameTypeReqDescription
builder_idstring––
commit_shastring––
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
has_provenanceboolean––
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
rekor_log_indexstring––
source_repostring––
source_urlstring––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.
versionstring––
workflow_pathstring––
workflow_refstring––

No examples provided.

get_security_digest ~148

Like get_updates_since, but restricted to category:security entries across all covered packages - a narrower feed for CI/compliance automation that only cares about security fixes, not every change. Omit cursor on the first call, then store and reuse the returned cursor. These entries are LLM-classified from changelog text - for verified CVE/GHSA advisories on one specific package instead, use get_vulnerabilities. Pro/Team plan only; a free/unauthenticated caller gets an empty feed with error:"pro_plan_required" and an upgrade_url instead of any real changes.

NameTypeReqDescription
cursorstring–Cursor from a previous call. Omit to get everything currently known.
NameTypeReqDescription
changesarrayyes–
cursorstringyes–
errorstring––
upgrade_urlstring––

No examples provided.

get_updates_since ~166

Returns every change across all covered packages created since the given cursor, plus a new cursor for the next call. Use this for a recurring 'what's new since I last checked' feed across the whole coverage set, not for a single package - use get_package_updates for that. Omit cursor on the first call to get everything currently known, then store and reuse the returned cursor. Pro/Team plan only; a free/unauthenticated caller gets an empty feed with error:"pro_plan_required" and an upgrade_url instead of any real changes.

NameTypeReqDescription
categorystring–Restrict the feed to one category, e.g. 'security' for a security-only digest.
cursorstring–Cursor from a previous call. Omit to get everything currently known.
NameTypeReqDescription
changesarrayyes–
cursorstringyes–
errorstring––
upgrade_urlstring––

No examples provided.

get_vulnerabilities ~169

Returns verified CVE/GHSA security advisories for one npm package, sourced from OSV.dev - independent of get_security_digest's LLM-classified category:security entries (which come from changelog text and can miss a fix the vendor didn't call out as a security issue). Use this to check one package for known vulnerabilities; use get_security_digest for a recurring feed across all covered packages. An empty advisories list means no known advisories were found, not that the package wasn't checked - see 'covered'. If the package isn't covered at all, trust the structured NotCovered response instead of guessing vulnerabilities from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
packagestringyesnpm package name, e.g. "axios"
NameTypeReqDescription
advisoriesarray––
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.

No examples provided.

list_covered_packages ~170

Lists every package this server currently tracks, grouped by ecosystem (npm, pypi, cargo, composer - only ecosystems with at least one tracked package appear). Call this when unsure whether a package, or a whole ecosystem, is covered, instead of guessing or calling get_package_updates speculatively. Pass `ecosystem` to scope to just one ecosystem (it is then always present in the result, with an empty `packages` array if it has none yet); omit it to see every covered ecosystem at once. Runtime/framework products get_eol_status answers for (node, python, ...) are a separate endoflife.date namespace and are never listed here.

NameTypeReqDescription
ecosystemstring–Limit the result to one ecosystem, e.g. "npm". Omit to list every covered ecosystem.
NameTypeReqDescription
ecosystemsarrayyes–

No examples provided.

list_webhook_subscriptions ~96

Lists every webhook subscription registered by the caller's own API key - use this to check what's currently registered before adding a duplicate, or to find a subscription's id for delete_webhook_subscription. Team plan only; a free/pro caller gets an empty subscriptions array plus error:"team_plan_required". The signing secret is never included here (only at registration) - re-register (and delete the old one) if it's been lost.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorstring––
subscriptionsarrayyes–

No examples provided.

plan_upgrade ~228

Builds an ordered, source-backed upgrade plan for one npm package - composes check_breaking_changes, get_migration_recipes, get_api_diff, and (if related_packages is given) check_compatibility into a single 'steps' list, each step carrying the source_url it came from. Call this when you're about to actually perform the upgrade yourself; call check_breaking_changes instead if you only want to know whether something breaks, without a plan. No step is ever invented without a real source - if a package has no data at all, trust the structured NotCovered response instead of guessing a plan from training knowledge.

NameTypeReqDescription
ecosystemstring–Package ecosystem to look in. Defaults to "npm".
from_versionstringyesVersion being upgraded from, e.g. "14.2.0"
packagestringyesnpm package name, e.g. "next"
related_packagesarray–Other project packages to verify against the new version.
to_versionstringyesVersion being upgraded to, e.g. "15.0.0"
NameTypeReqDescription
api_changes_countinteger––
compatibilityobject––
coveredbooleanyes–
ecosystemstring–Package ecosystem this result is from. Absent means "npm".
from_versionstring––
overall_recommended_actionstring––
packagestringyes–
providerstring–Present only when covered is false: which provider answered.
reasonstring–Present only when covered is false: why the lookup failed.
stepsarray––
suggested_alternativesarray–Present only when covered is false: packages/products to try instead.
to_versionstring––

No examples provided.

register_webhook_subscription ~182

Registers a URL to receive a signed HTTP POST whenever DepFeed ingests a new change_entry - use this once, when setting up push delivery, instead of polling get_updates_since on a schedule. Team plan only; a free/pro caller gets registered:false with error:"team_plan_required" rather than an insufficient_data/NotCovered shape, since this is a plan entitlement check, not a coverage lookup. The response's secret is returned exactly once, at creation - store it to verify the X-Depfeed-Signature header on incoming deliveries (HMAC-SHA256 hex digest of the raw JSON body).

NameTypeReqDescription
packagestring–Limit to one npm package, e.g. "next" - omit for every package
target_urlstringyesHTTPS endpoint to receive deliveries, e.g. "https://example.com/hooks/depfeed"
NameTypeReqDescription
errorstring––
idinteger––
packagestring––
registeredbooleanyes–
secretstring–Only ever returned here, at creation - store it now.
target_urlstring––

No examples provided.

submit_feedback ~213

Records feedback on how useful a previous DepFeed tool call was, as a 1-5 rating - 1 completely unhelpful, 5 exactly what was needed. Call this proactively after actually using another tool's result (e.g. get_package_updates, check_compatibility), once its usefulness is clear - especially when a result was wrong, incomplete, or missing something you needed; don't wait to be asked. reason and missing_info are optional but especially valuable on a low rating: they're how DepFeed learns what to fix.

NameTypeReqDescription
missing_infostring–Information that was needed but the tool didn't return
packagestring–npm package the feedback relates to, if applicable
ratingintegeryes1 (unhelpful) to 5 (exactly what was needed)
reasonstring–Why this rating - what worked or didn't
tool_namestringyesName of the DepFeed tool this feedback is about, e.g. "get_package_updates"
NameTypeReqDescription
recordedbooleanyes–

No examples provided.

Common questions

What is the DepFeed MCP server?

DepFeed is an MCP server listed in the public MCP registry as dev.depfeed/depfeed. Change intelligence for coding agents: sourced breaking changes for npm, PyPI, and Rust packages. This page covers its hosted endpoint (https://depfeed.dev/).

Is the DepFeed MCP server safe to use?

DepFeed scores 23 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the DepFeed MCP server expose?

DepFeed exposes 20 tools: get_package_updates, check_breaking_changes, get_package_updates_batch, get_updates_since, get_security_digest, and 15 more. Their descriptions and schemas cost roughly 3,797 tokens of context every time the server is loaded.

Does the DepFeed MCP server require authentication?

Its publisher declares that DepFeed requires credentials, so you will need to authorise it in your MCP client. We have not been able to confirm that against the live endpoint.

Is the DepFeed MCP server still maintained?

DepFeed is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.