io.github.4DA-Systems/4da-mcp-server
NPM · @4DA/MCP-SERVER
Upgrade intelligence for AI agents: what an upgrade changes, where it touches your code, CVE scans.
Available components
Last scanned (2 hours ago)
Scores higher than 99% of npm servers
Category Security
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security97
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 24 of 45 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to 4DA-Systems/4da-mcp-server). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 5 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2714 tokens (~118/item across 23 items; 11 tools + 12 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
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.
- 2 Nov 26 +1
- Stability: 0.97 → pass security
- 1 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 31 Oct 26 −14
- Malware scan: pass → unverified ▼ security
- Package version: 6.2.5 → 6.2.6 functional
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 26 Oct 26 −14
- Malware scan: pass → unverified ▼ security
- Schema quality: pass → fail ▼ functional
- Package version: 6.2.4 → 6.2.5 functional
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
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 5 Nov 2026 · Analysed npm/@4da/mcp-server@6.2.6
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | 4DA-Systems/4da-mcp-server |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/4DA-Systems/4da-mcp-server/.github/workflows/release.yml@refs/tags/mcp-v6.2.6 |
| Rekor log index | 3605155066 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:958732c5a6dde3dd69dc87fa4049b8320e620e7a9933a3ee4a9950df80c058aef022524a281b515447c0b27160eab13118a947a16e88150ab258a0785 |
Background: How many MCP packages publish verified provenance →
Dependencies 45 packages
| Packages resolved | 45 |
|---|---|
| Deprecated | 1 |
| Stale | 23 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
agent_memory Agent memory ~259
Cross-agent persistent memory: what one agent learns, any agent can recall. Call to store a discovery, decision, or warning, or to recall prior context before starting work.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action to perform |
| agent_type | string | – | Agent identifier, e.g. claude_code, cursor, windsurf (for store) |
| content | string | – | Full memory content (for store) |
| context_tags | array | – | Tags for categorization (for store) |
| expires_at | string | – | ISO datetime when this memory expires (for store, optional) |
| filter_agent | string | – | Filter results to a specific agent type (for recall, get_recent) |
| limit | number | – | Max results to return (default 20) |
| memory_type | string | – | Type of memory (for store). Default: context |
| query | string | – | Search term to match against subject and tags (for recall) |
| session_id | string | – | Session identifier (for store) |
| since | string | – | ISO datetime to get memories after (for get_recent) |
| subject | string | – | Short subject line for the memory (for store) |
| tags | array | – | Tags to search for (for recall_by_tags) |
No output schema declared.
No examples provided.
check_decision_alignment Decision alignment check ~85
Check whether a technology or pattern aligns with the developer's recorded decisions. Call BEFORE suggesting a major tech change, new library, or architecture shift.
| Name | Type | Req | Description |
|---|---|---|---|
| pattern | string | – | Architecture pattern to check (e.g., 'microservices', 'event-driven') |
| technology | string | yes | Technology name to check (e.g., 'postgresql', 'redis', 'graphql') |
No output schema declared.
No examples provided.
decision_memory Decision memory ~348
Record, list, update, or supersede the developer's architectural and tech decisions. Call when the user makes, changes, or asks about a settled decision or convention.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Action to perform |
| alternatives_rejected | array | – | Alternatives that were considered and rejected (for record) |
| confidence | number | – | Confidence level 0-1 (for record) |
| context_tags | array | – | Tags for categorization (for record) |
| decision | string | – | The decision text (for record) |
| decision_type | string | – | Type of decision (for record) |
| filter_status | string | – | Filter by status: active, superseded, reconsidering (for list) |
| filter_type | string | – | Filter by decision type (for list) |
| id | number | – | Decision ID (for update) |
| limit | number | – | Max results to return (for list) |
| new_confidence | number | – | Updated confidence (for update) |
| new_decision | string | – | Updated decision text (for update) |
| new_id | number | – | ID of new decision that replaces old (for supersede) |
| new_rationale | string | – | Updated rationale (for update) |
| new_status | string | – | Updated status (for update) |
| old_id | number | – | ID of decision to supersede (for supersede) |
| pattern | string | – | Architecture pattern to check alongside the technology (check_alignment) |
| rationale | string | – | Why this decision was made (for record) |
| subject | string | – | Subject of the decision (for record, check_alignment) |
| technology | string | – | Technology to check alignment for (check_alignment) |
No output schema declared.
No examples provided.
dependency_check Dependency check ~85
Is a dependency version safe to write? Verdict on an exact version, or safe releases in a constraint ("7.x", "~=3.1"); npm, crates.io, PyPI, Go. Call BEFORE writing any version to a manifest: add, pin, upgrade, bump, downgrade.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | The proposed changes to check, 1 to 25. |
No output schema declared.
No examples provided.
dependency_health Dependency health ~119
Dependency version freshness, deprecation and CVE counts across npm/Rust/Python/Go. Call when the user asks whether their dependencies are outdated, stale or need updating.
| Name | Type | Req | Description |
|---|---|---|---|
| ecosystem_filter | string | – | Only show deps from this ecosystem. Default: all detected. |
| include_dev | boolean | – | Include devDependencies. Default: false |
| limit | number | – | Max dependencies to return. Default: 50 |
| sort_by | string | – | Sort order. 'risk' prioritizes vulnerable+deprecated+outdated. Default: risk |
No output schema declared.
No examples provided.
ecosystem_pulse Ecosystem pulse ~74
Recent Hacker News discussions that name a dependency or framework this project actually uses. Call when the user asks what is new or being discussed in their ecosystem.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Maximum headlines to return. Default: 15 |
| min_points | number | – | Minimum HN points to include. Default: 0 |
No output schema declared.
No examples provided.
get_context User context ~95
What 4DA knows about the user: role, tech stack, interests, exclusions, and detected project context. Call FIRST when you need to know what the user works on before answering or recommending.
| Name | Type | Req | Description |
|---|---|---|---|
| include_ace | boolean | – | Include ACE-detected context (detected tech, active topics). Default: true |
| include_learned | boolean | – | Include the retained learned-preferences compatibility field. Default: true |
No output schema declared.
No examples provided.
upgrade_impact Upgrade impact ~216
What changes between the installed version of ONE dependency and a target: changelog per release, breaking changes, deprecations, security fixes, and this project's files that import it. Call before upgrading or bumping a dependency.
| Name | Type | Req | Description |
|---|---|---|---|
| ecosystem | string | – | Registry. Default: inferred from the project's dependencies (required when the name exists in more than one). |
| from_version | string | – | Current version. Default: the version this project's lockfile resolves. |
| package | string | yes | Package name exactly as published (npm: `zod`, `@scope/pkg`; crates.io: `fastembed`; PyPI: the distribution, `PyYAML`; Go: the module path, `github.com/jackc/pgx/v5`). |
| response_format | string | – | concise (default): every breaking/deprecation/security entry plus up to 3 others per version. detailed: all entries, capped at 400. |
| to_version | string | – | Target version. Default: the highest stable version on the registry. |
No output schema declared.
No examples provided.
upgrade_planner Upgrade planner ~250
Prioritized upgrade plan for one project (project_path): the 4DA app's work order when computed (per-line targets, manifest vs lockfile fix), else the smallest version that fixes each vulnerability. Call when the user asks what to upgrade.
| Name | Type | Req | Description |
|---|---|---|---|
| include_dev | boolean | – | Dev-only packages (labelled isDev). Default (unset): vulnerable devDependencies and dev-only transitive packages are planned, as in vulnerability_scan; true also checks every devDependency for newer… |
| max_recommendations | number | – | Max recommendations to return. Default: 20 |
| package | string | – | Plan for this one package only (exact name, any ecosystem). Default: every dependency. |
| project_path | string | – | Project directory to plan for: the app's plan is narrowed to the steps (and installed lines) that touch it; the standalone plan resolves that project's lockfiles. "*" for every project the app tracks… |
| risk_threshold | string | – | Only show upgrades at or above this risk level. Default: all |
No output schema declared.
No examples provided.
vulnerability_scan Vulnerability scan ~389
Scan this project's lockfiles (npm/pnpm/yarn/bun, Cargo, Python, Go) for OSV.dev vulnerabilities in installed versions, transitives included, with fix versions and where each is pinned; `package` for one dep. Call when asked about security or CVEs. To vet a version first: dependency_check.
| Name | Type | Req | Description |
|---|---|---|---|
| force_refresh | boolean | – | Ignore the OSV advisory cache and fetch fresh advisory data from OSV.dev (dependency versions are re-read on every lockfile change regardless). Default: false. |
| include_dev | boolean | – | Include direct devDependencies (labelled `is_dev`, graded one level down). Default: true, as the 4DA app does; pass false for runtime dependencies only. Transitive dev/runtime scope may be unknown. |
| include_test_fixtures | boolean | – | Also scan lockfiles under test-fixture directories (tests/, test/, fixtures/, testdata/, __fixtures__/, conformance/ ...). Default: false; they are counted under coverage.not_scanned instead. |
| package | string | – | Only this package (any ecosystem, every installed copy, transitives included), with a `package_note` saying what the lockfiles hold for it. Use it to ask about one dependency instead of reading the w… |
| project_path | string | – | Project directory to scan. Default: current working directory. |
| response_format | string | – | concise (default): one row per vulnerable package version (worst severity, the version that fixes all its advisories, advisory count and first ids, where it is pinned), the 40 most severe and 25 reco… |
| severity_filter | string | – | Only show vulnerabilities whose presented severity is at or above this level. |
No output schema declared.
No examples provided.
what_should_i_know Pre-task briefing ~152
Pre-task briefing for a task in one project: the dependencies and package families it names, installed versions, confirmed vulnerabilities, releases since, your decisions, a delegation verdict. Call BEFORE a non-trivial task, especially one that changes dependencies.
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | – | File paths involved in the task (optional). Manifest and source paths help find the packages involved. |
| project_path | string | – | Project directory the task is about; its lockfiles decide which packages exist. Default: the project the server was started in. |
| task | string | yes | What you are about to do, naming packages and versions where you know them (e.g. "upgrade fastembed from 5 to 7"). |
No output schema declared.
No examples provided.
How do I install the io.github.4DA-Systems/4da-mcp-server server?
io.github.4DA-Systems/4da-mcp-server runs locally as an npm package, launched with npx -y @4da/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @4da/mcp-server
claude mcp add 4da-systems-4da-mcp-server -- npx -y @4da/mcp-server
What is the io.github.4DA-Systems/4da-mcp-server server?
io.github.4DA-Systems/4da-mcp-server is listed in the public MCP registry as io.github.4DA-Systems/4da-mcp-server. Upgrade intelligence for AI agents: what an upgrade changes, where it touches your code, CVE scans. This page covers its npm package (@4da/mcp-server).
Is the io.github.4DA-Systems/4da-mcp-server server safe to use?
io.github.4DA-Systems/4da-mcp-server scores 96 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 io.github.4DA-Systems/4da-mcp-server server expose?
io.github.4DA-Systems/4da-mcp-server exposes 11 tools: vulnerability_scan, dependency_health, upgrade_planner, upgrade_impact, dependency_check, and 6 more. Their descriptions and schemas cost roughly 2,072 tokens of context every time the server is loaded.
Is the io.github.4DA-Systems/4da-mcp-server server still maintained?
io.github.4DA-Systems/4da-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.4DA-Systems/4da-mcp-server server under?
io.github.4DA-Systems/4da-mcp-server declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.