mcp-registry-npm-name-match¶
Local npm package.json mcpName must match MCP Registry server.json name
| Severity | error (auto) |
| Autofix | - |
| Since | v0.20.0 |
| Repo Types | mcp-registry |
| Category | MCP (Model Context Protocol) |
The official MCP Registry verifies npm package ownership with the mcpName
field in package.json. It must exactly match the server name in
server.json, as documented in the Registry's
npm package requirements.
What is checked¶
For each npm package with an exact version, the rule selects a local
package.json from deterministic evidence: the nearest package boundary or one
corroborated package repository.url and repository.directory match. With no
conflicting package boundary, one unique local package with the exact published
name, version, and repository is also checked. A private root package may act as
a workspace container, while a declared package directory must match the
package's path. The server's repository.subfolder describes source location,
not package location. Ambiguous and external packages stay quiet; missing npm
versions are reported by
mcp-registry-server-json-valid.
When a workspace container shares the published name and version with a member,
the rule checks the declared member. Literal paths and positive *, ? and
whole-segment ** workspace patterns are supported, including a leading ./.
The list and { "packages": [...] } declaration forms are both recognized.
Complex patterns, including braces, character classes and ordered exclusions,
leave workspace membership unresolved. The rule then stays quiet unless other
repository-directory evidence identifies the package; it does not assume the
container is published because it could not resolve those patterns.
For the selected package, the rule verifies that:
package.jsondeclares a string-valuedmcpName; andmcpNamematches the exactserver.jsonname, including case.
This check is entirely offline and never downloads npm metadata. Exact publish-time placeholders are skipped until the server and package coordinates have been rendered.
How to fix¶
Add the Registry name to the package that the npm identifier names:
Publish a new package version after changing this metadata; the live Registry
checks the metadata of the package version named by server.json.
Configuration¶
Run skillsaw explain mcp-registry-npm-name-match to see this documentation and the rule's effective configuration in your terminal.