npm Registry MCP Server
NPM · @YAWLABS/NPMJS-MCP · SCANNED SEP 20
npm registry MCP server — package intelligence, security audits, dependency analysis
Available components
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 Security100
- 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
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 5 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability85
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 5265 tokens (~82/item across 64 items; 64 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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 Safety97
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 8 of 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "npm_publish_preflight" implies "publish" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 64 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the npm Registry MCP Server server?
npm Registry MCP Server runs locally as an npm package, launched with npx -y @yawlabs/npmjs-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @yawlabs/npmjs-mcp
claude mcp add yawlabs-npmjs-mcp -- npx -y @yawlabs/npmjs-mcp
{
"mcpServers": {
"yawlabs-npmjs-mcp": {
"command": "npx",
"args": [
"-y",
"@yawlabs/npmjs-mcp"
]
}
}
} {
"servers": {
"yawlabs-npmjs-mcp": {
"command": "npx",
"args": [
"-y",
"@yawlabs/npmjs-mcp"
]
}
}
} codex mcp add yawlabs-npmjs-mcp -- npx -y @yawlabs/npmjs-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"yawlabs-npmjs-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@yawlabs/npmjs-mcp"
],
"enabled": true
}
}
} openclaw mcp add yawlabs-npmjs-mcp --command npx --arg -y --arg @yawlabs/npmjs-mcp
mcp_servers:
yawlabs-npmjs-mcp:
command: "npx"
args: ["-y", "@yawlabs/npmjs-mcp"] {
"McpServers": {
"yawlabs-npmjs-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@yawlabs/npmjs-mcp"
]
}
}
} assistant mcp add yawlabs-npmjs-mcp -t stdio -c npx -a -y @yawlabs/npmjs-mcp
{
"mcpServers": {
"yawlabs-npmjs-mcp": {
"command": "npx",
"args": [
"-y",
"@yawlabs/npmjs-mcp"
]
}
}
} 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.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 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.
- 16 Sept 26 +8
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → pass ▲ functional
- Stability: pass → 0.80 functional
- 15 Sept 26 +1
- Stability: 0.97 → pass security
- 14 Sept 26 +9
- Stability: 0.93 → unverified ▼ security
- Known CVEs: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Source repository: fail → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: pass → unverified ▼ functional
- Package version: 0.15.4 → 0.16.3 functional
- Package version: 0.15.4 → 0.16.2 functional
- Package version: 0.15.4 → 0.16.1 functional
- Package version: 0.15.4 → 0.16.0 functional
- 13 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- Package version: 0.15.2 → 0.15.4 functional
- Package version: 0.15.2 → 0.15.3 functional
- 12 Sept 26 0
- Stability: 0.87 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.15.1 → 0.15.2 functional
- 11 Sept 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.
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 20 Sept 2026 · Analysed npm/@yawlabs/npmjs-mcp@0.16.3
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| 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 →
npm_access_set ~95
Set package access level: 'public' or 'restricted' (private). 'private' is accepted as an alias for 'restricted' for ergonomics -- both map to the registry wire value 'restricted'. Unscoped packages are always public. Restricted access requires a paid npm account.
| Name | Type | Req | Description |
|---|---|---|---|
| access | string | yes | Access level ('private' maps to 'restricted' on the wire) |
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_access_set_mfa ~66
Configure 2FA requirement for publishing: 'none' (off), 'publish' (2FA required), 'automation' (2FA required but automation tokens can bypass).
| Name | Type | Req | Description |
|---|---|---|---|
| level | string | yes | MFA level for publish |
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_audit ~88
Quick vulnerability check for specific packages and versions using the bulk advisory API. Returns matching advisories with severity, CVEs, and patched versions. For richer detail (CVSS scores, CWEs, fix recommendations), use npm_audit_deep instead.
| Name | Type | Req | Description |
|---|---|---|---|
| packages | object | yes | Object mapping package names to arrays of version strings, e.g. {"lodash": ["4.17.20"]} |
No output schema declared.
No examples provided.
npm_audit_deep ~140
Full security audit on a dependency set — returns detailed advisories with CVSS scores, CWEs, affected version ranges, fix recommendations, and full vulnerability metadata. Uses the npm audit v1 endpoint which provides richer detail than the bulk advisory API (npm_audit). Requires you to provide the dependency map (use npm_dependencies to get it first).
| Name | Type | Req | Description |
|---|---|---|---|
| dependencies | object | yes | Dependencies to audit as { "package": "version" }, e.g. { "express": "4.17.1" } |
| name | string | yes | Project name |
| version | string | – | Project version (default: '1.0.0') |
No output schema declared.
No examples provided.
npm_check_auth ~98
Quick auth health check — returns structured data about npm auth status, token capability, and whether headless (CI/agent) publishing is possible. Run this BEFORE attempting any publish operation. Returns canPublishHeadless boolean and a clear recommendation. MCP servers are called by AI agents which CANNOT open browsers or enter OTP codes. This tool detects that and provides the exact terminal command for the human to run instead of suggesting unworkable retries.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
npm_collaborators ~69
Get all users who have access to a package and their permission levels (read-only, read-write). Useful for verifying who can publish to a package before setting up CI/CD.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name (e.g. 'express' or '@yawlabs/npmjs-mcp') |
No output schema declared.
No examples provided.
npm_compare ~59
Compare 2-5 packages side-by-side — downloads, version, license, maintainers, size, last publish, and security status. Great for 'should I use X or Y?' decisions.
| Name | Type | Req | Description |
|---|---|---|---|
| packages | array | yes | Package names to compare |
No output schema declared.
No examples provided.
npm_dep_tree ~149
Resolve the production dependency tree for a package version (up to a configurable depth). Shows the full transitive dependency graph with versions. Issues one registry request per discovered package (10 in flight), so a wide tree at depth 4-5 can take a while; the walk is capped at 60s and returns `truncated: true` with a warning if it runs out of budget.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | number | – | Max tree depth where the root counts as level 1 (default 3 = root + 2 transitive levels, max 5) |
| name | string | yes | Package name |
| version | string | – | Semver version or dist-tag (default: 'latest') |
No output schema declared.
No examples provided.
npm_dependencies ~58
Get the dependency lists for a specific package version — production deps, devDeps, peerDeps, and optionalDeps.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| version | string | – | Semver version or dist-tag (default: 'latest') |
No output schema declared.
No examples provided.
npm_deprecate ~239
Deprecate a package or specific versions. Shows a warning message on install. Uses the HTTP API with NPM_TOKEN, so no CLI login or OTP prompt is involved; a token without 2FA bypass is refused with 401 or 403. Registry hard limit: deprecation messages must be <= 1024 characters. A message over the limit, or a versionRange matching no published version, is rejected locally as HTTP 400 before any write; a 422 from the registry describes the packument that was sent. Message punctuation is never checked.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | Deprecation message. Use npm_undeprecate to clear. |
| name | string | yes | Package name (e.g. '@yawlabs/spend') |
| versionRange | string | – | Semver range. Omit to deprecate ALL versions. Example: '<1.0.0' or '0.3.x'. Standard semver applies — bare integers are x-ranges (e.g. '0' means '0.x.x', not exact version 0). For a single version us… |
No output schema declared.
No examples provided.
npm_dist_tag_remove ~52
Remove a dist-tag from a package. The 'latest' tag cannot be removed, only reassigned.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| tag | string | yes | Dist-tag name to remove |
No output schema declared.
No examples provided.
npm_dist_tag_set ~97
Point a dist-tag (e.g. 'latest', 'beta', 'next') at a specific version. Common uses: promote a beta to latest, roll back latest to a prior version, maintain separate channels.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| tag | string | yes | Dist-tag name (e.g. 'latest', 'beta', 'next') |
| version | string | yes | Version the tag should point to |
No output schema declared.
No examples provided.
npm_dist_tags ~33
Get dist-tags for a package (latest, next, beta, etc).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_downloads ~103
Get total download count for a package over a period (last-day, last-week, last-month, last-year, or a custom date range like 2025-01-01:2025-12-31).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| period | string | – | Period: 'last-day', 'last-week', 'last-month', 'last-year', or 'YYYY-MM-DD:YYYY-MM-DD' (default: 'last-week') |
No output schema declared.
No examples provided.
npm_downloads_bulk ~82
Compare download counts for multiple packages over a period. Up to 128 packages. Scoped packages (@scope/name) are NOT supported by the bulk endpoint — call npm_downloads separately for each scoped package.
| Name | Type | Req | Description |
|---|---|---|---|
| packages | array | yes | Array of package names to compare (unscoped only) |
| period | string | – | Period (default: 'last-week') |
No output schema declared.
No examples provided.
npm_downloads_range ~72
Get daily download counts for a package over a period. Returns per-day breakdown.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| period | string | – | Period: 'last-week', 'last-month', 'last-year', or 'YYYY-MM-DD:YYYY-MM-DD' (default: 'last-month') |
No output schema declared.
No examples provided.
npm_health ~40
Assess the health of a package — maintenance activity, download trend, security status, deprecation, and documentation quality.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_hook_add ~127
Create a registry webhook. Target is 'pkg' or '@scope/pkg' for a package, '@scope' for a scope, or '~user' for a user's packages. Endpoint is the HTTPS URL to POST events to; secret is used to HMAC-sign payloads. The secret is never echoed back in tool responses.
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint | string | yes | HTTPS URL that will receive POST events |
| secret | string | yes | Secret used to HMAC-sign webhook payloads |
| target | string | yes | Hook target: 'pkg', '@scope/pkg', '@scope', or '~user' |
No output schema declared.
No examples provided.
npm_hook_get ~42
Get a single webhook by its ID. The stored secret is redacted from the response.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Hook ID (UUID from npm_hook_list) |
No output schema declared.
No examples provided.
npm_hook_list ~56
List webhooks. Optionally filter by package name. Secrets are redacted from responses.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max results |
| offset | integer | – | Pagination offset |
| package | string | – | Filter by package name |
No output schema declared.
No examples provided.
npm_hook_remove ~24
Delete a webhook by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Hook ID |
No output schema declared.
No examples provided.
npm_hook_update ~120
Replace a webhook's endpoint AND signing secret. Both are required: the registry PUT overwrites the hook config, so this call always rotates the secret to whatever you pass — supply the current secret if you only mean to change the endpoint. The returned hook object has the secret redacted.
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint | string | yes | HTTPS URL for the hook (required — the PUT replaces the whole config) |
| id | string | yes | Hook ID |
| secret | string | yes | Signing secret to store. Always written; pass the existing secret to leave it effectively unchanged. |
No output schema declared.
No examples provided.
npm_license_check ~190
Check the license of a package and its direct production dependencies. Flags missing or non-standard licenses. Matches single SPDX license identifiers case-insensitively (so 'mit' and 'MIT' both match). SPDX expressions like '(MIT OR Apache-2.0)' are NOT decomposed — they are flagged unless added to `allowed` verbatim. Issues 2 requests per direct dependency (10 in flight), capped at 60s; deps not reached in time come back as `NOT_CHECKED` (and are flagged, never treated as allowed).
| Name | Type | Req | Description |
|---|---|---|---|
| allowed | array | – | SPDX license identifiers to treat as allowed (default: MIT, ISC, BSD-2-Clause, BSD-3-Clause, Apache-2.0, 0BSD, Unlicense) |
| name | string | yes | Package name |
| version | string | – | Semver version or dist-tag (default: 'latest') |
No output schema declared.
No examples provided.
npm_maintainers ~31
Get current maintainers and their publish history for a package.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_ops_playbook ~66
Return canonical recipes for common npm operations — which MCP tool to call for which op, CLI fallbacks when the MCP server can't handle something, and message format guidance. Call this FIRST when you're not sure how to do an npm operation. Prevents reinventing approaches that don't work.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
npm_org_member_remove ~76
Remove a user from an org. Their team memberships in that org are also removed. Requires confirm: true — team memberships cascade and cannot be selectively preserved.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be literally true. Guards against accidental member removal. |
| org | string | yes | Organization name |
| user | string | yes | npm username |
No output schema declared.
No examples provided.
npm_org_member_set ~172
Add a user to an org or change their role. Roles: 'developer', 'admin', 'owner'. If the user is already in the org, updates the role. Omitting `role` keeps the member's current role: this tool reads the roster first and re-sends the existing role explicitly, because the registry DEFAULTS an omitted role to 'developer' rather than preserving it (which would silently demote an admin or owner). For a user who is not yet a member, omitting `role` adds them as 'developer'.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be literally true. Guards against accidental org membership changes. |
| org | string | yes | Organization name (with or without leading @) |
| role | string | – | Role to assign |
| user | string | yes | npm username |
No output schema declared.
No examples provided.
npm_org_members ~46
List all members of an npm organization with their roles (owner, admin, developer). Requires authentication as an org member.
| Name | Type | Req | Description |
|---|---|---|---|
| org | string | yes | Organization name (without @ prefix) |
No output schema declared.
No examples provided.
npm_org_packages ~47
List all packages accessible to an npm organization with their access levels. Shows what the org owns or has been granted access to.
| Name | Type | Req | Description |
|---|---|---|---|
| org | string | yes | Organization name (without @ prefix) |
No output schema declared.
No examples provided.
npm_org_teams ~38
List all teams within an npm organization. Requires authentication as an org member.
| Name | Type | Req | Description |
|---|---|---|---|
| org | string | yes | Organization name (without @ prefix) |
No output schema declared.
No examples provided.
npm_owner_add ~78
Add a user as a maintainer of a package. They will have publish and write permissions. Resolves the user's email via /-/user/ (no need to supply it). Use npm_collaborators to verify before adding.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| username | string | yes | npm username to add as maintainer |
No output schema declared.
No examples provided.
npm_owner_remove ~57
Remove a user from a package's maintainer list. Refuses if it would leave the package with zero maintainers (lockout prevention).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
| username | string | yes | npm username to remove |
No output schema declared.
No examples provided.
npm_package ~64
Get package metadata — description, dist-tags, latest version, maintainers, license, repository, keywords. Does not include per-version details (use npm_version for that).
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name (e.g. 'express' or '@anthropic-ai/sdk') |
No output schema declared.
No examples provided.
npm_package_access ~90
Get package access settings — visibility (public/private), whether publish requires 2FA, and whether automation tokens can bypass 2FA. Critical for understanding why CI publishing fails: if publish_requires_tfa is true but automation_token_overrides_tfa is false, automation tokens cannot publish.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name (e.g. 'express' or '@yawlabs/npmjs-mcp') |
No output schema declared.
No examples provided.
npm_profile ~44
Get the authenticated user's npm profile — name, email, 2FA status, creation date. Useful for checking whether 2FA is enabled (which affects token requirements for publishing).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
npm_provenance ~127
Retrieve Sigstore attestations for a specific package version. Shows SLSA provenance (which CI built it, from which repo/commit) and publish attestations. NOTE: this tool RETRIEVES attestations from the registry -- it does NOT perform cryptographic signature, certificate-chain, or Rekor transparency-log verification. Use a dedicated Sigstore client to cryptographically verify the bundles.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name (e.g. '@anthropic-ai/sdk') |
| version | string | yes | Exact semver version (e.g. '1.0.0') |
No output schema declared.
No examples provided.
npm_publish_preflight ~180
Comprehensive pre-publish validation — run before publishing ANY npm package. Returns an actionable checklist with pass/fail/warn for each item. ASSUMES NON-INTERACTIVE CONTEXT BY DEFAULT because MCP servers are called by AI agents that: - CANNOT open browsers (so --auth-type=web is useless) - CANNOT enter OTP codes - CANNOT retry with 2FA — this is a hand-off to the human Checks: auth token validity, 2FA requirements, token type inference, org-level token reuse, package name availability, maintainer access, scoped package settings. When issues are found, returns structured actions with exact commands for the HUMAN to run in their terminal — never suggests actions an agent cannot perform.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name to publish (e.g. '@yawlabs/npmjs-mcp') |
No output schema declared.
No examples provided.
npm_readme ~26
Get the README content of a package.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_recent_changes ~61
Get the most recent package publishes/updates from the npm registry via the CouchDB changes feed. Note: uses replicate.npmjs.com which may have intermittent availability.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of recent changes (default 25, max 100) |
No output schema declared.
No examples provided.
npm_registry_stats ~51
Get total npm-wide download counts for a period. Shows overall registry activity.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | Period: 'last-day', 'last-week', 'last-month' (default: 'last-week') |
No output schema declared.
No examples provided.
npm_release_frequency ~56
Analyze the release cadence of a package — publish timeline, gaps, and whether the project is actively maintained.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of recent releases to analyze (default 20) |
| name | string | yes | Package name |
No output schema declared.
No examples provided.
npm_search ~150
Search the npm registry for packages. Supports text search and qualifiers like 'keywords:mcp', 'author:user', 'maintainer:user', 'scope:org', 'not:insecure', 'is:unstable'.
| Name | Type | Req | Description |
|---|---|---|---|
| from | number | – | Offset for pagination |
| maintenance | number | – | Weight for maintenance score (0-1) |
| popularity | number | – | Weight for popularity score (0-1) |
| quality | number | – | Weight for quality score (0-1) |
| query | string | yes | Search text. Supports qualifiers: keywords:x, author:x, maintainer:x, scope:x |
| size | number | – | Number of results (default 20, max 250) |
No output schema declared.
No examples provided.
npm_signing_keys ~26
Get the npm registry's ECDSA signing keys used to verify package signatures.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
npm_team_create ~50
Create a team inside an organization. Team is passed as '@scope:team'.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional team description |
| team | string | yes | Team in the form '@scope:team' |
No output schema declared.
No examples provided.
npm_team_delete ~105
Delete a team. Team is passed as '@scope:team'. Revokes all package permissions that team held, and team memberships are also removed. Requires confirm: true — this removes the team and all its package grants in one call. List the team's current grants with npm_team_packages first if you need to preserve them.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | yes | Must be literally true. Guards against accidental team deletion. |
| team | string | yes | Team in the form '@scope:team' |
No output schema declared.
No examples provided.
npm_team_grant ~119
Grant a team read-only or read-write permission on a package. Scope and team are passed as @scope:team (e.g. '@yawlabs:devs'). Requires org admin or team admin.
| Name | Type | Req | Description |
|---|---|---|---|
| package | string | yes | Package name. Field is named 'package' to match the npm CLI (diverges from 'name' used elsewhere in this server). |
| permissions | string | yes | Permission level |
| team | string | yes | Team in the form '@scope:team' (e.g. '@yawlabs:devs') |
No output schema declared.
No examples provided.
npm_team_member_add ~56
Add a user to a team. Team is '@scope:team'. User must already be in the org.
| Name | Type | Req | Description |
|---|---|---|---|
| team | string | yes | Team in the form '@scope:team' |
| user | string | yes | npm username |
No output schema declared.
No examples provided.
npm_team_member_remove ~54
Remove a user from a team. Team is '@scope:team'. User remains in the org.
| Name | Type | Req | Description |
|---|---|---|---|
| team | string | yes | Team in the form '@scope:team' |
| user | string | yes | npm username |
No output schema declared.
No examples provided.
npm_team_members ~75
List all members of a team with their roles (e.g. 'developer'). Complements npm_team_member_add and npm_team_member_remove — use this to audit who is currently on the team before adding or removing members.
| Name | Type | Req | Description |
|---|---|---|---|
| org | string | yes | Organization name (without @ prefix) |
| team | string | yes | Team name |
No output schema declared.
No examples provided.
npm_team_packages ~57
List all packages a specific team has access to and their permission levels (read-only or read-write). Useful for auditing team permissions.
| Name | Type | Req | Description |
|---|---|---|---|
| org | string | yes | Organization name (without @ prefix) |
| team | string | yes | Team name |
No output schema declared.
No examples provided.
What is the npm Registry MCP Server server?
npm Registry MCP Server is listed in the public MCP registry as io.github.YawLabs/npmjs-mcp. npm registry MCP server, package intelligence, security audits, dependency analysis. This page covers its npm package (@yawlabs/npmjs-mcp).
Is the npm Registry MCP Server server safe to use?
npm Registry MCP Server scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. 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 npm Registry MCP Server server expose?
npm Registry MCP Server exposes 64 tools: npm_search, npm_package, npm_version, npm_versions, npm_readme, and 59 more. Their descriptions and schemas cost roughly 5,265 tokens of context every time the server is loaded.
Is the npm Registry MCP Server server still maintained?
npm Registry MCP Server is still listed as active in the MCP registry. We last reached this channel on 20 September 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 npm Registry MCP Server server under?
npm Registry MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.