Skip to content

close the gaps the registries ask for - #13

Merged
salatmaster merged 1 commit into
mainfrom
chore/ready-for-registries
Aug 8, 2026
Merged

close the gaps the registries ask for#13
salatmaster merged 1 commit into
mainfrom
chore/ready-for-registries

Conversation

@salatmaster

Copy link
Copy Markdown
Owner

Closes the gaps that stood between this repo and the places it should be listed.

The MCP Registry was unreachable

It proves ownership by fetching the published npm package and matching an mcpName field against the server name. Neither that field nor server.json existed, so publishing would have failed at the last step.

Both are here now. server.json was generated with the official mcp-publisher and checks out against the registry schema rather than against my reading of the docs:

$ mcp-publisher validate
✅ server.json is valid

It repeats the version twice, which is the same problem the plugin manifests had. Both copies are placeholders and the release workflow stamps them from the tag alongside package.json, so there is still no version written down anywhere and still no release commit. Simulated the stamp before trusting it: 0.0.0-dev becomes 0.3.1 in all three places and still validates.

A test pins both placeholders and checks that mcpName, the server name and the package identifier agree. A mismatch there only surfaces at publish time, which is after npm has already accepted the release.

Publishing hangs off the same tag as the npm publish and uses the same OIDC token, so no secret is added. It retries, because npm accepts a publish before the package is queryable and the registry validates by fetching it.

This only takes effect from the next release. The published 0.3.0 has no mcpName, so the registry cannot validate it.

--version did not exist

The first thing a bug report needs. The issue template was asking for something that could not be produced. It answers before the configuration is read, which is the state a machine reporting a bug is usually in.

For people arriving from a directory

SECURITY.md because they land on a repository that authenticates as router administrator and can reconfigure their network. It says where the password goes on each platform, what happens when there is no keychain, and where to report privately.

CONTRIBUTING.md says the thing that actually matters here rather than the usual formalities: verify against the router and not against your model of it, and name the model and firmware you checked on. Two real bugs in this repo passed every unit test and only surfaced against live hardware. It also answers the vendor-adapter question ahead of time, so nobody writes one before asking.

An issue template that asks for model and KeeneticOS version first, because nearly every difference in this project comes down to one of those two. Blank issues stay enabled: the best issue this repo has had so far was a design question, and a bug form would have been in its way.

248 tests, typecheck and build clean. All four workflow and template YAML files parse.

Still manual, after this merges

Submitting to the directories themselves needs an account and a form, so it is not something a PR can do: the Anthropic plugin directory, mcpservers.org, and mcp.so. The official MCP Registry is automatic from the next tag.

The official MCP Registry was unreachable: it proves ownership by fetching the
published package and matching an `mcpName` field against the server name, and
neither that field nor server.json existed. Both are here now, and server.json
validates against the registry schema rather than against my reading of it.

server.json repeats the version twice, which is the same problem the plugin
manifests had. Both copies are placeholders and the release workflow stamps
them from the tag alongside package.json, so there is still no version written
down anywhere and still no release commit. A test pins both placeholders and
checks that `mcpName`, the server name and the package identifier agree, since
a mismatch only surfaces at publish time, after npm has already accepted the
release.

Publishing to the registry now hangs off the same tag as the npm publish,
authenticated by the same OIDC token, so no secret is added. It retries: npm
accepts a publish before the package is queryable, and the registry validates
by fetching it.

`--version` did not exist. It is the first thing a bug report needs, so the
issue template asked for something that could not be produced. It answers
before the configuration is read, which is the state a machine reporting a bug
is usually in.

SECURITY.md, CONTRIBUTING.md and an issue template, because people arriving
from a directory land on a repository that can reconfigure their network and
should be able to see how the password is stored and what happens to it. The
issue template asks for model and firmware first: nearly every difference in
this project comes down to one of those two.

CONTRIBUTING says the thing that actually matters here rather than the usual
formalities: verify against the router, not against your model of it, and name
the model and version you checked on. It also answers the vendor-adapter
question ahead of time, so nobody writes one before asking.
@salatmaster
salatmaster merged commit 30188ff into main Aug 8, 2026
4 checks passed
@salatmaster
salatmaster deleted the chore/ready-for-registries branch August 8, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant